interface WebGlContextManagerOptions { width: number; height: number; } /** * Generic utility wrapper to handle WebGL context * and various associated resources. */ export default class WebGlContextManager { gl: WebGLRenderingContext; buffers: { [key: string]: { target: number; buffer: WebGLBuffer; type: number; itemSize: number; numItems: number | null; }; }; attrIndex: { [key: string]: number; }; uniformIndex: { [key: string]: WebGLUniformLocation; }; private vertexShaderSource; private fragmentShaderSource; private attrNames; private uniformNames; constructor({ width, height }: WebGlContextManagerOptions); registerVertexShader(source: string): void; registerFragmentShader(source: string): void; registerAttr(name: string): void; registerUniform(name: string): void; registerBuffer(name: string, target: number, type: number, itemSize?: number): void; bufferData(name: string, srcData: ArrayBufferView, usage: number): void; bindBufferToAttr(bufferName: string, attrName: string, normalized?: boolean, stride?: number, offset?: number): void; drawBuffer(bufferName: string, mode: number, offset?: number): void; setupShaders(): void; private glHandleContextLost; private glHandleContextRestored; } export {};