Merge pull request #4401 from Jalle19/fix-recording-thumbnail
[vuplus_xbmc] / system / shaders / yuv2rgb_basic_gles.glsl
1 /*
2  *      Copyright (C) 2010-2013 Team XBMC
3  *      http://xbmc.org
4  *
5  *  This Program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2, or (at your option)
8  *  any later version.
9  *
10  *  This Program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with XBMC; see the file COPYING.  If not, see
17  *  <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 precision mediump float;
22 uniform sampler2D m_sampY;
23 uniform sampler2D m_sampU;
24 uniform sampler2D m_sampV;
25 varying vec2      m_cordY;
26 varying vec2      m_cordU;
27 varying vec2      m_cordV;
28 uniform float     m_alpha;
29 uniform mat4      m_yuvmat;
30
31 // handles both YV12 and NV12 formats
32 void main()
33 {
34   vec4 yuv, rgb;
35   yuv.rgba = vec4( texture2D(m_sampY, m_cordY).r
36                  , texture2D(m_sampU, m_cordU).g
37                  , texture2D(m_sampV, m_cordV).a
38                  , 1.0);
39
40   rgb   = m_yuvmat * yuv;
41   rgb.a = m_alpha;
42   gl_FragColor = rgb;
43 }