GlLinker
On this page

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 only number
FRAGMENT_SHADERread only number
COMPILE_STATUSread only number
LINK_STATUSread only number

Instance methods

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

Source

src/core/variant-link.ts, line 37, at commit 26de7be8

Edit this page Report a problem