UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

33 lines 2.54 kB
import { expandFunctions, tgdCodeStringify, expandVariables, } from "./code.js"; /** * Helper to wirte the code of a fragment Shader. * @see https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf */ export class TgdShaderFragment { constructor({ precision = "mediump", uniforms = {}, outputs = { FragColor: "vec4", }, varying = {}, functions = {}, mainCode = ["FragColor = vec4(1, 0.667, 0, 1);"], } = {}) { this.precision = "mediump"; this.precision = precision; this.uniforms = uniforms; this.outputs = outputs; this.varying = varying; this.functions = functions; this.mainCode = mainCode; } get code() { return tgdCodeStringify([ `#version 300 es`, `precision ${this.precision} float;`, ...expandVariables(this.uniforms, "uniform"), ...expandVariables(this.varying, "in"), ...expandVariables(this.outputs, "out"), ...expandFunctions(this.functions), "", `void main() {`, this.mainCode, "}", ]); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhZGVyL2ZyYWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJSCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDbEIsTUFBTSxRQUFRLENBQUE7QUFFZjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBZTFCLFlBQVksRUFDUixTQUFTLEdBQUcsU0FBUyxFQUNyQixRQUFRLEdBQUcsRUFBRSxFQUNiLE9BQU8sR0FBRztRQUNOLFNBQVMsRUFBRSxNQUFNO0tBQ3BCLEVBQ0QsT0FBTyxHQUFHLEVBQUUsRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLFFBQVEsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLE1BUS9DLEVBQUU7UUE5QkEsY0FBUyxHQUFpQyxTQUFTLENBQUE7UUErQnRELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLGdCQUFnQixDQUFDO1lBQ3BCLGlCQUFpQjtZQUNqQixhQUFhLElBQUksQ0FBQyxTQUFTLFNBQVM7WUFDcEMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7WUFDNUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7WUFDdEMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDdkMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxFQUFFO1lBQ0YsZUFBZTtZQUNmLElBQUksQ0FBQyxRQUFRO1lBQ2IsR0FBRztTQUNOLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiJ9