glmemory: properly detect (hopefully) the correct ext_rg/arb_rg variant
authorMatthew Waters <matthew@centricular.com>
Thu, 7 May 2015 05:25:10 +0000 (12:25 +0700)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:01 +0000 (19:32 +0000)
GL_EXT_texture_rg is only valid for GLES2. GLES3 uses similar wording to
the GL_ARB_texture_rg which requires a sized internal format that the
GL_EXT_texture_rg does not require.

https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt
https://www.opengl.org/registry/specs/ARB/texture_rg.txt

gst-libs/gst/gl/gstglmemory.c

index 254e617..a4dc7dc 100644 (file)
@@ -320,7 +320,7 @@ _sized_gl_format_from_gl_format_type (GstGLContext * context, GLenum format,
     case GL_RG:
       switch (type) {
         case GL_UNSIGNED_BYTE:
-          if (ext_texture_rg)
+          if (!USING_GLES3 (context) && USING_GLES2 (context) && ext_texture_rg)
             return GL_RG;
           return GL_RG8;
           break;
@@ -329,7 +329,7 @@ _sized_gl_format_from_gl_format_type (GstGLContext * context, GLenum format,
     case GL_RED:
       switch (type) {
         case GL_UNSIGNED_BYTE:
-          if (ext_texture_rg)
+          if (!USING_GLES3 (context) && USING_GLES2 (context) && ext_texture_rg)
             return GL_RED;
           return GL_R8;
           break;