UNPKG

@lightningjs/renderer

Version:
34 lines 1.4 kB
import { createProgram, createShader, DEFAULT_FRAGMENT, DEFAULT_VERTEX } from "./internal/ShaderUtils.js"; export default class WebGlCoreShaderProgram { program; vao; uniformLocations; attributeLocations; constructor(glw, shader, options) { const webGl2 = glw.isWebGl2(); const requiredExtensions = (webGl2 && options.webgl2Extensions) || (!webGl2 && options.webgl1Extensions) || []; const glVersion = webGl2 ? '2.0' : '1.0'; requiredExtensions.forEach((extensionName) => { if (!glw.getExtension(extensionName)) { throw new Error(`Shader "${this.constructor.name}" requires extension "${extensionName}" for WebGL ${glVersion} but wasn't found`); } }); const vertex = createShader(glw, glw.VERTEX_SHADER, DEFAULT_VERTEX); const fragment = createShader(glw, glw.FRAGMENT_SHADER, DEFAULT_FRAGMENT); if (!vertex || !fragment) { throw new Error(); } const program = createProgram(glw, vertex, fragment); if (!program) { throw new Error(); } this.program = program; this.uniformLocations = glw.getUniformLocations(program); this.attributeLocations = glw.getAttributeLocations(program); } bindRenderOp(renderOp) { } } //# sourceMappingURL=WebGlCoreShaderProgram.js.map