We use glXGetProcAddress to load glXCreateContextAttribsARB ourselves,
so GLX_GLXEXT_PROTOTYPES is not needed.
| ... | ... |
@@ -5,17 +5,16 @@ |
| 5 | 5 |
extern "C" {
|
| 6 | 6 |
#endif |
| 7 | 7 |
|
| 8 |
-#ifdef __APPLE__ |
|
| 8 |
+#if defined(__APPLE__) |
|
| 9 | 9 |
#define GL_SILENCE_DEPRECATION |
| 10 | 10 |
#include <OpenGL/gl3.h> |
| 11 |
+#elif defined(_WIN32) |
|
| 12 |
+ #include "glew.h" |
|
| 11 | 13 |
#else |
| 12 |
- #if defined(_WIN32) |
|
| 13 |
- #include "glew.h" |
|
| 14 |
- #include <GL/gl.h> |
|
| 15 |
- #else |
|
| 16 |
- #include <GL/gl.h> |
|
| 17 |
- #endif |
|
| 14 |
+ #define GL_GLEXT_PROTOTYPES |
|
| 15 |
+ #include <GL/gl.h> |
|
| 18 | 16 |
#endif |
| 17 |
+ |
|
| 19 | 18 |
#include <stdlib.h> |
| 20 | 19 |
|
| 21 | 20 |
void printError(const char *functionName); |
find . -type f -exec chmod -x {} +
| 1 | 1 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,53 @@ |
| 1 |
+#ifndef _GL_UTILITIES_ |
|
| 2 |
+#define _GL_UTILITIES_ |
|
| 3 |
+ |
|
| 4 |
+#ifdef __cplusplus |
|
| 5 |
+extern "C" {
|
|
| 6 |
+#endif |
|
| 7 |
+ |
|
| 8 |
+#ifdef __APPLE__ |
|
| 9 |
+ #define GL_SILENCE_DEPRECATION |
|
| 10 |
+ #include <OpenGL/gl3.h> |
|
| 11 |
+#else |
|
| 12 |
+ #if defined(_WIN32) |
|
| 13 |
+ #include "glew.h" |
|
| 14 |
+ #include <GL/gl.h> |
|
| 15 |
+ #else |
|
| 16 |
+ #include <GL/gl.h> |
|
| 17 |
+ #endif |
|
| 18 |
+#endif |
|
| 19 |
+#include <stdlib.h> |
|
| 20 |
+ |
|
| 21 |
+void printError(const char *functionName); |
|
| 22 |
+GLuint loadShaders(const char *vertFileName, const char *fragFileName); |
|
| 23 |
+GLuint loadShadersG(const char *vertFileName, const char *fragFileName, const char *geomFileName); |
|
| 24 |
+GLuint loadShadersGT(const char *vertFileName, const char *fragFileName, const char *geomFileName, |
|
| 25 |
+ const char *tcFileName, const char *teFileName); |
|
| 26 |
+void dumpInfo(void); |
|
| 27 |
+ |
|
| 28 |
+// This is obsolete! Use the functions in MicroGlut instead! |
|
| 29 |
+//void initKeymapManager(); |
|
| 30 |
+//char keyIsDown(unsigned char c); |
|
| 31 |
+ |
|
| 32 |
+// FBO support |
|
| 33 |
+ |
|
| 34 |
+//------------a structure for FBO information------------------------------------- |
|
| 35 |
+typedef struct |
|
| 36 |
+{
|
|
| 37 |
+ GLuint texid; |
|
| 38 |
+ GLuint fb; |
|
| 39 |
+ GLuint rb; |
|
| 40 |
+ GLuint depth; |
|
| 41 |
+ int width, height; |
|
| 42 |
+} FBOstruct; |
|
| 43 |
+ |
|
| 44 |
+FBOstruct *initFBO(int width, int height, int int_method); |
|
| 45 |
+FBOstruct *initFBO2(int width, int height, int int_method, int create_depthimage); |
|
| 46 |
+void useFBO(FBOstruct *out, FBOstruct *in1, FBOstruct *in2); |
|
| 47 |
+void updateScreenSizeForFBOHandler(int w, int h); // Temporary workaround to inform useFBO of screen size changes |
|
| 48 |
+ |
|
| 49 |
+#ifdef __cplusplus |
|
| 50 |
+} |
|
| 51 |
+#endif |
|
| 52 |
+ |
|
| 53 |
+#endif |