aboutsummaryrefslogtreecommitdiff
path: root/system/shaders/yuv2rgb_basic.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'system/shaders/yuv2rgb_basic.glsl')
-rw-r--r--system/shaders/yuv2rgb_basic.glsl28
1 files changed, 28 insertions, 0 deletions
diff --git a/system/shaders/yuv2rgb_basic.glsl b/system/shaders/yuv2rgb_basic.glsl
new file mode 100644
index 0000000000..49fdf633a5
--- /dev/null
+++ b/system/shaders/yuv2rgb_basic.glsl
@@ -0,0 +1,28 @@
+#if(XBMC_texture_rectangle)
+# extension GL_ARB_texture_rectangle : enable
+# define texture2D texture2DRect
+# define sampler2D sampler2DRect
+#endif
+
+uniform sampler2D m_sampY;
+uniform sampler2D m_sampU;
+uniform sampler2D m_sampV;
+varying vec2 m_cordY;
+varying vec2 m_cordU;
+varying vec2 m_cordV;
+
+uniform mat4 m_yuvmat;
+
+
+void main()
+{
+ vec4 yuv, rgb;
+ yuv.rgba = vec4( texture2D(m_sampY, m_cordY).r
+ , texture2D(m_sampU, m_cordU).r
+ , texture2D(m_sampV, m_cordV).r
+ , 1.0 );
+
+ rgb = m_yuvmat * yuv;
+ rgb.a = gl_Color.a;
+ gl_FragColor = rgb;
+}