You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB
Plaintext

Shader "Color Space/YCrCbtoRGB Add" {
Properties {
_YTex ("Y (RGB)", 2D) = "white" {}
_CbTex ("Cb (RGB)", 2D) = "white" {}
_CrTex ("Cr (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "QUEUE"="Overlay" "RenderType"="Opaque" }
Pass {
Tags { "QUEUE"="Overlay" "RenderType"="Opaque" }
Fog {
Color (0,0,0,0)
}
Blend One One
ColorMask RGB
Program "vp" {
SubProgram "gles " {
"!!GLES
#ifdef VERTEX
varying highp vec2 xlv_TEXCOORD0;
uniform highp vec4 _YTex_ST;
uniform highp mat4 glstate_matrix_mvp;
attribute vec4 _glesMultiTexCoord0;
attribute vec4 _glesVertex;
void main ()
{
gl_Position = (glstate_matrix_mvp * _glesVertex);
xlv_TEXCOORD0 = ((_glesMultiTexCoord0.xy * _YTex_ST.xy) + _YTex_ST.zw);
}
#endif
#ifdef FRAGMENT
varying highp vec2 xlv_TEXCOORD0;
uniform sampler2D _CrTex;
uniform sampler2D _CbTex;
uniform sampler2D _YTex;
void main ()
{
mediump vec4 rgbVec_1;
mediump vec4 yuvVec_2;
lowp vec4 tmpvar_3;
tmpvar_3.w = 1.0;
tmpvar_3.x = texture2D (_YTex, xlv_TEXCOORD0).x;
tmpvar_3.y = texture2D (_CbTex, xlv_TEXCOORD0).y;
tmpvar_3.z = texture2D (_CrTex, xlv_TEXCOORD0).z;
yuvVec_2 = tmpvar_3;
rgbVec_1.x = dot (vec4(1.16438, 0.0, 1.59603, -0.870785), yuvVec_2);
rgbVec_1.y = dot (vec4(1.16438, -0.391762, -0.812969, 0.529594), yuvVec_2);
rgbVec_1.z = dot (vec4(1.16438, 2.01723, 0.0, -1.08139), yuvVec_2);
rgbVec_1.w = 0.3;
gl_FragData[0] = rgbVec_1;
}
#endif"
}
}
Program "fp" {
SubProgram "gles " {
"!!GLES"
}
}
}
}
Fallback "VertexLit"
}