GlLinker
Interface in Variants
The slice of WebGL2 that compiling and linking a program needs.
import type { GlLinker } from 'typeshade'
The signature, the description and the examples come from the compiler's own source at commit 26de7be8.
Syntax
interface GlLinker<Shader = unknown, Program = unknown> { readonly VERTEX_SHADER: number; readonly FRAGMENT_SHADER: number; readonly COMPILE_STATUS: number; readonly LINK_STATUS: number; createShader(type: number): Shader | null; shaderSource(shader: Shader, source: string): void; compileShader(shader: Shader): void; getShaderParameter(shader: Shader, pname: number): unknown; getShaderInfoLog(shader: Shader): string | null; createProgram(): Program | null; attachShader(program: Program, shader: Shader): void; linkProgram(program: Program): void; getProgramParameter(program: Program, pname: number): unknown; getProgramInfoLog(program: Program): string | null; deleteShader(shader: Shader): void; deleteProgram(program: Program): void;}Description
A real WebGL2RenderingContext satisfies this as-is: pass it straight in. The handle
types are generic, so a caller that passes a real context gets WebGLShader and
WebGLProgram back, and a test can substitute a recorder with its own handle types.
Instance properties
VERTEX_SHADERread onlynumberFRAGMENT_SHADERread onlynumberCOMPILE_STATUSread onlynumberLINK_STATUSread onlynumber
Instance methods
createShader(type: number): Shader | nullshaderSource(shader: Shader, source: string): voidcompileShader(shader: Shader): voidgetShaderParameter(shader: Shader, pname: number): unknowngetShaderInfoLog(shader: Shader): string | nullcreateProgram(): Program | nullattachShader(program: Program, shader: Shader): voidlinkProgram(program: Program): voidgetProgramParameter(program: Program, pname: number): unknowngetProgramInfoLog(program: Program): string | nulldeleteShader(shader: Shader): voiddeleteProgram(program: Program): void
Source
src/core/variant-link.ts, line 37, at commit 26de7be8