@lightningjs/renderer
Version:
Lightning 3 Renderer
38 lines (37 loc) • 1.68 kB
TypeScript
import type { WebGlContextWrapper } from '../../lib/WebGlContextWrapper.js';
import type { QuadOptions } from '../CoreRenderer.js';
import type { CoreShaderProgram } from '../CoreShaderProgram.js';
import type { WebGlCtxTexture } from './WebGlCtxTexture.js';
import type { WebGlRenderOp } from './WebGlRenderOp.js';
import type { WebGlRenderer } from './WebGlRenderer.js';
import type { WebGlShaderType } from './WebGlShaderNode.js';
import type { BufferCollection } from './internal/BufferCollection.js';
export declare class WebGlShaderProgram implements CoreShaderProgram {
protected program: WebGLProgram | null;
/**
* Vertex Array Object
*
* @remarks
* Used by WebGL2 Only
*/
protected vao: WebGLVertexArrayObject | undefined;
protected renderer: WebGlRenderer;
protected glw: WebGlContextWrapper;
protected attributeLocations: string[];
protected uniformLocations: Record<string, WebGLUniformLocation> | null;
protected lifecycle: Pick<WebGlShaderType, 'update' | 'canBatch'>;
protected useSystemAlpha: boolean;
protected useSystemDimensions: boolean;
isDestroyed: boolean;
supportsIndexedTextures: boolean;
constructor(renderer: WebGlRenderer, config: WebGlShaderType, resolvedProps: Record<string, any>);
disableAttribute(location: number): void;
disableAttributes(): void;
reuseRenderOp(incomingQuad: QuadOptions, currentRenderOp: WebGlRenderOp): boolean;
bindRenderOp(renderOp: WebGlRenderOp): void;
bindBufferCollection(buffer: BufferCollection): void;
bindTextures(textures: WebGlCtxTexture[]): void;
attach(): void;
detach(): void;
destroy(): void;
}