[Scummvm-git-logs] scummvm master -> 010dfbff18b8d37b293617aefe0a16fbbd23153b

aquadran noreply at scummvm.org
Thu Dec 30 13:57:15 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
010dfbff18 GRAPHICS: Remove manual OpenGL function loading


Commit: 010dfbff18b8d37b293617aefe0a16fbbd23153b
    https://github.com/scummvm/scummvm/commit/010dfbff18b8d37b293617aefe0a16fbbd23153b
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2021-12-30T14:57:11+01:00

Commit Message:
GRAPHICS: Remove manual OpenGL function loading

Changed paths:
    engines/grim/gfx_opengl.cpp
    graphics/opengl/framebuffer.cpp


diff --git a/engines/grim/gfx_opengl.cpp b/engines/grim/gfx_opengl.cpp
index e347f904714..5d0e92d287b 100644
--- a/engines/grim/gfx_opengl.cpp
+++ b/engines/grim/gfx_opengl.cpp
@@ -45,20 +45,6 @@
 #include "engines/grim/registry.h"
 
 
-#if defined (SDL_BACKEND) && defined(GL_ARB_fragment_program) && !defined(USE_GLAD)
-
-// We need SDL.h for SDL_GL_GetProcAddress.
-#include "backends/platform/sdl/sdl-sys.h"
-
-// Extension functions needed for fragment programs.
-PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
-PFNGLBINDPROGRAMARBPROC glBindProgramARB;
-PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
-PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
-PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
-
-#endif
-
 namespace Grim {
 
 GfxBase *CreateGfxOpenGL() {
@@ -163,27 +149,7 @@ void GfxOpenGL::initExtensions() {
 		return;
 	}
 
-#if defined (SDL_BACKEND) && defined(GL_ARB_fragment_program)
-#ifndef USE_GLAD
-	union {
-		void *obj_ptr;
-		void (APIENTRY *func_ptr)();
-	} u;
-	// We're casting from an object pointer to a function pointer, the
-	// sizes need to be the same for this to work.
-	assert(sizeof(u.obj_ptr) == sizeof(u.func_ptr));
-	u.obj_ptr = SDL_GL_GetProcAddress("glGenProgramsARB");
-	glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glBindProgramARB");
-	glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glProgramStringARB");
-	glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glDeleteProgramsARB");
-	glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glProgramLocalParameter4fARB");
-	glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)u.func_ptr;
-#endif
-
+#ifdef GL_ARB_fragment_program
 	const char *extensions = (const char *)glGetString(GL_EXTENSIONS);
 	if (extensions && strstr(extensions, "ARB_fragment_program")) {
 		_useDepthShader = true;
diff --git a/graphics/opengl/framebuffer.cpp b/graphics/opengl/framebuffer.cpp
index 04ac2a8f244..3c371f79500 100644
--- a/graphics/opengl/framebuffer.cpp
+++ b/graphics/opengl/framebuffer.cpp
@@ -24,26 +24,7 @@
 
 #if (defined(USE_OPENGL_GAME) || defined(USE_OPENGL_SHADERS)) && !defined(AMIGAOS) && !defined(__MORPHOS__)
 
-#if defined(SDL_BACKEND) && !defined(USE_GLAD) && !defined(USE_GLES2)
-#define GL_GLEXT_PROTOTYPES // For the GL_EXT_framebuffer_object extension
 #include "graphics/opengl/framebuffer.h"
-#ifndef GL_ARB_framebuffer_object
-#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
-#define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_EXT
-#define GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
-#define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_EXT
-#define GL_RENDERBUFFER GL_RENDERBUFFER_EXT
-#define GL_STENCIL_ATTACHMENT GL_STENCIL_ATTACHMENT_EXT
-#define GL_STENCIL_INDEX8 GL_STENCIL_INDEX8_EXT
-#define GL_DEPTH24_STENCIL8 0x88F0
-#define GL_READ_FRAMEBUFFER 0x8CA8
-#define GL_DRAW_FRAMEBUFFER 0x8CA9
-#endif // defined(GL_ARB_framebuffer_object)
-#include "backends/platform/sdl/sdl-sys.h"
-#else
-#include "graphics/opengl/framebuffer.h"
-#endif
-
 #include "graphics/opengl/context.h"
 
 #ifdef USE_GLES2
@@ -53,68 +34,10 @@
 
 namespace OpenGL {
 
-#if defined(SDL_BACKEND) && !defined(USE_GLAD) && !defined(USE_GLES2)
-static bool framebuffer_object_functions = false;
-static PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebuffer;
-static PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbuffer;
-static PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatus;
-static PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffers;
-static PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffers;
-static PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbuffer;
-static PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2D;
-static PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffers;
-static PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffers;
-static PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorage;
-typedef void (* PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisample;
-typedef void (* PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-static PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebuffer;
-
-
-static void grabFramebufferObjectPointers() {
-	if (framebuffer_object_functions)
-		return;
-	framebuffer_object_functions = true;
-
-	union {
-		void *obj_ptr;
-		void (APIENTRY *func_ptr)();
-	} u;
-	// We're casting from an object pointer to a function pointer, the
-	// sizes need to be the same for this to work.
-	assert(sizeof(u.obj_ptr) == sizeof(u.func_ptr));
-	u.obj_ptr = SDL_GL_GetProcAddress("glBlitFramebuffer");
-	glBlitFramebuffer = (PFNGLBLITFRAMEBUFFEREXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glBindFramebuffer");
-	glBindFramebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glBindRenderbuffer");
-	glBindRenderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glCheckFramebufferStatus");
-	glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glDeleteFramebuffers");
-	glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glDeleteRenderbuffers");
-	glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glFramebufferRenderbuffer");
-	glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glFramebufferTexture2D");
-	glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glGenFramebuffers");
-	glGenFramebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glGenRenderbuffers");
-	glGenRenderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glRenderbufferStorage");
-	glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEEXTPROC)u.func_ptr;
-	u.obj_ptr = SDL_GL_GetProcAddress("glRenderbufferStorageMultisample");
-	glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)u.func_ptr;
-}
-#endif // defined(SDL_BACKEND) && !defined(USE_GLAD) && !defined(USE_GLES2)
-
-
-
 static bool usePackedBuffer() {
 	return OpenGLContext.packedDepthStencilSupported;
 }
+
 static bool useDepthComponent24() {
 	return OpenGLContext.OESDepth24;
 }
@@ -125,10 +48,6 @@ FrameBuffer::FrameBuffer(uint width, uint height) :
 		error("FrameBuffer Objects are not supported by the current OpenGL context");
 	}
 
-#if defined(SDL_BACKEND) && !defined(USE_GLAD) && !defined(USE_GLES2)
-	grabFramebufferObjectPointers();
-#endif
-
 	init();
 }
 




More information about the Scummvm-git-logs mailing list