import type { Node2D, GlRenderState, Kind, RenderProxy2D } from '@flighthq/types/contract'; import type { GlBitmapShader } from '@flighthq/types/contract'; export declare function getGlMaterialShader(state: GlRenderState, kind: Kind): GlBitmapShader | null; export declare function getGlShader(renderProxy: RenderProxy2D): GlBitmapShader | undefined; export declare function registerGlMaterialShader(state: GlRenderState, kind: Kind, shader: GlBitmapShader): void; /** * Returns the shader to draw renderProxy with: the per-node binding when one is * set, then the material-kind shader, otherwise the state's default bitmap shader. * The per-node lookup is reached only through the installed resolver, so it (and * the binding map) stay off the hot path and tree-shake until setGlShader is used. */ export declare function resolveGlShader(state: GlRenderState, renderProxy: RenderProxy2D): GlBitmapShader; /** * Binds a custom Gl shader to a display object for the given render state, or * clears it when shader is null. The binding lives on the render state side, not * the scene graph, so the same display object can carry different shaders (or * none) in different render states — e.g. a custom shader for an offscreen pass * that the standard renderer has no memory of. */ export declare function setGlShader(state: GlRenderState, node: Node2D, shader: GlBitmapShader | null): void; //# sourceMappingURL=glShaderBinding.d.ts.map