/** * Capture the current value into the cache slot so future `setUniform` * calls can short-circuit. Reuses the existing slot (and its allocation) * when the length matches — only a length change or a first capture * allocates a fresh array. * @ignore */ export function captureValue(prev: any, val: any): any; /** * Build the `uniforms` proxy object for a compiled shader program. * * Each detected uniform gets a defineProperty getter (returns its * `WebGLUniformLocation`) and a setter that pushes the value to GL. The * setter caches the last value it sent and skips the underlying * `gl.uniform*` call when the incoming value matches — uniform writes are * cheap individually, but a typical per-frame draw pass sets a dozen of * them per shader, and most are layer-lifetime constants (`uMapSize`, * `uCellSize`, `uOpacity`, projection matrix on idle frames, etc.). * * Cache scope is per-shader: each `GLShader` calls `extractUniforms` once * and gets its own closure-captured `cache` map, so caches don't leak * across programs. * @ignore */ export function extractUniforms(gl: any, shader: any): {}; //# sourceMappingURL=uniforms.d.ts.map