@lightningtv/renderer
Version:
Lightning 3 Renderer
36 lines (35 loc) • 1.61 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 boundBufferCollection: BufferCollection | null;
protected program: WebGLProgram;
/**
* Vertex Array Object
*
* @remarks
* Used by WebGL2 Only
*/
protected vao: WebGLVertexArrayObject | undefined;
protected renderer: WebGlRenderer;
protected glw: WebGlContextWrapper;
protected attributeLocations: Record<string, number>;
protected lifecycle: Pick<WebGlShaderType, 'update' | 'canBatch'>;
protected useSystemAlpha: boolean;
protected useSystemDimensions: boolean;
supportsIndexedTextures: boolean;
constructor(renderer: WebGlRenderer, config: WebGlShaderType, resolvedProps: Record<string, any>);
disableAttribute(location: number): void;
disableAttributes(): void;
reuseRenderOp(renderOpA: QuadOptions, renderOpB: QuadOptions): boolean;
bindRenderOp(renderOp: WebGlRenderOp): void;
bindBufferCollection(buffer: BufferCollection): void;
bindTextures(textures: WebGlCtxTexture[]): void;
attach(): void;
detach(): void;
}