#ifndef __SG_EXTENSIONS_HXX
#define __SG_EXTENSIONS_HXX 1
+#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+# include <windows.h>
+#else
+# include <dlfcn.h>
+#endif
+
#include <GL/gl.h>
+
#if defined(__cplusplus)
extern "C" {
#endif
inline void (*SGLookupFunction(const char *func))() {
-#if defined( WIN32 )
+#if defined( WIN32 ) && !defined(__CYGWIN__) && !defined(__MINGW32__)
return (void (*)()) wglGetProcAddress(func);
#elif defined( __APPLE__ )
// If the target system s UNIX and the ARB_get_proc_address
// GLX extension is *not* guaranteed to be supported. An alternative
// dlsym-based approach will be used instead.
- #if defined( linux ) || defined ( sgi )
+ #if defined( linux ) || defined ( sgi ) || defined(__CYGWIN__) || defined(__MINGW32__)
void *libHandle;
void (*fptr)();
libHandle = dlopen("libGL.so", RTLD_LAZY);
/* OpenGL extension declarations */
+#ifndef GL_EXT_point_parameters
#define GL_POINT_SIZE_MIN_EXT 0x8126
#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+#endif
+
+#ifndef GL_ARB_point_parameters
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_DISTANCE_ATTENUATION_ARB 0x8129
+#endif
typedef void (APIENTRY * glPointParameterfProc)(GLenum pname, GLfloat param);
typedef void (APIENTRY * glPointParameterfvProc)(GLenum pname, const GLfloat *params);