[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