]> git.sesse.net Git - vlc/commitdiff
opengl: don't use RGB shaders for RGB to RGB conversations
authorFelix Paul Kühne <fkuehne@videolan.org>
Sun, 24 Feb 2013 21:46:59 +0000 (13:46 -0800)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sun, 24 Feb 2013 21:49:31 +0000 (13:49 -0800)
This fixes display of RGB* input modules such as screen://

modules/video_output/opengl.c

index 36a514d7378f869c3cbe1b3115e40bcfc17f44cb..76cfb8f1da6ef13939796ed04a6b312960c8ea22 100644 (file)
@@ -412,8 +412,7 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
     bool need_fs_yuv = false;
     float yuv_range_correction = 1.0;
 
-    if (max_texture_units >= 3 && supports_shaders &&
-        vlc_fourcc_IsYUV(fmt->i_chroma) && !vlc_fourcc_IsYUV(vgl->fmt.i_chroma)) {
+    if (max_texture_units >= 3 && supports_shaders && vlc_fourcc_IsYUV(fmt->i_chroma)) {
         const vlc_fourcc_t *list = vlc_fourcc_GetYUVFallback(fmt->i_chroma);
         while (*list) {
             const vlc_chroma_description_t *dsc = vlc_fourcc_GetChromaDescription(*list);
@@ -466,14 +465,11 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
     vgl->shader[1] =
     vgl->shader[2] = -1;
     vgl->local_count = 0;
-    if (supports_shaders) {
-        if (need_fs_yuv)
-            BuildYUVFragmentShader(vgl, &vgl->shader[0],
+    if (supports_shaders && vlc_fourcc_IsYUV(fmt->i_chroma)) {
+        BuildYUVFragmentShader(vgl, &vgl->shader[0],
                                    &vgl->local_count,
                                    vgl->local_value,
                                    fmt, yuv_range_correction);
-        else
-            BuildRGBFragmentShader(vgl, &vgl->shader[0]);
         BuildRGBAFragmentShader(vgl, &vgl->shader[1]);
         BuildVertexShader(vgl, &vgl->shader[2]);