gtkglarea r103 - trunk/examples



Author: samh
Date: Tue Apr  1 14:25:21 2008
New Revision: 103
URL: http://svn.gnome.org/viewvc/gtkglarea?rev=103&view=rev

Log:
  * Proper GL shader extensions checks for the shader example, courtesy of
    Ãric Beets.


Modified:
   trunk/examples/shaders.c

Modified: trunk/examples/shaders.c
==============================================================================
--- trunk/examples/shaders.c	(original)
+++ trunk/examples/shaders.c	Tue Apr  1 14:25:21 2008
@@ -35,6 +35,7 @@
 #include <gtkgl/gtkglarea.h>
 
 #include <stdlib.h>
+#include <string.h>
 
 
 void       create_shader         (void);
@@ -74,6 +75,20 @@
   }
 }
 
+/********************************************************/
+/*                                                      */
+/* Function : check_extension(void)                     */
+/*                                                      */
+/* This function checks for a given GL extension        */
+/*                                                      */
+/********************************************************/
+
+int check_extension(char const *name)
+{
+  const char *glExtensions = (const char *)glGetString(GL_EXTENSIONS);
+  return (strstr(glExtensions, name) != NULL);
+}
+
 /*******************************************************/
 /*                                                     */
 /* Function: shader_status(int)                        */
@@ -342,9 +357,14 @@
 
     create_texture_2D ();
 
-    /* Create and Activate shaders */
+    /* Check, Create and Activate shaders */
 
-    create_shader();
+    if(!check_extension("GL_ARB_fragment_shader"))
+      fprintf(stderr, "Warning: GL_ARB_fragment_shader extension not present\n");
+    else if(!check_extension("GL_ARB_vertex_shader"))
+      fprintf(stderr, "Warning: GL_ARB_vertex_shader extension not present\n");
+    else
+      create_shader();
   
     /* Activate and parameterization texture context */
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]