From 9dffb367e2b1d8ba7032eaf8c497a2a4c387d849 Mon Sep 17 00:00:00 2001 From: Daniel Gibson Date: Wed, 2 Oct 2024 22:16:36 +0200 Subject: [PATCH] imgui_impl_opengl2.cpp: Restore Doom3 compatibility --- .../imgui/backends/imgui_impl_opengl2.cpp | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/neo/libs/imgui/backends/imgui_impl_opengl2.cpp b/neo/libs/imgui/backends/imgui_impl_opengl2.cpp index 7f1ea325..9a29d93f 100644 --- a/neo/libs/imgui/backends/imgui_impl_opengl2.cpp +++ b/neo/libs/imgui/backends/imgui_impl_opengl2.cpp @@ -52,6 +52,9 @@ #pragma clang diagnostic ignored "-Wnonportable-system-include-path" #endif +// DG: use qgl instead of GL/gl.h for dhewm3 (where D3_OSTYPE is always defined by CMake) +#ifndef D3_OSTYPE + // Include OpenGL header (without an OpenGL loader) requires a bit of fiddling #if defined(_WIN32) && !defined(APIENTRY) #define APIENTRY __stdcall // It is customary to use APIENTRY for OpenGL function pointer declarations on all platforms. Additionally, the Windows OpenGL header needs APIENTRY. @@ -66,6 +69,44 @@ #include #endif +#else // DG: use qgl + +#include "renderer/qgl.h" + +// creating some #defines for the used gl functions instead of adapting the code below +// will make updating to new imgui versions easier +#define glBindTexture qglBindTexture +#define glBlendFunc qglBlendFunc +#define glColorPointer qglColorPointer +#define glDeleteTextures qglDeleteTextures +#define glDisableClientState qglDisableClientState +#define glDisable qglDisable +#define glDrawElements qglDrawElements +#define glEnableClientState qglEnableClientState +#define glEnable qglEnable +#define glGenTextures qglGenTextures +#define glGetIntegerv qglGetIntegerv +#define glGetTexEnviv qglGetTexEnviv +#define glLoadIdentity qglLoadIdentity +#define glMatrixMode qglMatrixMode +#define glOrtho qglOrtho +#define glPixelStorei qglPixelStorei +#define glPolygonMode qglPolygonMode +#define glPopAttrib qglPopAttrib +#define glPopMatrix qglPopMatrix +#define glPushAttrib qglPushAttrib +#define glPushMatrix qglPushMatrix +#define glScissor qglScissor +#define glShadeModel qglShadeModel +#define glTexCoordPointer qglTexCoordPointer +#define glTexEnvi qglTexEnvi +#define glTexImage2D qglTexImage2D +#define glTexParameteri qglTexParameteri +#define glVertexPointer qglVertexPointer +#define glViewport qglViewport + +#endif // DG: use qgl + struct ImGui_ImplOpenGL2_Data { GLuint FontTexture;