diff options
Diffstat (limited to 'system/shaders/yuv2rgb_basic.glsl')
-rw-r--r-- | system/shaders/yuv2rgb_basic.glsl | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/system/shaders/yuv2rgb_basic.glsl b/system/shaders/yuv2rgb_basic.glsl index 13fe0ec5df..59cac3eaa8 100644 --- a/system/shaders/yuv2rgb_basic.glsl +++ b/system/shaders/yuv2rgb_basic.glsl @@ -55,11 +55,12 @@ vec2 stretch(vec2 pos) #endif } -void main() +vec4 process() { + vec4 rgb; #if defined(XBMC_YV12) || defined(XBMC_NV12) - vec4 yuv, rgb; + vec4 yuv; yuv.rgba = vec4( texture2D(m_sampY, stretch(m_cordY)).r , texture2D(m_sampU, stretch(m_cordU)).g , texture2D(m_sampV, stretch(m_cordV)).a @@ -67,11 +68,10 @@ void main() rgb = m_yuvmat * yuv; rgb.a = gl_Color.a; - gl_FragColor = rgb; #elif defined(XBMC_NV12_RRG) - vec4 yuv, rgb; + vec4 yuv; yuv.rgba = vec4( texture2D(m_sampY, stretch(m_cordY)).r , texture2D(m_sampU, stretch(m_cordU)).r , texture2D(m_sampV, stretch(m_cordV)).g @@ -79,7 +79,6 @@ void main() rgb = m_yuvmat * yuv; rgb.a = gl_Color.a; - gl_FragColor = rgb; #elif defined(XBMC_YUY2) || defined(XBMC_UYVY) @@ -116,10 +115,11 @@ void main() float outY = mix(leftY, rightY, step(0.5, f.x)); vec4 yuv = vec4(outY, outUV, 1.0); - vec4 rgb = m_yuvmat * yuv; - - gl_FragColor = rgb; - gl_FragColor.a = gl_Color.a; + rgb = m_yuvmat * yuv; + rgb.a = gl_Color.a; #endif + + return rgb; } + |