From: Stanislav Vorobiov Date: Thu, 29 May 2014 10:13:11 +0000 (+0400) Subject: YaGL/VIGS: Fix GL frambuffer functions lookup X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~356^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c431fafee9e44c36584a534cabbc4746f301673;p=sdk%2Femulator%2Fqemu.git YaGL/VIGS: Fix GL frambuffer functions lookup 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 --- diff --git a/hw/vigs/vigs_gl_backend_cgl.c b/hw/vigs/vigs_gl_backend_cgl.c index da2f9f63b8..081940970a 100644 --- a/hw/vigs/vigs_gl_backend_cgl.c +++ b/hw/vigs/vigs_gl_backend_cgl.c @@ -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); diff --git a/hw/vigs/vigs_gl_backend_glx.c b/hw/vigs/vigs_gl_backend_glx.c index 2232c2b57e..5394b19f85 100644 --- a/hw/vigs/vigs_gl_backend_glx.c +++ b/hw/vigs/vigs_gl_backend_glx.c @@ -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); diff --git a/hw/vigs/vigs_gl_backend_wgl.c b/hw/vigs/vigs_gl_backend_wgl.c index a775202f04..7cb650e9bf 100644 --- a/hw/vigs/vigs_gl_backend_wgl.c +++ b/hw/vigs/vigs_gl_backend_wgl.c @@ -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); diff --git a/hw/yagl/yagl_drivers/gles_ogl/yagl_gles_ogl.c b/hw/yagl/yagl_drivers/gles_ogl/yagl_gles_ogl.c index dd549c8334..15cff43eac 100644 --- a/hw/yagl/yagl_drivers/gles_ogl/yagl_gles_ogl.c +++ b/hw/yagl/yagl_drivers/gles_ogl/yagl_gles_ogl.c @@ -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); }