1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #version 150
- ////////////////////////////////////////////////////////
- // GTU version 0.40
- // Author: aliaspider - aliaspider@gmail.com
- // License: GPLv3
- ////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////
- // SETTINGS
- ////////////////////////////////////////////////////////
- //#define CROP_OVERSCAN
- #define TV_COLOR_LEVELS
- //#define COMPOSITE_CONNECTION
- //#define NO_SCANLINES
- #define TV_HORIZONTAL_RESOLUTION 400.0
- #define TV_VERTICAL_RESOLUTION 300.0
- #define SIGNAL_RESOLUTION 280.0
- #define SIGNAL_RESOLUTION_I 83.0
- #define SIGNAL_RESOLUTION_Q 25.0
- #define TV_DISPLAY_GAMMA 2.4
- #define OUTPUT_DISPLAY_GAMMA 2.2
- ////////////////////////////////////////////////////////
- //
- ////////////////////////////////////////////////////////
- #define RGB_to_YIQ mat3x3( 0.299 , 0.595716 , 0.211456 , 0.587 , -0.274453 , -0.522591 , 0.114 , -0.321263 , 0.311135 )
- #define YIQ_to_RGB mat3x3( 1.0 , 1.0 , 1.0 , 0.9563 , -0.2721 , -1.1070 , 0.6210 , -0.6474 , 1.7046 )
- #define LEVELS(C) clamp((C -16/ 255.0)*255.0/(235.0-16.0),0.0,1.0)
- uniform sampler2D source[];
- uniform vec4 sourceSize[];
- in Vertex {
- vec2 texCoord;
- };
- out vec4 fragColor;
- void main() {
- vec3 c=texture2D(source[0], texCoord.xy).xyz;
- #ifdef TV_COLOR_LEVELS
- c=LEVELS(c);
- #endif
- #ifdef COMPOSITE_CONNECTION
- c=RGB_to_YIQ*c;
- #endif
- fragColor = vec4(c, 1.0);
- }
|