X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=freeglut-1.3%2Ffreeglut_misc.c;h=496ca4550e36cfd95f3f8aba5039673ba5471ccd;hb=2c52e17121abf4888117ab6b1c94be48ebd569c5;hp=7aa85df7fd7feabe483a14f5705c31848f2a4f06;hpb=a86a957ae87e1b07260edec971ebdf5a98ff3d54;p=freeglut diff --git a/freeglut-1.3/freeglut_misc.c b/freeglut-1.3/freeglut_misc.c index 7aa85df..496ca45 100644 --- a/freeglut-1.3/freeglut_misc.c +++ b/freeglut-1.3/freeglut_misc.c @@ -32,7 +32,7 @@ #define G_LOG_DOMAIN "freeglut-misc" #include "../include/GL/freeglut.h" -#include "../include/GL/freeglut_internal.h" +#include "freeglut_internal.h" /* * TODO BEFORE THE STABLE RELEASE: @@ -50,58 +50,59 @@ */ int FGAPIENTRY glutExtensionSupported( const char* extension ) { - const char *extensions; - const char *ptr; - int i; - - /* - * Make sure there is a current window, and thus -- a current context available - */ - freeglut_assert_ready; - freeglut_return_val_if_fail( fgStructure.Window != NULL, 0 ); - + const char *extensions; + const char *ptr; + int len = strlen ( extension ) ; + + /* + * Make sure there is a current window, and thus -- a current context available + */ + freeglut_assert_ready; + freeglut_return_val_if_fail( fgStructure.Window != NULL, 0 ); + + /* + * Note it is safe to query the extensions + */ + extensions = glGetString(GL_EXTENSIONS); + + freeglut_return_val_if_fail( extensions != NULL, 0 ); + + /* + * Check if the extension itself looks valid + */ + if ( strchr ( extension, ' ' ) != NULL ) + return( 0 ); + + /* + * Look for our extension + */ + for (ptr = extensions; *ptr;) + { /* - * Not it is safe to query the extenstions + * Is it the current extension? */ - extensions = glGetString(GL_EXTENSIONS); - - freeglut_return_val_if_fail( extensions != NULL, 0 ); + if ( strncmp ( extension, extensions, len ) == 0 ) + return 1 ; /* - * Check if the extension itself looks valid + * No, go find the next extension. They are separated from each other by one or more blank spaces. */ - for( i=0; i