Skip to content

Commit 9dffb36

Browse files
committed
imgui_impl_opengl2.cpp: Restore Doom3 compatibility
1 parent 6bcd18e commit 9dffb36

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

neo/libs/imgui/backends/imgui_impl_opengl2.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
#pragma clang diagnostic ignored "-Wnonportable-system-include-path"
5353
#endif
5454

55+
// DG: use qgl instead of GL/gl.h for dhewm3 (where D3_OSTYPE is always defined by CMake)
56+
#ifndef D3_OSTYPE
57+
5558
// Include OpenGL header (without an OpenGL loader) requires a bit of fiddling
5659
#if defined(_WIN32) && !defined(APIENTRY)
5760
#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 @@
6669
#include <GL/gl.h>
6770
#endif
6871

72+
#else // DG: use qgl
73+
74+
#include "renderer/qgl.h"
75+
76+
// creating some #defines for the used gl functions instead of adapting the code below
77+
// will make updating to new imgui versions easier
78+
#define glBindTexture qglBindTexture
79+
#define glBlendFunc qglBlendFunc
80+
#define glColorPointer qglColorPointer
81+
#define glDeleteTextures qglDeleteTextures
82+
#define glDisableClientState qglDisableClientState
83+
#define glDisable qglDisable
84+
#define glDrawElements qglDrawElements
85+
#define glEnableClientState qglEnableClientState
86+
#define glEnable qglEnable
87+
#define glGenTextures qglGenTextures
88+
#define glGetIntegerv qglGetIntegerv
89+
#define glGetTexEnviv qglGetTexEnviv
90+
#define glLoadIdentity qglLoadIdentity
91+
#define glMatrixMode qglMatrixMode
92+
#define glOrtho qglOrtho
93+
#define glPixelStorei qglPixelStorei
94+
#define glPolygonMode qglPolygonMode
95+
#define glPopAttrib qglPopAttrib
96+
#define glPopMatrix qglPopMatrix
97+
#define glPushAttrib qglPushAttrib
98+
#define glPushMatrix qglPushMatrix
99+
#define glScissor qglScissor
100+
#define glShadeModel qglShadeModel
101+
#define glTexCoordPointer qglTexCoordPointer
102+
#define glTexEnvi qglTexEnvi
103+
#define glTexImage2D qglTexImage2D
104+
#define glTexParameteri qglTexParameteri
105+
#define glVertexPointer qglVertexPointer
106+
#define glViewport qglViewport
107+
108+
#endif // DG: use qgl
109+
69110
struct ImGui_ImplOpenGL2_Data
70111
{
71112
GLuint FontTexture;

0 commit comments

Comments
 (0)