YaGL/VIGS: Fix GL frambuffer functions lookup 46/22146/1
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Thu, 29 May 2014 10:13:11 +0000 (14:13 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Thu, 29 May 2014 10:26:09 +0000 (14:26 +0400)
With recent host OpenGL drivers (such as mesa 9.2.1)
functions like glFramebufferXXXEXT no longer work right from
within OpenGL 3.1+ contexts, glFramebufeerXXX (no EXT suffix)
functions must be used instead

Change-Id: I78525de16868bd65d3e30c6d0518ddae3dbb28df
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
hw/vigs/vigs_gl_backend_cgl.c
hw/vigs/vigs_gl_backend_glx.c
hw/vigs/vigs_gl_backend_wgl.c
hw/yagl/yagl_drivers/gles_ogl/yagl_gles_ogl.c

index da2f9f6..0819409 100644 (file)
@@ -289,15 +289,6 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
     VIGS_GL_GET_PROC(PixelStorei, glPixelStorei);
     VIGS_GL_GET_PROC(ReadPixels, glReadPixels);
     VIGS_GL_GET_PROC(Viewport, glViewport);
-    VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
-    VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
-    VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
-    VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
-    VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
-    VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
-    VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
-    VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
-    VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
     VIGS_GL_GET_PROC(GetIntegerv, glGetIntegerv);
     VIGS_GL_GET_PROC(GetString, glGetString);
     VIGS_GL_GET_PROC(DrawArrays, glDrawArrays);
@@ -338,10 +329,29 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
     }
 
     if (gl_backend_cgl->base.is_gl_2) {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
+
         error = CGLChoosePixelFormat(pixel_format_legacy_attrs,
                                      &pixel_format,
                                      &n);
     } else {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffers);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffers);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffers);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffers);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebuffer);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbuffer);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorage);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbuffer);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2D);
         VIGS_GL_GET_PROC(GenVertexArrays, glGenVertexArrays);
         VIGS_GL_GET_PROC(BindVertexArray, glBindVertexArray);
         VIGS_GL_GET_PROC(DeleteVertexArrays, glDeleteVertexArrays);
index 2232c2b..5394b19 100644 (file)
@@ -438,15 +438,6 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
     VIGS_GL_GET_PROC(PixelStorei, glPixelStorei);
     VIGS_GL_GET_PROC(ReadPixels, glReadPixels);
     VIGS_GL_GET_PROC(Viewport, glViewport);
-    VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
-    VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
-    VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
-    VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
-    VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
-    VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
-    VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
-    VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
-    VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
     VIGS_GL_GET_PROC(GetIntegerv, glGetIntegerv);
     VIGS_GL_GET_PROC(GetString, glGetString);
     VIGS_GL_GET_PROC(DrawArrays, glDrawArrays);
@@ -488,7 +479,26 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
         goto fail2;
     }
 
-    if (!gl_backend_glx->base.is_gl_2) {
+    if (gl_backend_glx->base.is_gl_2) {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
+    } else {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffers);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffers);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffers);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffers);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebuffer);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbuffer);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorage);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbuffer);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2D);
         VIGS_GL_GET_PROC(GenVertexArrays, glGenVertexArrays);
         VIGS_GL_GET_PROC(BindVertexArray, glBindVertexArray);
         VIGS_GL_GET_PROC(DeleteVertexArrays, glDeleteVertexArrays);
index a775202..7cb650e 100644 (file)
@@ -579,15 +579,6 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
     VIGS_GL_GET_PROC(PixelStorei, glPixelStorei);
     VIGS_GL_GET_PROC(ReadPixels, glReadPixels);
     VIGS_GL_GET_PROC(Viewport, glViewport);
-    VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
-    VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
-    VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
-    VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
-    VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
-    VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
-    VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
-    VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
-    VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
     VIGS_GL_GET_PROC(GetIntegerv, glGetIntegerv);
     VIGS_GL_GET_PROC(GetString, glGetString);
     VIGS_GL_GET_PROC(DrawArrays, glDrawArrays);
@@ -627,7 +618,26 @@ struct vigs_backend *vigs_gl_backend_create(void *display)
         goto fail;
     }
 
