DXGL r161 - Code Review
For
DXGL
(
recent comments
|
status changes
|
tags
|
authors
|
states
|
release notes
|
statistics
)
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 @@
144
144
glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)wglGetProcAddress("glVertexAttribPointer");
145
145
glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)wglGetProcAddress("glEnableVertexAttribArray");
146
146
}
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
+ }
147
154
const GLubyte *glextensions = glGetString(GL_EXTENSIONS);
148
155
if(strstr((char*)glextensions,"GL_ARB_framebuffer_object")) GLEXT_ARB_framebuffer_object = 1;
149
156
if(strstr((char*)glextensions,"GL_EXT_framebuffer_object")) GLEXT_EXT_framebuffer_object = 1;
—
—
@@ -150,6 +157,7 @@
151
158
if(strstr((char*)glextensions,"GL_EXT_packed_depth_stencil")) GLEXT_EXT_packed_depth_stencil = 1;
152
159
if(strstr((char*)glextensions,"GL_ARB_depth_buffer_float")) GLEXT_ARB_depth_buffer_float = 1;
153
160
if(strstr((char*)glextensions,"GL_ARB_depth_texture")) GLEXT_ARB_depth_texture = 1;
161
+ bool broken_fbo = true;
154
162
if(GLEXT_ARB_framebuffer_object)
155
163
{
156
164
glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)wglGetProcAddress("glGenFramebuffers");
—
—
@@ -160,6 +168,7 @@
161
169
glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)wglGetProcAddress("glFramebufferTexture2D");
162
170
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)wglGetProcAddress("glCheckFramebufferStatus");
163
171
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)wglGetProcAddress("glDeleteFramebuffers");
172
+ broken_fbo = false;
164
173
}
165
174
if(GLEXT_EXT_framebuffer_object)
166
175
{
—
—
@@ -171,7 +180,15 @@
172
181
glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT");
173
182
glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)wglGetProcAddress("glCheckFramebufferStatusEXT");
174
183
glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)wglGetProcAddress("glDeleteFramebuffersEXT");
184
+ broken_fbo = false;
175
185
}
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
+ }
176
193
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT");
177
194
wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC)wglGetProcAddress("wglGetSwapIntervalEXT");
178
195
}
Navigation menu
Personal tools
Log in
Namespaces
Special page
English
expanded
collapsed
Views
More
expanded
collapsed
Search
Navigation
Home
Main page
Recent changes
Random page
MediaWiki help
Introduction
Progress
Downloads
Source code
Build from source
AppDB
Bug reports
Forums
Tools
Special pages
Printable version