@lightningjs/renderer
Version:
Lightning 3 Renderer
34 lines • 1.4 kB
JavaScript
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