29 lines
799 B
GLSL
29 lines
799 B
GLSL
// Tritanopia -- blue-blind.
|
|
//
|
|
// Panama's accessibility color filters. Selected by the `colorFilter`
|
|
// preference; hypr/looks.lua maps the enum to this path at config time and
|
|
// services/SystemSettings.qml does the same live.
|
|
//
|
|
// Same family of matrices as protanopia.frag, weighted for the missing blue
|
|
// cone. See that file for why this is a correction rather than a simulation,
|
|
// and for the column-major note.
|
|
|
|
#version 300 es
|
|
|
|
precision mediump float;
|
|
in vec2 v_texcoord;
|
|
layout(location = 0) out vec4 fragColor;
|
|
uniform sampler2D tex;
|
|
|
|
const mat3 tritanopia = mat3(
|
|
0.950, 0.000, 0.000,
|
|
0.050, 0.433, 0.475,
|
|
0.000, 0.567, 0.525
|
|
);
|
|
|
|
void main() {
|
|
vec4 pixColor = texture(tex, v_texcoord);
|
|
|
|
fragColor = vec4(clamp(tritanopia * pixColor.rgb, 0.0, 1.0), pixColor.a);
|
|
}
|