summaryrefslogtreecommitdiff
path: root/auto/src/glewinfo_head.c
diff options
context:
space:
mode:
Diffstat (limited to 'auto/src/glewinfo_head.c')
-rw-r--r--auto/src/glewinfo_head.c94
1 files changed, 94 insertions, 0 deletions
diff --git a/auto/src/glewinfo_head.c b/auto/src/glewinfo_head.c
new file mode 100644
index 0000000..37ff44d
--- /dev/null
+++ b/auto/src/glewinfo_head.c
@@ -0,0 +1,94 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <GL/glew.h>
+#if defined(_WIN32)
+#include <GL/wglew.h>
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+#include <GL/glxew.h>
+#endif
+
+#if defined(__APPLE__)
+#include <AvailabilityMacros.h>
+#endif
+
+#ifdef GLEW_REGAL
+#include <GL/Regal.h>
+#endif
+
+static FILE* f;
+
+#ifdef GLEW_MX
+GLEWContext _glewctx;
+#define glewGetContext() (&_glewctx)
+#ifdef _WIN32
+WGLEWContext _wglewctx;
+#define wglewGetContext() (&_wglewctx)
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+GLXEWContext _glxewctx;
+#define glxewGetContext() (&_glxewctx)
+#endif
+#endif
+
+/* Command-line parameters for GL context creation */
+
+struct createParams
+{
+#if defined(_WIN32)
+ int pixelformat;
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+ const char* display;
+ int visual;
+#endif
+ int major, minor; /* GL context version number */
+
+ /* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
+ int profile; /* core = 1, compatibility = 2 */
+ int flags; /* debug = 1, forward compatible = 2 */
+};
+
+GLboolean glewCreateContext (struct createParams *params);
+
+GLboolean glewParseArgs (int argc, char** argv, struct createParams *);
+
+void glewDestroyContext ();
+
+/* ------------------------------------------------------------------------- */
+
+static void glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3)
+{
+ unsigned int i;
+ fprintf(f, "\n%s:", name);
+ for (i=0; i<62-strlen(name); i++) fprintf(f, " ");
+ fprintf(f, "%s ", def1 ? "OK" : "MISSING");
+ if (def1 != def2)
+ fprintf(f, "[%s] ", def2 ? "OK" : "MISSING");
+ if (def1 != def3)
+ fprintf(f, "[%s]\n", def3 ? "OK" : "MISSING");
+ else
+ fprintf(f, "\n");
+ for (i=0; i<strlen(name)+1; i++) fprintf(f, "-");
+ fprintf(f, "\n");
+ fflush(f);
+}
+
+static void glewInfoFunc (const char* name, GLint undefined)
+{
+ unsigned int i;
+ fprintf(f, " %s:", name);
+ for (i=0; i<60-strlen(name); i++) fprintf(f, " ");
+ fprintf(f, "%s\n", undefined ? "MISSING" : "OK");
+ fflush(f);
+}
+
+/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
+
+#ifdef GL_VERSION_1_1
+
+static void _glewInfo_GL_VERSION_1_1 (void)
+{
+ glewPrintExt("GL_VERSION_1_1", GLEW_VERSION_1_1, GLEW_VERSION_1_1, GLEW_VERSION_1_1);
+}
+
+#endif /* GL_VERSION_1_1 */
+