Files
libretro/bios/Other/epsxe/shaders/Brightness/gpuCore.slf
T

163 lines
3.0 KiB
Plaintext

#ifdef GL_ES
precision mediump float;
#endif
//#define BR1
#define BR2
//#define BR3
varying vec2 v_texCoord;
uniform sampler2D Frame;
void br3(in vec4 natural, out vec4 fragcolor) {
int LUT[33];
LUT[0] = 0;
LUT[1] = 2;
LUT[2] = 4;
LUT[3] = 6;
LUT[4] = 8;
LUT[5] = 10;
LUT[6] = 12;
LUT[7] = 14;
LUT[8] = 16;
LUT[9] = 17;
LUT[10] = 17;
LUT[11] = 18;
LUT[12] = 19;
LUT[13] = 19;
LUT[14] = 20;
LUT[15] = 21;
LUT[16] = 21;
LUT[17] = 22;
LUT[18] = 23;
LUT[19] = 23;
LUT[20] = 24;
LUT[21] = 25;
LUT[22] = 25;
LUT[23] = 26;
LUT[24] = 27;
LUT[25] = 27;
LUT[26] = 28;
LUT[27] = 29;
LUT[28] = 29;
LUT[29] = 30;
LUT[30] = 30;
LUT[31] = 31;
LUT[32] = 31;
vec4 rgb16 = natural * vec4(31.0, 31.0, 31.0, 1.0);
rgb16.r = float(LUT[int(rgb16.r)])+float(LUT[int(rgb16.r)+1]-LUT[int(rgb16.r)])*fract(rgb16.r);
rgb16.g = float(LUT[int(rgb16.g)])+float(LUT[int(rgb16.g)+1]-LUT[int(rgb16.g)])*fract(rgb16.g);
rgb16.b = float(LUT[int(rgb16.b)])+float(LUT[int(rgb16.b)+1]-LUT[int(rgb16.b)])*fract(rgb16.b);
fragcolor = rgb16 / vec4(31.0,31.0,31.0,1.0);
}
void br2(in vec4 natural, out vec4 fragcolor) {
int LUT[33];
LUT[0] = 0;
LUT[1] = 2;
LUT[2] = 4;
LUT[3] = 6;
LUT[4] = 8;
LUT[5] = 10;
LUT[6] = 11;
LUT[7] = 12;
LUT[8] = 13;
LUT[9] = 14;
LUT[10] = 15;
LUT[11] = 16;
LUT[12] = 17;
LUT[13] = 18;
LUT[14] = 19;
LUT[15] = 19;
LUT[16] = 20;
LUT[17] = 21;
LUT[18] = 22;
LUT[19] = 22;
LUT[20] = 23;
LUT[21] = 24;
LUT[22] = 25;
LUT[23] = 25;
LUT[24] = 26;
LUT[25] = 27;
LUT[26] = 28;
LUT[27] = 28;
LUT[28] = 29;
LUT[29] = 30;
LUT[30] = 30;
LUT[31] = 31;
LUT[32] = 31;
vec4 rgb16 = natural * vec4(31.0, 31.0, 31.0, 1.0);
rgb16.r = float(LUT[int(rgb16.r)])+float(LUT[int(rgb16.r)+1]-LUT[int(rgb16.r)])*fract(rgb16.r);
rgb16.g = float(LUT[int(rgb16.g)])+float(LUT[int(rgb16.g)+1]-LUT[int(rgb16.g)])*fract(rgb16.g);
rgb16.b = float(LUT[int(rgb16.b)])+float(LUT[int(rgb16.b)+1]-LUT[int(rgb16.b)])*fract(rgb16.b);
fragcolor = rgb16 / vec4(31.0,31.0,31.0,1.0);
}
void br1(in vec4 natural, out vec4 fragcolor) {
int LUT[33];
LUT[0] = 0;
LUT[1] = 2;
LUT[2] = 4;
LUT[3] = 5;
LUT[4] = 7;
LUT[5] = 8;
LUT[6] = 9;
LUT[7] = 10;
LUT[8] = 11;
LUT[9] = 12;
LUT[10] = 13;
LUT[11] = 14;
LUT[12] = 15;
LUT[13] = 16;
LUT[14] = 17;
LUT[15] = 17;
LUT[16] = 18;
LUT[17] = 19;
LUT[18] = 20;
LUT[19] = 21;
LUT[20] = 22;
LUT[21] = 23;
LUT[22] = 24;
LUT[23] = 24;
LUT[24] = 25;
LUT[25] = 26;
LUT[26] = 27;
LUT[27] = 28;
LUT[28] = 29;
LUT[29] = 30;
LUT[30] = 30;
LUT[31] = 31;
LUT[32] = 31;
vec4 rgb16 = natural * vec4(31.0, 31.0, 31.0, 1.0);
rgb16.r = float(LUT[int(rgb16.r)])+float(LUT[int(rgb16.r)+1]-LUT[int(rgb16.r)])*fract(rgb16.r);
rgb16.g = float(LUT[int(rgb16.g)])+float(LUT[int(rgb16.g)+1]-LUT[int(rgb16.g)])*fract(rgb16.g);
rgb16.b = float(LUT[int(rgb16.b)])+float(LUT[int(rgb16.b)+1]-LUT[int(rgb16.b)])*fract(rgb16.b);
fragcolor = rgb16 / vec4(31.0,31.0,31.0,1.0);
}
void main()
{
vec4 natural = texture2D(Frame, v_texCoord);
vec4 rgb32 = natural;
#ifdef BR1
br1(natural,rgb32);
#else
#ifdef BR2
br2(natural, rgb32);
#else
#ifdef BR3
br3(natural, rgb32);
#endif
#endif
#endif
gl_FragColor = rgb32;
}