#include "extensions.hxx"
#include <simgear/debug/logstream.hxx>
-static bool SGSearchExtensionsString(char *extString, char *extName) {
+bool SGSearchExtensionsString(const char *extString, const char *extName) {
// Returns GL_TRUE if the *extName string appears in the *extString string,
// surrounded by white spaces, or GL_FALSE otherwise.
- char *p, *end;
+ const char *p, *end;
int n, extNameLen;
if ((extString == NULL) || (extName == NULL))
// The *extName string must follow the OpenGL extensions naming scheme
// (ie: "GL_type_extension", like GL_EXT_convolution)
- return SGSearchExtensionsString((char *)glGetString(GL_EXTENSIONS),extName);
+ return SGSearchExtensionsString((const char *)glGetString(GL_EXTENSIONS),extName);
}
#ifdef __APPLE__
*/
dlerror();
+ /*
+ * Since libGL must be linked to the binary we run on, this is the
+ * right handle. That 'current binary' handle also avoids conflicts which
+ * arise from linking with a different libGL at link time an than later
+ * use the standard libGL at runtime ...
+ */
if (libHandle == NULL)
- libHandle = dlopen("libGL.so", RTLD_LAZY);
+ libHandle = dlopen(NULL, RTLD_LAZY);
if (libHandle != NULL) {
fptr = dlsym(libHandle, func);
+#if defined (__FreeBSD__)
+ const char *error = dlerror();
+#else
char *error = dlerror();
+#endif
if (error)
SG_LOG(SG_GENERAL, SG_INFO, error);
}