import type { GlRenderState, RenderProxy, RenderProxy2D } from '@flighthq/types/contract'; import type { GlBitmapShader, GlShaderLocations } from '@flighthq/types/contract'; export declare function compileDefaultGlProgram(gl: WebGL2RenderingContext): GlShaderLocations; /** * Compiles a bitmap program, reusing the standard quad vertex shader. Pass a * custom fragment source to build a custom shader; it must declare the interface * the draw path drives — `in vec2 v_texCoord`, `uniform sampler2D u_texture`, * `uniform float u_alpha` — and may add its own uniforms, resolved against the * returned `program`. */ export declare function compileGlBitmapProgram(gl: WebGL2RenderingContext, fragmentSrc?: string): GlShaderLocations; export declare function createDefaultGlBitmapShader(shaderLoc: GlShaderLocations, matrixArray: Float32Array): GlBitmapShader; /** * Builds a custom bitmap shader from a fragment shader source, ready to pass to * `setGlShader(state, node, shader)`. The standard quad vertex shader is * reused, so the fragment shader must sample `u_texture` and respect `u_alpha`; * any extra uniforms can be set per draw via `onBind` (resolve them against * `locations.program`). */ export declare function createGlBitmapShader(gl: WebGL2RenderingContext, fragmentSrc: string, onBind?: (gl: WebGL2RenderingContext, locations: GlShaderLocations, renderProxy: RenderProxy2D) => void): GlBitmapShader; export declare function ensureDefaultGlBitmapShader(state: GlRenderState): GlBitmapShader; export declare function setGlAttributes(gl: WebGL2RenderingContext, loc: GlShaderLocations): void; export declare function setGlBaseUniforms(gl: WebGL2RenderingContext, loc: GlShaderLocations, renderProxy: RenderProxy): void; export declare function setGlMatrixFromTransform(gl: WebGL2RenderingContext, loc: GlShaderLocations, m: Float32Array, t: { a: number; b: number; c: number; d: number; tx: number; ty: number; }, viewport: { width: number; height: number; }): void; export declare function setGlMatrixFromValues(gl: WebGL2RenderingContext, loc: GlShaderLocations, m: Float32Array, a: number, b: number, c: number, d: number, tx: number, ty: number, viewport: { width: number; height: number; }): void; //# sourceMappingURL=glShader.d.ts.map