DXGL r161 - Code Review

Jump to navigation Jump to search
Repository:DXGL
Revision:r160‎ | r161 | r162 >
Date:18:03, 4 June 2012
Author:admin
Status:new
Tags:
Comment:
Shut down program if OpenGL requirements are not met.
Modified paths:
  • /ddraw/glExtensions.cpp (modified) (history)

Diff [purge]

Index: ddraw/glExtensions.cpp
@@ -143,6 +143,13 @@
144144 glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)wglGetProcAddress("glVertexAttribPointer");
145145 glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)wglGetProcAddress("glEnableVertexAttribArray");
146146 }
 147+ else
 148+ {
 149+ MessageBox(NULL,_T("DXGL requires an OpenGL 2.0 or higher compatible graphics card to function. \
 150+Please contact your graphics card manufacturer for an updated driver. This program will now exit."),_T("Fatal error"),
 151+ MB_OK|MB_ICONERROR);
 152+ ExitProcess(-1);
 153+ }
147154 const GLubyte *glextensions = glGetString(GL_EXTENSIONS);
148155 if(strstr((char*)glextensions,"GL_ARB_framebuffer_object")) GLEXT_ARB_framebuffer_object = 1;
149156 if(strstr((char*)glextensions,"GL_EXT_framebuffer_object")) GLEXT_EXT_framebuffer_object = 1;
@@ -150,6 +157,7 @@
151158 if(strstr((char*)glextensions,"GL_EXT_packed_depth_stencil")) GLEXT_EXT_packed_depth_stencil = 1;
152159 if(strstr((char*)glextensions,"GL_ARB_depth_buffer_float")) GLEXT_ARB_depth_buffer_float = 1;
153160 if(strstr((char*)glextensions,"GL_ARB_depth_texture")) GLEXT_ARB_depth_texture = 1;
 161+ bool broken_fbo = true;
154162 if(GLEXT_ARB_framebuffer_object)
155163 {
156164 glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)wglGetProcAddress("glGenFramebuffers");
@@ -160,6 +168,7 @@
161169 glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)wglGetProcAddress("glFramebufferTexture2D");
162170 glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)wglGetProcAddress("glCheckFramebufferStatus");
163171 glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)wglGetProcAddress("glDeleteFramebuffers");
 172+ broken_fbo = false;
164173 }
165174 if(GLEXT_EXT_framebuffer_object)
166175 {
@@ -171,7 +180,15 @@
172181 glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT");
173182 glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)wglGetProcAddress("glCheckFramebufferStatusEXT");
174183 glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)wglGetProcAddress("glDeleteFramebuffersEXT");
 184+ broken_fbo = false;
175185 }
 186+ if(broken_fbo)
 187+ {
 188+ MessageBox(NULL,_T("DXGL requires support for OpenGL Framebuffer Objects to function. \
 189+Please contact your graphics card manufacturer for an updated driver. This program will now exit."),_T("Fatal error"),
 190+ MB_OK|MB_ICONERROR);
 191+ ExitProcess(-1);
 192+ }
176193 wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT");
177194 wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC)wglGetProcAddress("wglGetSwapIntervalEXT");
178195 }