Variable: RASTER_FRAGMENT_SHADER
ts
const RASTER_FRAGMENT_SHADER: "\nuniform vec3 uScale; // shared with the vertex stage (TRANSFORM_GLSL)\nuniform vec3 uOffset;\nuniform sampler2D uTex; // RGBA8, premultiplied\nuniform vec2 uSize;\nuniform float uOpacity;\nuniform vec2 uResolution; // viewport size, CSS px (= 2D world px)\nuniform vec4 uViewport; // GL viewport, device px\n\nin vec2 vUv;\nout highp vec4 fragColor;\n\n// Texture coordinate from the fragment's pixel center (see heatmap.glsl.ts), else the varying.\nvec2 rsUv() {\n vec2 world = (gl_FragCoord.xy - uViewport.xy) * uResolution / uViewport.zw;\n vec2 local = (world - uOffset.xy) / uScale.xy;\n bool ok = all(greaterThan(abs(uScale.xy), vec2(0.0))) && all(greaterThan(abs(uSize), vec2(0.0)));\n return ok ? local / uSize : vUv;\n}\n\nvoid main() {\n vec2 uv = rsUv();\n if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) discard;\n vec4 c = texture(uTex, uv);\n if (c.a <= 0.0) discard;\n fragColor = vec4(c.rgb / c.a, c.a * uOpacity);\n}\n";Experimental