Variables
Const FS
FS: string = `#version 300 esprecision highp float;in vec2 tilesetPosPx;out vec4 fragColor;uniform sampler2D image;uniform bool colorize;uniform vec4 bg;uniform vec4 tint;void main() {fragColor = vec4(0, 0, 0, 1);vec4 texel = texelFetch(image, ivec2(tilesetPosPx), 0);if (colorize) {texel.rgb = tint.a * tint.rgb + (1.0-tint.a) * texel.rgb;fragColor.rgb = texel.a*texel.rgb + (1.0-texel.a)*bg.rgb;fragColor.a = texel.a + (1.0-texel.a)*bg.a;} else {fragColor = texel;}}`.trim()
Const UNIFORMS
UNIFORMS: string[] = ["targetPosRel", "tilesetPosAbs", "tileSize", "targetSize", "colorize", "bg", "tint"]
Const VS
VS: string = `#version 300 esin vec2 tilePosRel;out vec2 tilesetPosPx;uniform vec2 tilesetPosAbs;uniform vec2 tileSize;uniform vec2 targetSize;uniform vec2 targetPosRel;void main() {vec2 targetPosPx = (targetPosRel + tilePosRel) * tileSize;vec2 targetPosNdc = ((targetPosPx / targetSize)-0.5)*2.0;targetPosNdc.y *= -1.0;gl_Position = vec4(targetPosNdc, 0.0, 1.0);tilesetPosPx = tilesetPosAbs + tilePosRel * tileSize;}`.trim()
Let colorCache
colorCache: object