Mesa (master): objview: check GL version/extension

Brian Paul brianp at kemper.freedesktop.org
Thu Oct 1 19:17:50 UTC 2009


Module: Mesa
Branch: master
Commit: 336994e54cdc105f60ea37a541caed32da4615f1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=336994e54cdc105f60ea37a541caed32da4615f1

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Oct  1 13:05:13 2009 -0600

objview: check GL version/extension

---

 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 a2b172b..ad25e75 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);




More information about the mesa-commit mailing list