Files
sanspie 5eb1832907
ci-platforms / darwin amd64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Failing after 15m28s
ci / release (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / checks (push) Successful in 7m47s
Complete Stage 12 for v0.12.0
2026-11-05 11:46:53 +03:00

24 lines
896 B
GLSL

#version 300 es
precision highp float;
precision highp int;
precision highp sampler2D;
uniform sampler2D tex0;
layout(std140) uniform ub0 { vec4 params; };
in vec2 uv;
out vec4 color;
vec3 encodeSRGB(vec3 x) {
return mix(12.92*x,1.055*pow(max(x,vec3(0.0)),vec3(1.0/2.4))-0.055,step(vec3(0.0031308),x));
}
void main() {
vec4 sampleColor=texture(tex0,uv);
float coverage=clamp(sampleColor.a,0.0,1.0);
vec3 straight=coverage>1e-8 ? max(sampleColor.rgb,vec3(0.0))/coverage : vec3(0.0);
straight*=params.x;
if (params.y>0.5) { straight=straight/(vec3(1.0)+straight); }
straight=clamp(straight,vec3(0.0),vec3(1.0));
// RGBA8 display outputs need explicit encoding. sRGB attachments and the
// browser/native presentation path perform their own single conversion.
if (params.w>0.5) { straight=encodeSRGB(straight); }
color=vec4(straight*coverage,coverage);
}