UNPKG

ts-game-engine

Version:

Simple WebGL game/render engine written in TypeScript

43 lines (36 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Material_1 = require("./Material"); const Constants_1 = require("../Constants"); class VertexColoredMaterial extends Material_1.Material { constructor(scene) { super(scene, vsSource, fsSource); this.Shader.DefineUniform(Constants_1.MODEL_MATRIX_UNIFORM, 10 /* Matrix4 */); this.Shader.DefineUniform(Constants_1.VIEW_MATRIX_UNIFORM, 10 /* Matrix4 */); this.Shader.DefineUniform(Constants_1.PROJECTION_MATRIX_UNIFORM, 10 /* Matrix4 */); } SetUniforms(globalUniforms) { this.Shader.SetMatrix4Uniform(Constants_1.MODEL_MATRIX_UNIFORM, globalUniforms.modelMatrix); this.Shader.SetMatrix4Uniform(Constants_1.VIEW_MATRIX_UNIFORM, globalUniforms.viewMatrix); this.Shader.SetMatrix4Uniform(Constants_1.PROJECTION_MATRIX_UNIFORM, globalUniforms.projectionMatrix); } } exports.VertexColoredMaterial = VertexColoredMaterial; const vsSource = `#version 300 es layout(location = ${Constants_1.POSITION_ATTRIBUTE_LOCATION}) in vec3 ${Constants_1.POSITION_ATTRIBUTE}; layout(location = ${Constants_1.COLOR_ATTRIBUTE_LOCATION}) in vec4 ${Constants_1.COLOR_ATTRIBUTE}; uniform mat4 ${Constants_1.MODEL_MATRIX_UNIFORM}; uniform mat4 ${Constants_1.VIEW_MATRIX_UNIFORM}; uniform mat4 ${Constants_1.PROJECTION_MATRIX_UNIFORM}; out vec4 vColor; void main() { gl_Position = ${Constants_1.PROJECTION_MATRIX_UNIFORM} * ${Constants_1.VIEW_MATRIX_UNIFORM} * ${Constants_1.MODEL_MATRIX_UNIFORM} * vec4(${Constants_1.POSITION_ATTRIBUTE}, 1); vColor = ${Constants_1.COLOR_ATTRIBUTE}; }`; const fsSource = `#version 300 es precision mediump float; in vec4 vColor; out vec4 fragColor; void main() { fragColor = vColor; }`;