From 336994e54cdc105f60ea37a541caed32da4615f1 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Oct 2009 13:05:13 -0600 Subject: [PATCH] objview: check GL version/extension --- progs/objviewer/objview.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/progs/objviewer/objview.c b/progs/objviewer/objview.c index a2b172b9362..ad25e751a77 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); -- 2.30.2