diff options
Diffstat (limited to 'progs/objviewer')
-rw-r--r-- | progs/objviewer/objview.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/progs/objviewer/objview.c b/progs/objviewer/objview.c index a2b172b936..ad25e751a7 100644 --- a/progs/objviewer/objview.c +++ b/progs/objviewer/objview.c @@ -148,7 +148,7 @@ init_model(void) glmFacetNormals(Model); if (Model->numnormals == 0) { GLfloat smoothing_angle = 90.0; - printf("Generating normals."); + printf("Generating normals.\n"); glmVertexNormals(Model, smoothing_angle); } @@ -432,6 +432,32 @@ Motion(int x, int y) } +static void +DoFeatureChecks(void) +{ + char *version = (char *) glGetString(GL_VERSION); + if (version[0] == '1') { + /* check for individual extensions */ + if (!glutExtensionSupported("GL_ARB_texture_cube_map")) { + printf("Sorry, GL_ARB_texture_cube_map is required.\n"); + exit(1); + } + if (!glutExtensionSupported("GL_ARB_vertex_shader")) { + printf("Sorry, GL_ARB_vertex_shader is required.\n"); + exit(1); + } + if (!glutExtensionSupported("GL_ARB_fragment_shader")) { + printf("Sorry, GL_ARB_fragment_shader is required.\n"); + exit(1); + } + if (!glutExtensionSupported("GL_ARB_vertex_buffer_object")) { + printf("Sorry, GL_ARB_vertex_buffer_object is required.\n"); + exit(1); + } + } +} + + int main(int argc, char** argv) { @@ -452,6 +478,8 @@ main(int argc, char** argv) glewInit(); + DoFeatureChecks(); + glutReshapeFunc(reshape); glutDisplayFunc(display); glutKeyboardFunc(keyboard); |