-    if (!gl_backend_wgl->base.is_gl_2) {
+    if (gl_backend_wgl->base.is_gl_2) {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffersEXT);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffersEXT);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffersEXT);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffersEXT);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebufferEXT);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbufferEXT);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorageEXT);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2DEXT);
+    } else {
+        VIGS_GL_GET_PROC(GenFramebuffers, glGenFramebuffers);
+        VIGS_GL_GET_PROC(GenRenderbuffers, glGenRenderbuffers);
+        VIGS_GL_GET_PROC(DeleteFramebuffers, glDeleteFramebuffers);
+        VIGS_GL_GET_PROC(DeleteRenderbuffers, glDeleteRenderbuffers);
+        VIGS_GL_GET_PROC(BindFramebuffer, glBindFramebuffer);
+        VIGS_GL_GET_PROC(BindRenderbuffer, glBindRenderbuffer);
+        VIGS_GL_GET_PROC(RenderbufferStorage, glRenderbufferStorage);
+        VIGS_GL_GET_PROC(FramebufferRenderbuffer, glFramebufferRenderbuffer);
+        VIGS_GL_GET_PROC(FramebufferTexture2D, glFramebufferTexture2D);
         VIGS_GL_GET_PROC(GenVertexArrays, glGenVertexArrays);
         VIGS_GL_GET_PROC(BindVertexArray, glBindVertexArray);
         VIGS_GL_GET_PROC(DeleteVertexArrays, glDeleteVertexArrays);
index dd549c8..15cff43 100644 (file)
@@ -99,20 +99,8 @@ struct yagl_gles_driver *yagl_gles_ogl_create(struct yagl_dyn_lib *dyn_lib,
     YAGL_GLES_OGL_GET_PROC(driver, TexImage3D, glTexImage3D);
     YAGL_GLES_OGL_GET_PROC(driver, TexSubImage3D, glTexSubImage3D);
     YAGL_GLES_OGL_GET_PROC(driver, CopyTexSubImage3D, glCopyTexSubImage3D);
-    YAGL_GLES_OGL_GET_PROC(driver, GenFramebuffers, glGenFramebuffersEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, BindFramebuffer, glBindFramebufferEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture2D, glFramebufferTexture2DEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, DeleteFramebuffers, glDeleteFramebuffersEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, BlitFramebuffer, glBlitFramebufferEXT);
     YAGL_GLES_OGL_GET_PROC(driver, DrawBuffers, glDrawBuffers);
     YAGL_GLES_OGL_GET_PROC(driver, ReadBuffer, glReadBuffer);
-    YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture3D, glFramebufferTexture3DEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, GenRenderbuffers, glGenRenderbuffersEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, BindRenderbuffer, glBindRenderbufferEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, RenderbufferStorage, glRenderbufferStorageEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, DeleteRenderbuffers, glDeleteRenderbuffersEXT);
-    YAGL_GLES_OGL_GET_PROC(driver, GetRenderbufferParameteriv, glGetRenderbufferParameterivEXT);
     YAGL_GLES_OGL_GET_PROC(driver, CreateProgram, glCreateProgram);
     YAGL_GLES_OGL_GET_PROC(driver, CreateShader, glCreateShader);
     YAGL_GLES_OGL_GET_PROC(driver, DeleteProgram, glDeleteProgram);
@@ -186,7 +174,6 @@ struct yagl_gles_driver *yagl_gles_ogl_create(struct yagl_dyn_lib *dyn_lib,
     YAGL_GLES_OGL_GET_PROC(driver, Disable, glDisable);
     YAGL_GLES_OGL_GET_PROC(driver, Flush, glFlush);
     YAGL_GLES_OGL_GET_PROC(driver, FrontFace, glFrontFace);
-    YAGL_GLES_OGL_GET_PROC(driver, GenerateMipmap, glGenerateMipmapEXT);
     YAGL_GLES_OGL_GET_PROC(driver, Hint, glHint);
     YAGL_GLES_OGL_GET_PROC(driver, LineWidth, glLineWidth);
     YAGL_GLES_OGL_GET_PROC(driver, PixelStorei, glPixelStorei);
@@ -237,12 +224,38 @@ struct yagl_gles_driver *yagl_gles_ogl_create(struct yagl_dyn_lib *dyn_lib,
     YAGL_GLES_OGL_GET_PROC(driver, Finish, glFinish);
 
     if (gl_version > yagl_gl_2) {
+        YAGL_GLES_OGL_GET_PROC(driver, GenFramebuffers, glGenFramebuffers);
+        YAGL_GLES_OGL_GET_PROC(driver, BindFramebuffer, glBindFramebuffer);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture2D, glFramebufferTexture2D);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferRenderbuffer, glFramebufferRenderbuffer);
+        YAGL_GLES_OGL_GET_PROC(driver, DeleteFramebuffers, glDeleteFramebuffers);
+        YAGL_GLES_OGL_GET_PROC(driver, BlitFramebuffer, glBlitFramebuffer);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture3D, glFramebufferTexture3D);
+        YAGL_GLES_OGL_GET_PROC(driver, GenRenderbuffers, glGenRenderbuffers);
+        YAGL_GLES_OGL_GET_PROC(driver, BindRenderbuffer, glBindRenderbuffer);
+        YAGL_GLES_OGL_GET_PROC(driver, RenderbufferStorage, glRenderbufferStorage);
+        YAGL_GLES_OGL_GET_PROC(driver, DeleteRenderbuffers, glDeleteRenderbuffers);
+        YAGL_GLES_OGL_GET_PROC(driver, GetRenderbufferParameteriv, glGetRenderbufferParameteriv);
+        YAGL_GLES_OGL_GET_PROC(driver, GenerateMipmap, glGenerateMipmap);
         YAGL_GLES_OGL_GET_PROC(driver, MapBufferRange, glMapBufferRange);
         YAGL_GLES_OGL_GET_PROC(driver, GetStringi, glGetStringi);
         YAGL_GLES_OGL_GET_PROC(driver, GenVertexArrays, glGenVertexArrays);
         YAGL_GLES_OGL_GET_PROC(driver, BindVertexArray, glBindVertexArray);
         YAGL_GLES_OGL_GET_PROC(driver, DeleteVertexArrays, glDeleteVertexArrays);
     } else {
+        YAGL_GLES_OGL_GET_PROC(driver, GenFramebuffers, glGenFramebuffersEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, BindFramebuffer, glBindFramebufferEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture2D, glFramebufferTexture2DEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferRenderbuffer, glFramebufferRenderbufferEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, DeleteFramebuffers, glDeleteFramebuffersEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, BlitFramebuffer, glBlitFramebufferEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, FramebufferTexture3D, glFramebufferTexture3DEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, GenRenderbuffers, glGenRenderbuffersEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, BindRenderbuffer, glBindRenderbufferEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, RenderbufferStorage, glRenderbufferStorageEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, DeleteRenderbuffers, glDeleteRenderbuffersEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, GetRenderbufferParameteriv, glGetRenderbufferParameterivEXT);
+        YAGL_GLES_OGL_GET_PROC(driver, GenerateMipmap, glGenerateMipmapEXT);
         YAGL_GLES_OGL_GET_PROC_OPT(driver, MapBufferRange, glMapBufferRange);
     }