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.

81 lines
2.1 KiB
Plaintext

4 years ago
Shader "Color Space/YCrCbtoRGB" {
Properties {
_YTex ("Y (RGB)", 2D) = "white" {}
_CrTex ("Cr (RGB)", 2D) = "white" {}
_CbTex ("Cb (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
Pass {
Tags { "RenderType"="Opaque" }
Fog {
Color (0,0,0,0)
}
ColorMask RGB
Program "vp" {
SubProgram "gles " {
"!!GLES
#define SHADER_API_GLES 1
#define tex2D texture2D
#ifdef VERTEX
#define gl_ModelViewProjectionMatrix glstate_matrix_mvp
uniform mat4 glstate_matrix_mvp;
varying mediump vec2 xlv_TEXCOORD1;
varying mediump vec2 xlv_TEXCOORD0;
uniform highp vec4 _YTex_ST;
uniform highp vec4 _CbTex_ST;
attribute vec4 _glesMultiTexCoord0;
attribute vec4 _glesVertex;
void main ()
{
mediump vec2 tmpvar_1;
mediump vec2 tmpvar_2;
highp vec2 tmpvar_3;
tmpvar_3 = ((_glesMultiTexCoord0.xy * _YTex_ST.xy) + _YTex_ST.zw);
tmpvar_1 = tmpvar_3;
highp vec2 tmpvar_4;
tmpvar_4 = ((_glesMultiTexCoord0.xy * _CbTex_ST.xy) + _CbTex_ST.zw);
tmpvar_2 = tmpvar_4;
gl_Position = (gl_ModelViewProjectionMatrix * _glesVertex);
xlv_TEXCOORD0 = tmpvar_1;
xlv_TEXCOORD1 = tmpvar_2;
}
#endif
#ifdef FRAGMENT
varying mediump vec2 xlv_TEXCOORD1;
varying mediump vec2 xlv_TEXCOORD0;
uniform sampler2D _YTex;
uniform sampler2D _CrTex;
uniform sampler2D _CbTex;
void main ()
{
lowp vec4 rgbVec;
lowp vec4 tmpvar_1;
tmpvar_1.w = 1.0;
tmpvar_1.x = texture2D (_YTex, xlv_TEXCOORD0).x;
tmpvar_1.y = texture2D (_CrTex, xlv_TEXCOORD1).y;
tmpvar_1.z = texture2D (_CbTex, xlv_TEXCOORD1).z;
rgbVec.x = dot (vec4(1.16438, 0.0, 1.59603, -0.870785), tmpvar_1);
rgbVec.y = dot (vec4(1.16438, -0.391762, -0.812969, 0.529594), tmpvar_1);
rgbVec.z = dot (vec4(1.16438, 2.01723, 0.0, -1.08139), tmpvar_1);
rgbVec.w = 1.0;
gl_FragData[0] = rgbVec;
}
#endif"
}
}
Program "fp" {
SubProgram "gles " {
"!!GLES"
}
}
}
}
}