From: Brian Paul Date: Thu, 1 Oct 2009 19:05:13 +0000 (-0600) Subject: objview: check GL version/extension X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=336994e54cdc105f60ea37a541caed32da4615f1;p=mesa.git objview: check GL version/extension --- 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);