From 2d0899283f6dda790478ac6b5d6536d1f2061c96 Mon Sep 17 00:00:00 2001
From: Matthias Bentrup
Date: Mon, 16 Feb 2015 14:16:10 +0100
Subject: [PATCH 01/33] Extend glewinfo to request specific GL
versions/profiles/flags.
---
auto/src/glewinfo_head.c | 16 +++-
auto/src/glewinfo_tail.c | 192 ++++++++++++++++++++++++++++++---------
2 files changed, 162 insertions(+), 46 deletions(-)
diff --git a/auto/src/glewinfo_head.c b/auto/src/glewinfo_head.c
index b10f85a..9a7f529 100644
--- a/auto/src/glewinfo_head.c
+++ b/auto/src/glewinfo_head.c
@@ -26,16 +26,22 @@ GLXEWContext _glxewctx;
#endif
#endif
+struct createParams {
#if defined(_WIN32)
-GLboolean glewCreateContext (int* pixelformat);
+ int pixelformat;
#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
-GLboolean glewCreateContext (const char* display, int* visual);
-#else
-GLboolean glewCreateContext ();
+ const char* display;
+ int visual;
#endif
+ int major, minor;
+ int profile_mask;
+ int flags;
+};
+
+GLboolean glewCreateContext (struct createParams *params);
#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
-GLboolean glewParseArgs (int argc, char** argv, char** display, int* visual);
+GLboolean glewParseArgs (int argc, char** argv, struct createParams *);
#endif
void glewDestroyContext ();
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index b48a3f1..f5cc0e3 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -11,29 +11,38 @@ int main (void)
#endif
{
GLuint err;
+ struct createParams params = {
+#if defined(_WIN32)
+ -1, /* pixelformat */
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+ "", /* display */
+ -1, /* visual */
+#endif
+ 0, /* major */
+ 0, /* minor */
+ 0, /* profile mask */
+ 0 /* flags */
+ };
#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
- char* display = NULL;
- int visual = -1;
-
- if (glewParseArgs(argc-1, argv+1, &display, &visual))
+ if (glewParseArgs(argc-1, argv+1, ¶ms))
{
+ fprintf(stderr, "Usage: glewinfo "
#if defined(_WIN32)
- fprintf(stderr, "Usage: glewinfo [-pf ]\n");
+ "[-pf ] "
#else
- fprintf(stderr, "Usage: glewinfo [-display ] [-visual ]\n");
+ "[-display ] "
+ "[-visual ] "
#endif
+ "[-version ] "
+ "[-profiles ] "
+ "[-flags ]"
+ "\n");
return 1;
}
#endif
-#if defined(_WIN32)
- if (GL_TRUE == glewCreateContext(&visual))
-#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
- if (GL_TRUE == glewCreateContext())
-#else
- if (GL_TRUE == glewCreateContext(display, &visual))
-#endif
+ if (GL_TRUE == glewCreateContext(¶ms))
{
fprintf(stderr, "Error: glewCreateContext failed\n");
glewDestroyContext();
@@ -73,10 +82,10 @@ int main (void)
fprintf(f, "---------------------------\n\n");
fprintf(f, "GLEW version %s\n", glewGetString(GLEW_VERSION));
#if defined(_WIN32)
- fprintf(f, "Reporting capabilities of pixelformat %d\n", visual);
+ fprintf(f, "Reporting capabilities of pixelformat %d\n", params.pixelformat);
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
fprintf(f, "Reporting capabilities of display %s, visual 0x%x\n",
- display == NULL ? getenv("DISPLAY") : display, visual);
+ params.display == NULL ? getenv("DISPLAY") : params.display, params.visual);
#endif
fprintf(f, "Running on a %s from %s\n",
glGetString(GL_RENDERER), glGetString(GL_VENDOR));
@@ -95,34 +104,46 @@ int main (void)
/* ------------------------------------------------------------------------ */
#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
-GLboolean glewParseArgs (int argc, char** argv, char** display, int* visual)
+GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
{
int p = 0;
while (p < argc)
{
-#if defined(_WIN32)
- if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat"))
+ if (!strcmp(argv[p], "-version"))
{
if (++p >= argc) return GL_TRUE;
- *display = 0;
- *visual = strtol(argv[p++], NULL, 0);
+ if (sscanf(argv[p++], "%d.%d", ¶ms->major, ¶ms->minor) != 2) return GL_TRUE;
}
- else
- return GL_TRUE;
-#else
- if (!strcmp(argv[p], "-display"))
+ else if (!strcmp(argv[p], "-profiles"))
{
if (++p >= argc) return GL_TRUE;
- *display = argv[p++];
+ params->profile_mask = (int)strtol(argv[p++], NULL, 0);
+ }
+ else if (!strcmp(argv[p], "-flags"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->flags = (int)strtol(argv[p++], NULL, 0);
+ }
+#if defined(_WIN32)
+ else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->pixelformat = strtol(argv[p++], NULL, 0);
+ }
+#else
+ else if (!strcmp(argv[p], "-display"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->display = argv[p++];
}
else if (!strcmp(argv[p], "-visual"))
{
if (++p >= argc) return GL_TRUE;
- *visual = (int)strtol(argv[p++], NULL, 0);
+ params->visual = (int)strtol(argv[p++], NULL, 0);
}
+#endif
else
return GL_TRUE;
-#endif
}
return GL_FALSE;
}
@@ -136,7 +157,7 @@ HWND wnd = NULL;
HDC dc = NULL;
HGLRC rc = NULL;
-GLboolean glewCreateContext (int* pixelformat)
+GLboolean glewCreateContext (struct createParams* params)
{
WNDCLASS wc;
PIXELFORMATDESCRIPTOR pfd;
@@ -155,20 +176,58 @@ GLboolean glewCreateContext (int* pixelformat)
if (NULL == dc) return GL_TRUE;
/* find pixel format */
ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR));
- if (*pixelformat == -1) /* find default */
+ if (params->pixelformat == -1) /* find default */
{
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
- *pixelformat = ChoosePixelFormat(dc, &pfd);
- if (*pixelformat == 0) return GL_TRUE;
+ params->pixelformat = ChoosePixelFormat(dc, &pfd);
+ if (params->pixelformat == 0) return GL_TRUE;
}
/* set the pixel format for the dc */
- if (FALSE == SetPixelFormat(dc, *pixelformat, &pfd)) return GL_TRUE;
+ if (FALSE == SetPixelFormat(dc, params->pixelformat, &pfd)) return GL_TRUE;
/* create rendering context */
rc = wglCreateContext(dc);
if (NULL == rc) return GL_TRUE;
if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE;
+ if (params->major || params->profile_mask || params->flags)
+ {
+ HGLRC oldRC = rc;
+ int contextAttrs[20];
+ int i;
+
+ extern GLenum GLEWAPIENTRY wglewContextInit();
+ wglewContextInit();
+
+ if (!wglewGetExtension("WGL_ARB_create_context_profile"))
+ return GL_TRUE;
+
+ i = 0;
+ if( params->major )
+ {
+ contextAttrs[i++] = WGL_CONTEXT_MAJOR_VERSION_ARB;
+ contextAttrs[i++] = params->major;
+ contextAttrs[i++] = WGL_CONTEXT_MINOR_VERSION_ARB;
+ contextAttrs[i++] = params->minor;
+ }
+ if( params->profile_mask )
+ {
+ contextAttrs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB;
+ contextAttrs[i++] = params->profile_mask;
+ }
+ if( params->flags )
+ {
+ contextAttrs[i++] = WGL_CONTEXT_FLAGS_ARB;
+ contextAttrs[i++] = params->flags;
+ }
+ contextAttrs[i++] = 0;
+ rc = wglCreateContextAttribsARB(dc, 0, contextAttrs);
+
+ if (NULL == rc) return GL_TRUE;
+ if (!wglMakeCurrent(dc, rc)) return GL_TRUE;
+
+ wglDeleteContext(oldRC);
+ }
return GL_FALSE;
}
@@ -190,21 +249,24 @@ void glewDestroyContext ()
CGLContextObj ctx, octx;
-GLboolean glewCreateContext ()
+GLboolean glewCreateContext (struct createParams *params)
{
const CGLPixelFormatAttribute attrib[4] =
{
kCGLPFAAccelerated, /* No software rendering */
-#if 0
kCGLPFAOpenGLProfile, /* OSX 10.7 Lion onwards */
(CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core, /* 3.2 Core Context */
-#endif
0
};
CGLPixelFormatObj pf;
GLint npix;
CGLError error;
+ if( params->major < 3 &&
+ !(params->profile_mask & GL_CONTEXT_CORE_PROFILE_BIT) ) {
+ attrib[1] = 0; // terminate attrib array before the core profile attribute
+ }
+
error = CGLChoosePixelFormat(attrib, &pf, &npix);
if (error) return GL_TRUE;
error = CGLCreateContext(pf, NULL, &ctx);
@@ -230,7 +292,7 @@ void glewDestroyContext ()
#elif defined(__HAIKU__)
-GLboolean glewCreateContext ()
+GLboolean glewCreateContext (struct createParams *params)
{
/* TODO: Haiku: We need to call C++ code here */
return GL_FALSE;
@@ -252,22 +314,22 @@ GLXContext ctx = NULL;
Window wnd = 0;
Colormap cmap = 0;
-GLboolean glewCreateContext (const char* display, int* visual)
+GLboolean glewCreateContext (struct createParams *params)
{
int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None };
int erb, evb;
XSetWindowAttributes swa;
/* open display */
- dpy = XOpenDisplay(display);
+ dpy = XOpenDisplay(params->display);
if (NULL == dpy) return GL_TRUE;
/* query for glx */
if (!glXQueryExtension(dpy, &erb, &evb)) return GL_TRUE;
/* choose visual */
- if (*visual == -1)
+ if (params->visual == -1)
{
vi = glXChooseVisual(dpy, DefaultScreen(dpy), attrib);
if (NULL == vi) return GL_TRUE;
- *visual = (int)XVisualIDFromVisual(vi->visual);
+ params->visual = (int)XVisualIDFromVisual(vi->visual);
}
else
{
@@ -275,7 +337,7 @@ GLboolean glewCreateContext (const char* display, int* visual)
vis = XGetVisualInfo(dpy, 0, NULL, &n_vis);
for (i=0; ivisual)
vi = &vis[i];
}
if (vi == NULL) return GL_TRUE;
@@ -293,6 +355,54 @@ GLboolean glewCreateContext (const char* display, int* visual)
CWBorderPixel | CWColormap, &swa);
/* make context current */
if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE;
+ if (params->major || params->profile_mask || params->flags)
+ {
+ GLXContext oldCtx = ctx;
+ GLXFBConfig *FBConfigs;
+ int FBConfigAttrs[] = { GLX_FBCONFIG_ID, 0, None };
+ int contextAttrs[20];
+ int nelems, i;
+
+ glxewContextInit();
+
+ if (!glxewGetExtension("GLX_ARB_create_context_profile"))
+ return GL_TRUE;
+
+ if (glXQueryContext(dpy, oldCtx, GLX_FBCONFIG_ID, &FBConfigAttrs[1]))
+ return GL_TRUE;
+ FBConfigs = glXChooseFBConfig(dpy, vi->screen, FBConfigAttrs, &nelems);
+
+ if (nelems < 1)
+ return GL_TRUE;
+
+ i = 0;
+ if( params->major )
+ {
+ contextAttrs[i++] = GLX_CONTEXT_MAJOR_VERSION_ARB;
+ contextAttrs[i++] = params->major;
+ contextAttrs[i++] = GLX_CONTEXT_MINOR_VERSION_ARB;
+ contextAttrs[i++] = params->minor;
+ }
+ if( params->profile_mask )
+ {
+ contextAttrs[i++] = GLX_CONTEXT_PROFILE_MASK_ARB;
+ contextAttrs[i++] = params->profile_mask;
+ }
+ if( params->flags )
+ {
+ contextAttrs[i++] = GLX_CONTEXT_FLAGS_ARB;
+ contextAttrs[i++] = params->flags;
+ }
+ contextAttrs[i++] = None;
+ ctx = glXCreateContextAttribsARB(dpy, *FBConfigs, NULL, True, contextAttrs);
+
+ if (NULL == ctx) return GL_TRUE;
+ if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE;
+
+ glXDestroyContext(dpy, oldCtx);
+
+ XFree(FBConfigs);
+ }
return GL_FALSE;
}
From 60b0fc5c0521f34274a35261a82e118364a9ab32 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 29 May 2015 20:08:13 +1000
Subject: [PATCH 02/33] [CoreSupport] Mac OS X support for glewinfo GL
version/profiles/flags.
---
auto/src/glewinfo_head.c | 6 ++++--
auto/src/glewinfo_tail.c | 46 +++++++++++++++++++---------------------
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/auto/src/glewinfo_head.c b/auto/src/glewinfo_head.c
index 9a7f529..0174fdd 100644
--- a/auto/src/glewinfo_head.c
+++ b/auto/src/glewinfo_head.c
@@ -8,6 +8,10 @@
#include
#endif
+#if defined(__APPLE__)
+#include
+#endif
+
#ifdef GLEW_REGAL
#include
#endif
@@ -40,9 +44,7 @@ struct createParams {
GLboolean glewCreateContext (struct createParams *params);
-#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
GLboolean glewParseArgs (int argc, char** argv, struct createParams *);
-#endif
void glewDestroyContext ();
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index f5cc0e3..6f748a7 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -4,17 +4,13 @@
/* ------------------------------------------------------------------------ */
-#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
int main (int argc, char** argv)
-#else
-int main (void)
-#endif
{
GLuint err;
struct createParams params = {
#if defined(_WIN32)
-1, /* pixelformat */
-#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
"", /* display */
-1, /* visual */
#endif
@@ -24,13 +20,12 @@ int main (void)
0 /* flags */
};
-#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
if (glewParseArgs(argc-1, argv+1, ¶ms))
{
fprintf(stderr, "Usage: glewinfo "
#if defined(_WIN32)
"[-pf ] "
-#else
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
"[-display ] "
"[-visual ] "
#endif
@@ -40,7 +35,6 @@ int main (void)
"\n");
return 1;
}
-#endif
if (GL_TRUE == glewCreateContext(¶ms))
{
@@ -53,7 +47,7 @@ int main (void)
err = glewContextInit(glewGetContext());
#ifdef _WIN32
err = err || wglewContextInit(wglewGetContext());
-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
err = err || glxewContextInit(glxewGetContext());
#endif
@@ -103,7 +97,6 @@ int main (void)
/* ------------------------------------------------------------------------ */
-#if defined(_WIN32) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
{
int p = 0;
@@ -130,7 +123,7 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
if (++p >= argc) return GL_TRUE;
params->pixelformat = strtol(argv[p++], NULL, 0);
}
-#else
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
else if (!strcmp(argv[p], "-display"))
{
if (++p >= argc) return GL_TRUE;
@@ -147,7 +140,6 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
}
return GL_FALSE;
}
-#endif
/* ------------------------------------------------------------------------ */
@@ -251,23 +243,29 @@ CGLContextObj ctx, octx;
GLboolean glewCreateContext (struct createParams *params)
{
- const CGLPixelFormatAttribute attrib[4] =
- {
- kCGLPFAAccelerated, /* No software rendering */
- kCGLPFAOpenGLProfile, /* OSX 10.7 Lion onwards */
- (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core, /* 3.2 Core Context */
- 0
- };
+ CGLPixelFormatAttribute contextAttrs[20];
+ int i;
CGLPixelFormatObj pf;
GLint npix;
CGLError error;
- if( params->major < 3 &&
- !(params->profile_mask & GL_CONTEXT_CORE_PROFILE_BIT) ) {
- attrib[1] = 0; // terminate attrib array before the core profile attribute
- }
+ i = 0;
+ contextAttrs[i++] = kCGLPFAAccelerated; /* No software rendering */
- error = CGLChoosePixelFormat(attrib, &pf, &npix);
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+ if (params->profile_mask & GL_CONTEXT_CORE_PROFILE_BIT)
+ {
+ if (params->major==3 && params->minor>=2)
+ {
+ contextAttrs[i++] = kCGLPFAOpenGLProfile; /* OSX 10.7 Lion onwards */
+ contextAttrs[i++] = (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core; /* 3.2 Core Context */
+ }
+ }
+ #endif
+
+ contextAttrs[i++] = 0;
+
+ error = CGLChoosePixelFormat(contextAttrs, &pf, &npix);
if (error) return GL_TRUE;
error = CGLCreateContext(pf, NULL, &ctx);
if (error) return GL_TRUE;
From 0720521034ccbb18cdbf9dac625e2c0f7e2006eb Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 29 May 2015 20:29:08 +1000
Subject: [PATCH 03/33] [CoreSupport] glewinfo profiles/flags documentation
breadcrumbs.
---
auto/src/glewinfo_head.c | 13 +++++++++----
auto/src/glewinfo_tail.c | 3 ++-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/auto/src/glewinfo_head.c b/auto/src/glewinfo_head.c
index 0174fdd..9529b44 100644
--- a/auto/src/glewinfo_head.c
+++ b/auto/src/glewinfo_head.c
@@ -30,16 +30,21 @@ GLXEWContext _glxewctx;
#endif
#endif
-struct createParams {
+/* 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;
- int profile_mask;
- int flags;
+ int major, minor; /* GL context version number */
+
+ /* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
+ int profile_mask; /* core = 1, compatibility = 2 */
+ int flags; /* debug = 1, forward compatible = 2 */
};
GLboolean glewCreateContext (struct createParams *params);
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index 6f748a7..a1e7434 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -7,7 +7,8 @@
int main (int argc, char** argv)
{
GLuint err;
- struct createParams params = {
+ struct createParams params =
+ {
#if defined(_WIN32)
-1, /* pixelformat */
#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
From 211bf29181fab758e370005b0818a364804011b6 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 29 May 2015 20:45:19 +1000
Subject: [PATCH 04/33] [CoreSupport] glewinfo profiles/flags refinement -
commandline profile and flags as strings.
---
auto/src/glewinfo_head.c | 2 +-
auto/src/glewinfo_tail.c | 40 +++++++++++++++++++++++-----------------
2 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/auto/src/glewinfo_head.c b/auto/src/glewinfo_head.c
index 9529b44..37ff44d 100644
--- a/auto/src/glewinfo_head.c
+++ b/auto/src/glewinfo_head.c
@@ -43,7 +43,7 @@ struct createParams
int major, minor; /* GL context version number */
/* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
- int profile_mask; /* core = 1, compatibility = 2 */
+ int profile; /* core = 1, compatibility = 2 */
int flags; /* debug = 1, forward compatible = 2 */
};
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index a1e7434..95c7ed1 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -31,8 +31,8 @@ int main (int argc, char** argv)
"[-visual ] "
#endif
"[-version ] "
- "[-profiles ] "
- "[-flags ]"
+ "[-profile core|compatibility] "
+ "[-flag debug|forward]"
"\n");
return 1;
}
@@ -108,15 +108,21 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
if (++p >= argc) return GL_TRUE;
if (sscanf(argv[p++], "%d.%d", ¶ms->major, ¶ms->minor) != 2) return GL_TRUE;
}
- else if (!strcmp(argv[p], "-profiles"))
+ else if (!strcmp(argv[p], "-profile"))
{
if (++p >= argc) return GL_TRUE;
- params->profile_mask = (int)strtol(argv[p++], NULL, 0);
+ if (strcmp("core", argv[p]) == 0) params->profile |= 1;
+ else if (strcmp("compatibility",argv[p]) == 0) params->profile |= 2;
+ else return GL_TRUE;
+ ++p;
}
- else if (!strcmp(argv[p], "-flags"))
+ else if (!strcmp(argv[p], "-flag"))
{
if (++p >= argc) return GL_TRUE;
- params->flags = (int)strtol(argv[p++], NULL, 0);
+ if (strcmp("debug", argv[p]) == 0) params->flags |= 1;
+ else if (strcmp("forward",argv[p]) == 0) params->flags |= 2;
+ else return GL_TRUE;
+ ++p;
}
#if defined(_WIN32)
else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat"))
@@ -183,7 +189,7 @@ GLboolean glewCreateContext (struct createParams* params)
rc = wglCreateContext(dc);
if (NULL == rc) return GL_TRUE;
if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE;
- if (params->major || params->profile_mask || params->flags)
+ if (params->major || params->profile || params->flags)
{
HGLRC oldRC = rc;
int contextAttrs[20];
@@ -196,19 +202,19 @@ GLboolean glewCreateContext (struct createParams* params)
return GL_TRUE;
i = 0;
- if( params->major )
+ if (params->major)
{
contextAttrs[i++] = WGL_CONTEXT_MAJOR_VERSION_ARB;
contextAttrs[i++] = params->major;
contextAttrs[i++] = WGL_CONTEXT_MINOR_VERSION_ARB;
contextAttrs[i++] = params->minor;
}
- if( params->profile_mask )
+ if (params->profile)
{
contextAttrs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB;
- contextAttrs[i++] = params->profile_mask;
+ contextAttrs[i++] = params->profile;
}
- if( params->flags )
+ if (params->flags)
{
contextAttrs[i++] = WGL_CONTEXT_FLAGS_ARB;
contextAttrs[i++] = params->flags;
@@ -254,7 +260,7 @@ GLboolean glewCreateContext (struct createParams *params)
contextAttrs[i++] = kCGLPFAAccelerated; /* No software rendering */
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
- if (params->profile_mask & GL_CONTEXT_CORE_PROFILE_BIT)
+ if (params->profile & GL_CONTEXT_CORE_PROFILE_BIT)
{
if (params->major==3 && params->minor>=2)
{
@@ -354,7 +360,7 @@ GLboolean glewCreateContext (struct createParams *params)
CWBorderPixel | CWColormap, &swa);
/* make context current */
if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE;
- if (params->major || params->profile_mask || params->flags)
+ if (params->major || params->profile || params->flags)
{
GLXContext oldCtx = ctx;
GLXFBConfig *FBConfigs;
@@ -375,19 +381,19 @@ GLboolean glewCreateContext (struct createParams *params)
return GL_TRUE;
i = 0;
- if( params->major )
+ if (params->major)
{
contextAttrs[i++] = GLX_CONTEXT_MAJOR_VERSION_ARB;
contextAttrs[i++] = params->major;
contextAttrs[i++] = GLX_CONTEXT_MINOR_VERSION_ARB;
contextAttrs[i++] = params->minor;
}
- if( params->profile_mask )
+ if (params->profile)
{
contextAttrs[i++] = GLX_CONTEXT_PROFILE_MASK_ARB;
- contextAttrs[i++] = params->profile_mask;
+ contextAttrs[i++] = params->profile;
}
- if( params->flags )
+ if (params->flags)
{
contextAttrs[i++] = GLX_CONTEXT_FLAGS_ARB;
contextAttrs[i++] = params->flags;
From e618ce2efb4cd70a738fab4338e1c8739d6a8e77 Mon Sep 17 00:00:00 2001
From: Tamas Kenez
Date: Tue, 9 Jun 2015 14:59:57 +0200
Subject: [PATCH 05/33] cmake: install header files
---
build/cmake/CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
index e08fe62..b955743 100644
--- a/build/cmake/CMakeLists.txt
+++ b/build/cmake/CMakeLists.txt
@@ -89,3 +89,5 @@ configure_file (${GLEW_DIR}/glew.pc.in ${GLEW_DIR}/glewmx.pc @ONLY)
install(FILES ${GLEW_DIR}/glew.pc ${GLEW_DIR}/glewmx.pc
DESTINATION lib/pkgconfig
)
+
+install (DIRECTORY ${GLEW_DIR}/include/ DESTINATION include)
From 29a0ac0f470ed064f65c174dd2c9b0a5c4fabd5e Mon Sep 17 00:00:00 2001
From: Tamas Kenez
Date: Wed, 10 Jun 2015 10:27:28 +0200
Subject: [PATCH 06/33] cmake: install named headers instead of directory
---
build/cmake/CMakeLists.txt | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
index b955743..f0d10e4 100644
--- a/build/cmake/CMakeLists.txt
+++ b/build/cmake/CMakeLists.txt
@@ -90,4 +90,8 @@ install(FILES ${GLEW_DIR}/glew.pc ${GLEW_DIR}/glewmx.pc
DESTINATION lib/pkgconfig
)
-install (DIRECTORY ${GLEW_DIR}/include/ DESTINATION include)
+install (FILES
+ ${GLEW_DIR}/include/wglew.h
+ ${GLEW_DIR}/include/glew.h
+ ${GLEW_DIR}/include/glxew.h
+ DESTINATION include/GL)
From 9b5d29be72632e0a47c8d3418fd8e3bdb3cfe953 Mon Sep 17 00:00:00 2001
From: Tamas Kenez
Date: Wed, 10 Jun 2015 10:30:26 +0200
Subject: [PATCH 07/33] fix previous commit
---
build/cmake/CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
index f0d10e4..fdeab0e 100644
--- a/build/cmake/CMakeLists.txt
+++ b/build/cmake/CMakeLists.txt
@@ -91,7 +91,7 @@ install(FILES ${GLEW_DIR}/glew.pc ${GLEW_DIR}/glewmx.pc
)
install (FILES
- ${GLEW_DIR}/include/wglew.h
- ${GLEW_DIR}/include/glew.h
- ${GLEW_DIR}/include/glxew.h
+ ${GLEW_DIR}/include/GL/wglew.h
+ ${GLEW_DIR}/include/GL/glew.h
+ ${GLEW_DIR}/include/GL/glxew.h
DESTINATION include/GL)
From 9580ab4226680fc6f1b09030f13c9107d975da9c Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 21 Feb 2015 09:02:04 +1000
Subject: [PATCH 08/33] [CoreSupport] Whitespace fixup for make_def_var.pl
---
auto/bin/make_def_var.pl | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/auto/bin/make_def_var.pl b/auto/bin/make_def_var.pl
index e484194..ae007a6 100755
--- a/auto/bin/make_def_var.pl
+++ b/auto/bin/make_def_var.pl
@@ -21,11 +21,11 @@ if (@ARGV)
{
@extlist = @ARGV;
- foreach my $ext (sort @extlist)
- {
- my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
- my $extvar = $extname;
- $extvar =~ s/GL(X*)_/GL$1EW_/;
- print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
- }
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
+ }
}
From 044b9ff14cbf38a236fe6b12fc2e64b32e10120c Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 21 Feb 2015 21:04:57 +1000
Subject: [PATCH 09/33] Add -ansi -pedantic compilation flags for Mac build, as
extra diagnostic information.
---
config/Makefile.darwin | 1 +
1 file changed, 1 insertion(+)
diff --git a/config/Makefile.darwin b/config/Makefile.darwin
index bf34a0e..56fd584 100644
--- a/config/Makefile.darwin
+++ b/config/Makefile.darwin
@@ -2,6 +2,7 @@ NAME = $(GLEW_NAME)
CC = cc
LD = cc
CFLAGS.EXTRA = -dynamic -fno-common
+CFLAGS.EXTRA += -ansi -pedantic
#CFLAGS.EXTRA += -no-cpp-precomp
LDFLAGS.EXTRA =
ifneq (undefined, $(origin GLEW_APPLE_GLX))
From 49eafff1051f1ef5b5a23b9bedae79a4e08fea46 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 21 Feb 2015 23:44:40 +1000
Subject: [PATCH 10/33] Use -ansi -pedantic compilation flags for Linux build.
---
config/Makefile.linux | 1 +
1 file changed, 1 insertion(+)
diff --git a/config/Makefile.linux b/config/Makefile.linux
index 55e4a23..6b9da03 100644
--- a/config/Makefile.linux
+++ b/config/Makefile.linux
@@ -24,6 +24,7 @@ WARN = -Wall -W
POPT = -O2
CFLAGS.EXTRA += -fPIC
CFLAGS.EXTRA += -Wcast-qual
+CFLAGS.EXTRA += -ansi -pedantic
BIN.SUFFIX =
LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so
From 0e88d39f4aa409c5d0aab4a10b1ac5cda257f75d Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 13 Jun 2015 10:18:41 +1000
Subject: [PATCH 11/33] Leave extraneous #ifdef blocks
---
auto/bin/make_init.pl | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/auto/bin/make_init.pl b/auto/bin/make_init.pl
index 70abc98..5e6200a 100755
--- a/auto/bin/make_init.pl
+++ b/auto/bin/make_init.pl
@@ -38,18 +38,17 @@ if (@ARGV)
parse_ext($ext);
#make_separator($extname);
- print "#ifdef $extname\n\n";
my $extvar = $extname;
my $extvardef = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
if (keys %$functions)
{
+ print "#ifdef $extname\n\n";
print "static GLboolean _glewInit_$extname (" . $type .
"EW_CONTEXT_ARG_DEF_INIT)\n{\n GLboolean r = GL_FALSE;\n";
output_decls($functions, \&make_pfn_def_init);
print "\n return r;\n}\n\n";
+ print "#endif /* $extname */\n\n";
}
- #print "\nGLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n\n";
- print "#endif /* $extname */\n\n";
}
}
From 0c19148d6a575b7abca9bceb8e9b34bef3f2c729 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 13 Jun 2015 10:35:23 +1000
Subject: [PATCH 12/33] glew_utils is no longer used, removing.
---
auto/Makefile | 69 ------------------
auto/src/glew_utils.c | 162 ------------------------------------------
auto/src/glew_utils.h | 101 --------------------------
3 files changed, 332 deletions(-)
delete mode 100644 auto/src/glew_utils.c
delete mode 100644 auto/src/glew_utils.h
diff --git a/auto/Makefile b/auto/Makefile
index a10d44a..91b68ed 100644
--- a/auto/Makefile
+++ b/auto/Makefile
@@ -245,75 +245,6 @@ $(S.DEST)/glew.c: $(EXT)/.dummy
perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@
rm -f $@.bak
-$(S.DEST)/glew_def.c: $(EXT)/.dummy
- cp -f $(SRC)/glew_license.h $@
- echo -e "#include \"glew_utils.h\"\n\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
- $(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
- $(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
- echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
- echo -e "\n#if !defined(GLEW_MX)\n\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
- $(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
- $(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
- echo -e "\n#if defined(_WIN32)" >> $@
- $(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
- $(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
- echo -e "\n#endif /* _WIN32 */" >> $@
- echo -e "\n#endif /* !GLEW_MX */" >> $@;
- echo -e "\n#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
- $(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
- $(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
- echo -e "\n#if !defined(GLEW_MX)" >> $@;
- echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
- echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
- $(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
- $(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
- echo -e "\n#endif /* !GLEW_MX */" >> $@;
- echo -e "\n#endif /* !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */" >> $@;
- rm -f $@.bak
-
-$(S.DEST)/glew_init.c: $(EXT)/.dummy
- cp -f $(SRC)/glew_license.h $@
- echo -e "#include \"glew_utils.h\"\n" >> $@
- $(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
- $(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
- cat $(SRC)/glew_init_gl.c >> $@
- $(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
- $(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
- echo -e "\n return GLEW_OK;\n}\n\n#if defined(_WIN32)\n" >> $@;
- $(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
- cat $(SRC)/glew_init_wgl.c >> $@
- $(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
- echo -e "\n return GLEW_OK;\n}\n\n" >> $@;
- echo -e "\n#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)\n" >> $@
- $(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
- $(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
- cat $(SRC)/glew_init_glx.c >> $@
- $(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
- $(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
- echo -e "\n return GLEW_OK;\n}\n\n#endif /* !__APPLE__ || GLEW_APPLE_GLX */\n" >> $@;
- cat $(SRC)/glew_init_tail.c >> $@
- perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
- perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
- perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
- perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
- perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
- perl -e "s/\(\(glBlendColor = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glBlendColor = /g" -pi $@
- rm -f $@.bak
-
-$(S.DEST)/glew_str.c: $(EXT)/.dummy
- cp -f $(SRC)/glew_license.h $@
- echo -e "\n#include \"glew_utils.h\"\n" >> $@
- cat $(SRC)/glew_str_head.c >> $@
- $(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
- cat $(SRC)/glew_str_wgl.c >> $@
- $(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
- cat $(SRC)/glew_str_glx.c >> $@
- $(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
- cat $(SRC)/glew_str_tail.c >> $@
-# perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
-# perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
- rm -f $@.bak
-
$(S.DEST)/glewinfo.c: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glewinfo.c"
diff --git a/auto/src/glew_utils.c b/auto/src/glew_utils.c
deleted file mode 100644
index 9e791f4..0000000
--- a/auto/src/glew_utils.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include
-#if defined(_WIN32)
-# include
-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
-# include
-#endif
-
-#include "glew_utils.h"
-
-#if defined(__APPLE__)
-#include
-#include
-#include
-
-void* NSGLGetProcAddress (const GLubyte *name)
-{
- NSSymbol symbol;
- char* symbolName;
- /* prepend a '_' for the Unix C symbol mangling convention */
- symbolName = malloc(strlen((const char*)name) + 2);
- strcpy(symbolName+1, (const char*)name);
- symbolName[0] = '_';
- symbol = NULL;
- if (NSIsSymbolNameDefined(symbolName))
- symbol = NSLookupAndBindSymbol(symbolName);
- free(symbolName);
- return symbol ? NSAddressOfSymbol(symbol) : NULL;
-}
-#endif /* __APPLE__ */
-
-#if defined(__sgi) || defined (__sun)
-#include
-#include
-#include
-
-void* dlGetProcAddress (const GLubyte* name)
-{
- static void* h = NULL;
- static void* gpa;
-
- if (h == NULL)
- {
- if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
- gpa = dlsym(h, "glXGetProcAddress");
- }
-
- if (gpa != NULL)
- return ((void*(*)(const GLubyte*))gpa)(name);
- else
- return dlsym(h, (const char*)name);
-}
-#endif /* __sgi || __sun */
-
-/*
- * GLEW, just like OpenGL or GLU, does not rely on the standard C library.
- * These functions implement the functionality required in this file.
- */
-
-GLuint _glewStrLen (const GLubyte* s)
-{
- GLuint i=0;
- while (s+i != NULL && s[i] != '\0') i++;
- return i;
-}
-
-GLuint _glewStrCLen (const GLubyte* s, GLubyte c)
-{
- GLuint i=0;
- while (s+i != NULL && s[i] != '\0' && s[i] != c) i++;
- return i;
-}
-
-GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n)
-{
- GLuint i=0;
- while (i < n && a+i != NULL && b+i != NULL && a[i] == b[i]) i++;
- return i == n ? GL_TRUE : GL_FALSE;
-}
-
-GLboolean _glewStrSame1 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- while (*na > 0 && (**a == ' ' || **a == '\n' || **a == '\r' || **a == '\t'))
- {
- *a++;
- *na--;
- }
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && *a+i != NULL && b+i != NULL && *a[i] == b[i]) i++;
- if(i == nb)
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
-
-GLboolean _glewStrSame2 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && *a+i != NULL && b+i != NULL && *a[i] == b[i]) i++;
- if(i == nb)
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
-
-GLboolean _glewStrSame3 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && *a+i != NULL && b+i != NULL && *a[i] == b[i]) i++;
- if (i == nb && (*na == nb || *a[i] == ' ' || *a[i] == '\n' || *a[i] == '\r' || *a[i] == '\t'))
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
diff --git a/auto/src/glew_utils.h b/auto/src/glew_utils.h
deleted file mode 100644
index 4291972..0000000
--- a/auto/src/glew_utils.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef __glew_utils_h__
-#define __glew_utils_h__
-
-#include
-#if defined(_WIN32)
-# include
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
-# include
-#endif
-
-/*
- * Define glewGetContext and related helper macros.
- */
-#ifdef GLEW_MX
-# define glewGetContext() ctx
-# ifdef _WIN32
-# define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx
-# define GLEW_CONTEXT_ARG_VAR_INIT ctx
-# define wglewGetContext() ctx
-# define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx
-# define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx
-# else /* _WIN32 */
-# define GLEW_CONTEXT_ARG_DEF_INIT void
-# define GLEW_CONTEXT_ARG_VAR_INIT
-# define glxewGetContext() ctx
-# define GLXEW_CONTEXT_ARG_DEF_INIT void
-# define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx
-# endif /* _WIN32 */
-# define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx
-#else /* GLEW_MX */
-# define GLEW_CONTEXT_ARG_DEF_INIT void
-# define GLEW_CONTEXT_ARG_VAR_INIT
-# define GLEW_CONTEXT_ARG_DEF_LIST void
-# define WGLEW_CONTEXT_ARG_DEF_INIT void
-# define WGLEW_CONTEXT_ARG_DEF_LIST void
-# define GLXEW_CONTEXT_ARG_DEF_INIT void
-# define GLXEW_CONTEXT_ARG_DEF_LIST void
-#endif /* GLEW_MX */
-
-/*
- * Define glewGetProcAddress.
- */
-#if defined(_WIN32)
-# define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
-#else
-# if defined(__APPLE__)
- extern void* NSGLGetProcAddress (const GLubyte* name);
-# define glewGetProcAddress(name) NSGLGetProcAddress(name)
-# else
-# if defined(__sgi) || defined(__sun)
- extern void* dlGetProcAddress (const GLubyte* name);
-# define glewGetProcAddress(name) dlGetProcAddress(name)
-# else /* __linux */
-# define glewGetProcAddress(name) (*glXGetProcAddressARB)(name)
-# endif
-# endif
-#endif
-
-/*
- * GLEW, just like OpenGL or GLU, does not rely on the standard C library.
- * These functions implement the string processing functionality required in the library.
- */
-extern GLuint _glewStrLen (const GLubyte* s);
-extern GLuint _glewStrCLen (const GLubyte* s, GLubyte c);
-extern GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n);
-extern GLboolean _glewStrSame1 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb);
-extern GLboolean _glewStrSame2 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb);
-extern GLboolean _glewStrSame3 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-
-#endif /* __glew_utils_h__ */
From fda28dbfb07e869d5570ba2a5b949d80ecd7e2cf Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Sat, 13 Jun 2015 19:44:35 +1000
Subject: [PATCH 13/33] [CoreSupport] Tab indentation for perl scripts
---
auto/bin/make_def_var.pl | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/auto/bin/make_def_var.pl b/auto/bin/make_def_var.pl
index ae007a6..2b2a1d9 100755
--- a/auto/bin/make_def_var.pl
+++ b/auto/bin/make_def_var.pl
@@ -19,13 +19,13 @@ our $type = shift;
if (@ARGV)
{
- @extlist = @ARGV;
+ @extlist = @ARGV;
- foreach my $ext (sort @extlist)
- {
- my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
- my $extvar = $extname;
- $extvar =~ s/GL(X*)_/GL$1EW_/;
- print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
- }
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
+ }
}
From d932bc3eca34f3f87e20fd244fcd07867d7b5a89 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Thu, 18 Jun 2015 20:45:29 +1000
Subject: [PATCH 14/33] Fixup: glxewContextInit now needed for glewinfo
purposes.
---
auto/src/glxew_tail.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/auto/src/glxew_tail.h b/auto/src/glxew_tail.h
index 39e9953..ddffffb 100644
--- a/auto/src/glxew_tail.h
+++ b/auto/src/glxew_tail.h
@@ -14,6 +14,9 @@ GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx,
#else /* GLEW_MX */
+GLEWAPI GLenum GLEWAPIENTRY glxewContextInit ();
+GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const char *name);
+
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLXEW_GET_FUN(x) x
From a4a87f946606b6672a654b295ae92c6613857cfe Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Thu, 18 Jun 2015 21:17:44 +1000
Subject: [PATCH 15/33] Add clang Linux configuraiton.
---
config/Makefile.linux-clang | 38 +++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 config/Makefile.linux-clang
diff --git a/config/Makefile.linux-clang b/config/Makefile.linux-clang
new file mode 100644
index 0000000..dd14f4f
--- /dev/null
+++ b/config/Makefile.linux-clang
@@ -0,0 +1,38 @@
+NAME = $(GLEW_NAME)
+CC = clang
+LD = clang
+M_ARCH ?= $(shell uname -m)
+ARCH64 = false
+ifeq (x86_64,${M_ARCH})
+ ARCH64 = true
+endif
+ifeq (ppc64,${M_ARCH})
+ ARCH64 = true
+endif
+ifeq (${ARCH64},true)
+ LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64
+ LIBDIR = $(GLEW_DEST)/lib64
+else
+ LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
+ LIBDIR = $(GLEW_DEST)/lib
+endif
+LDFLAGS.GL = -lGL -lX11
+LDFLAGS.STATIC = -Wl,-Bstatic
+LDFLAGS.DYNAMIC = -Wl,-Bdynamic
+NAME = GLEW
+WARN = -Wall -W
+POPT = -O2
+CFLAGS.EXTRA += -fPIC
+CFLAGS.EXTRA += -Wcast-qual
+CFLAGS.EXTRA += -ansi -pedantic
+BIN.SUFFIX =
+LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
+LIB.DEVLNK = lib$(NAME).so
+LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
+LIB.STATIC = lib$(NAME).a
+LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
+LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
+LIB.DEVLNK.MX = lib$(NAME)mx.so
+LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
+LIB.STATIC.MX = lib$(NAME)mx.a
+LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX)
From d2e682345144a0976279ce71f398984f955f2fbc Mon Sep 17 00:00:00 2001
From: Tamas Kenez
Date: Mon, 22 Jun 2015 14:06:50 +0200
Subject: [PATCH 16/33] cmake: install config-module
Installs a config module if CMake verion >= 2.8.12.
The config-module creates the import library targets
built in the project (glew, glew_s, glewmx, glewmx_s)
but in accordance with the FindGLEW module shipped with
CMake, it also creates GLEW::GLEW and GLEW::GLEWMX.
GLEW::GLEW and GLEW::GLEWMX will be simply copies of
glew/glewmx or glew_s/glewmx_s. If both versions are
available they alias the shared versions.
The default behaviour can be changed either when installing
or when using the package:
- Set BUILD_SHARED_LIBS to OFF or ON when building and
installing GLEW. This controls which libraries
(shared or static) will be installed (and not which
will be built).
- Set GLEW_USE_STATIC_LIBS to OFF or ON before calling
`find_package(GLEW CONFIG REQUIRED)` to force
the config-module to create GLEW::GLEW and GLEWMX
as aliases to glew/glewmx or glew_s/glewmx_s
The script ./cmake-testbuild.sh is added to test the
CMake build and config-module. See instructions there.
---
.gitattributes | 1 +
.gitignore | 1 +
build/cmake/CMakeLists.txt | 35 +++++++-
.../cmake/CopyImportedTargetProperties.cmake | 88 +++++++++++++++++++
build/cmake/glew-config.cmake | 46 ++++++++++
build/cmake/testbuild/CMakeLists.txt | 24 +++++
build/cmake/testbuild/main.c | 23 +++++
cmake-testbuild.sh | 70 +++++++++++++++
8 files changed, 287 insertions(+), 1 deletion(-)
create mode 100644 build/cmake/CopyImportedTargetProperties.cmake
create mode 100644 build/cmake/glew-config.cmake
create mode 100644 build/cmake/testbuild/CMakeLists.txt
create mode 100644 build/cmake/testbuild/main.c
create mode 100755 cmake-testbuild.sh
diff --git a/.gitattributes b/.gitattributes
index 6bd6429..b49408f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,3 +2,4 @@
*.png binary
build/*/* text eol=crlf
CMakeLists.txt text eol=lf
+build/cmake/* text eol=lf
diff --git a/.gitignore b/.gitignore
index 0cdd347..8e9527a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
/bin
/lib
/tmp
+/out
diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
index fdeab0e..1563f9f 100644
--- a/build/cmake/CMakeLists.txt
+++ b/build/cmake/CMakeLists.txt
@@ -10,6 +10,8 @@ if (COMMAND cmake_policy)
cmake_policy (SET CMP0003 NEW)
endif()
+set(CMAKE_DEBUG_POSTFIX d)
+
option (BUILD_UTILS "utilities" ON)
set (GLEW_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..)
@@ -55,7 +57,29 @@ set_target_properties (glewmx_s PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC;GLEW
target_link_libraries (glewmx ${GLEW_LIBRARIES})
target_link_libraries (glewmx_s ${GLEW_LIBRARIES})
-install ( TARGETS glew glew_s glewmx glewmx_s
+if(CMAKE_VERSION VERSION_LESS 2.8.12)
+ set(MAYBE_EXPORT "")
+else()
+ target_compile_definitions(glew_s INTERFACE "GLEW_STATIC")
+ target_compile_definitions(glewmx INTERFACE "GLEW_MX")
+ target_compile_definitions(glewmx_s INTERFACE "GLEW_STATIC;GLEW_MX")
+ foreach(t glew glew_s glewmx glewmx_s)
+ target_include_directories(${t} PUBLIC $)
+ endforeach()
+ set(MAYBE_EXPORT EXPORT glew-targets)
+endif()
+
+set(targets_to_install "")
+if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
+ list(APPEND targets_to_install glew glewmx)
+endif()
+
+if(NOT DEFINED BUILD_SHARED_LIBS OR NOT BUILD_SHARED_LIBS)
+ list(APPEND targets_to_install glew_s glewmx_s)
+endif()
+
+install ( TARGETS ${targets_to_install}
+ ${MAYBE_EXPORT}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX}
@@ -95,3 +119,12 @@ install (FILES
${GLEW_DIR}/include/GL/glew.h
${GLEW_DIR}/include/GL/glxew.h
DESTINATION include/GL)
+
+if(MAYBE_EXPORT)
+ install(EXPORT glew-targets DESTINATION lib/cmake/glew
+ NAMESPACE GLEW::)
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/glew-config.cmake
+ ${CMAKE_CURRENT_SOURCE_DIR}/CopyImportedTargetProperties.cmake
+ DESTINATION lib/cmake/glew)
+endif()
diff --git a/build/cmake/CopyImportedTargetProperties.cmake b/build/cmake/CopyImportedTargetProperties.cmake
new file mode 100644
index 0000000..a7ade98
--- /dev/null
+++ b/build/cmake/CopyImportedTargetProperties.cmake
@@ -0,0 +1,88 @@
+#.rst:
+# CopyImportedTargetProperties
+# --------------------------
+#
+# Copies the `INTERFACE*` and `IMPORTED*` properties from a target
+# to another one.
+# This function can be used to duplicate an `IMPORTED` or an `ALIAS` library
+# with a different name since ``add_library(... ALIAS ...)`` does not work
+# for those targets.
+#
+# ::
+#
+# copy_imported_target_properties( )
+#
+# The function copies all the `INTERFACE*` and `IMPORTED*` target
+# properties from `` to ``.
+#
+# The function uses the `IMPORTED_CONFIGURATIONS` property to determine
+# which configuration-dependent properties should be copied
+# (`IMPORTED_LOCATION_`, etc...)
+#
+# Example:
+#
+# Internally the CMake project of ZLIB builds the ``zlib`` and
+# ``zlibstatic`` targets which can be exported in the ``ZLIB::`` namespace
+# with the ``install(EXPORT ...)`` command.
+#
+# The config-module will then create the import libraries ``ZLIB::zlib`` and
+# ``ZLIB::zlibstatic``. To use ``ZLIB::zlibstatic`` under the standard
+# ``ZLIB::ZLIB`` name we need to create the ``ZLIB::ZLIB`` imported library
+# and copy the appropriate properties:
+#
+# add_library(ZLIB::ZLIB STATIC IMPORTED)
+# copy_imported_target_properties(ZLIB::zlibstatic ZLIB::ZLIB)
+#
+
+function(copy_imported_target_properties src_target dest_target)
+
+ set(config_dependent_props
+ IMPORTED_IMPLIB
+ IMPORTED_LINK_DEPENDENT_LIBRARIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES
+ IMPORTED_LINK_INTERFACE_LIBRARIES
+ IMPORTED_LINK_INTERFACE_MULTIPLICITY
+ IMPORTED_LOCATION
+ IMPORTED_NO_SONAME
+ IMPORTED_SONAME
+ )
+
+ # copy configuration-independent properties
+ foreach(prop
+ ${config_dependent_props}
+ IMPORTED_CONFIGURATIONS
+ INTERFACE_AUTOUIC_OPTIONS
+ INTERFACE_COMPILE_DEFINITIONS
+ INTERFACE_COMPILE_FEATURES
+ INTERFACE_COMPILE_OPTIONS
+ INTERFACE_INCLUDE_DIRECTORIES
+ INTERFACE_LINK_LIBRARIES
+ INTERFACE_POSITION_INDEPENDENT_CODE
+ INTERFACE_SOURCES
+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
+ )
+ get_property(is_set TARGET ${src_target} PROPERTY ${prop} SET)
+ if(is_set)
+ get_target_property(v ${src_target} ${prop})
+ set_target_properties(${dest_target} PROPERTIES ${prop} "${v}")
+ # message(STATUS "set_target_properties(${dest_target} PROPERTIES ${prop} ${v})")
+ endif()
+ endforeach()
+
+ # copy configuration-dependent properties
+ get_target_property(imported_configs ${src_target}
+ IMPORTED_CONFIGURATIONS)
+
+ foreach(config ${imported_configs})
+ foreach(prop_prefix ${config_dependent_props})
+ set(prop ${prop_prefix}_${config})
+ get_property(is_set TARGET ${src_target} PROPERTY ${prop} SET)
+ if(is_set)
+ get_target_property(v ${src_target} ${prop})
+ set_target_properties(${dest_target}
+ PROPERTIES ${prop} "${v}")
+ # message(STATUS "set_target_properties(${dest_target} PROPERTIES ${prop} ${v})")
+ endif()
+ endforeach()
+ endforeach()
+endfunction()
diff --git a/build/cmake/glew-config.cmake b/build/cmake/glew-config.cmake
new file mode 100644
index 0000000..8d2907a
--- /dev/null
+++ b/build/cmake/glew-config.cmake
@@ -0,0 +1,46 @@
+# This config-module creates the following import libraries:
+#
+# - GLEW::glew and GLEW::glewmx shared libs
+# - GLEW::glew_s and GLEW::glewmx_s static libs
+#
+# Additionally GLEW::GLEW and GLEW::GLEWMX will be created as an
+# copy of either the shared (default) or the static libs.
+#
+# Dependending on the setting of BUILD_SHARED_LIBS at GLEW build time
+# either the static or shared versions may not be available.
+#
+# Set GLEW_USE_STATIC_LIBS to OFF or ON to force using the shared
+# or static libs for GLEW::GLEW and GLEW::GLEWMX
+#
+
+include(${CMAKE_CURRENT_LIST_DIR}/glew-targets.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/CopyImportedTargetProperties.cmake)
+
+# decide which import library (glew/glew_s and glewmx/glewmx_s)
+# needs to be copied to GLEW::GLEW and GLEW::GLEWMX
+set(_glew_target_postfix "")
+set(_glew_target_type SHARED)
+if(DEFINED GLEW_USE_STATIC_LIBS)
+ # if defined, use only static or shared
+ if(GLEW_USE_STATIC_LIBS)
+ set(_glew_target_postfix "_s")
+ endif()
+ # else use static only if no shared
+elseif(NOT TARGET GLEW::glew AND TARGET GLEW::glew_s)
+ set(_glew_target_postfix "_s")
+endif()
+if(_glew_target_postfix STREQUAL "")
+ set(_glew_target_type SHARED)
+else()
+ set(_glew_target_type STATIC)
+endif()
+
+# CMake doesn't allow creating ALIAS lib for an IMPORTED lib
+# so create imported ones and copy the properties
+foreach(_glew_target glew glewmx)
+ set(_glew_src_target "GLEW::${_glew_target}${_glew_target_postfix}")
+ string(TOUPPER "GLEW::${_glew_target}" _glew_dest_target)
+ add_library(${_glew_dest_target} ${_glew_target_type} IMPORTED)
+ # message(STATUS "add_library(${_glew_dest_target} ${_glew_target_type} IMPORTED)")
+ copy_imported_target_properties(${_glew_src_target} ${_glew_dest_target})
+endforeach()
diff --git a/build/cmake/testbuild/CMakeLists.txt b/build/cmake/testbuild/CMakeLists.txt
new file mode 100644
index 0000000..1bb69b4
--- /dev/null
+++ b/build/cmake/testbuild/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 2.8.12)
+project(glew-cmake-test)
+
+find_package(GLEW REQUIRED CONFIG)
+find_package(OpenGL REQUIRED)
+
+add_executable(cmake-test main.c)
+set_target_properties(cmake-test PROPERTIES DEBUG_POSTFIX _d)
+target_link_libraries(cmake-test PRIVATE GLEW::GLEW ${OPENGL_LIBRARIES})
+target_include_directories(cmake-test PRIVATE ${OPENGL_INCLUDE_DIR})
+
+if(CMAKE_VERSION VERSION_LESS 3.0)
+ set(cgex $)
+else()
+ set(cgex $)
+endif()
+
+target_compile_definitions(cmake-test PRIVATE
+ -DGLEW_CMAKE_TEST_CONFIG=${cgex}
+ -DGLEW_CMAKE_TEST_TARGET_FILE_NAME=$
+ -DGLEW_CMAKE_TEST_TARGET_TYPE=$
+ )
+
+install(TARGETS cmake-test DESTINATION bin)
diff --git a/build/cmake/testbuild/main.c b/build/cmake/testbuild/main.c
new file mode 100644
index 0000000..5975817
--- /dev/null
+++ b/build/cmake/testbuild/main.c
@@ -0,0 +1,23 @@
+#include
+
+#include
+#include
+
+#define S(x) SS(x)
+#define SS(x) #x
+
+int main(int argc, char* argv[]) {
+ printf("GLEW CMake test, %s build\n",
+ S(GLEW_CMAKE_TEST_CONFIG));
+ printf("-- linked to %s which is %s\n",
+ S(GLEW_CMAKE_TEST_TARGET_FILE_NAME),
+ S(GLEW_CMAKE_TEST_TARGET_TYPE));
+ const GLubyte* v = glewGetString(GLEW_VERSION);
+ if(v) {
+ printf("-- glewGetString(GLEW_VERSION) returns %s\n-- test passed.\n", v);
+ return EXIT_SUCCESS;
+ } else {
+ printf("-- glewGetString(GLEW_VERSION) returns NULL\n-- test failed.\n");
+ return EXIT_FAILURE;
+ }
+}
diff --git a/cmake-testbuild.sh b/cmake-testbuild.sh
new file mode 100755
index 0000000..eceae8d
--- /dev/null
+++ b/cmake-testbuild.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# This script tests the CMake build:
+#
+# - builds the main CMakeLists.txt
+# - builds and runs a small test app in a separate build tree so
+# the config-module is tested, too
+#
+# Options (environment variables):
+#
+# - The variable BUILD_SHARED_LIBS will be forwarded to the CMake project
+# that builds and installs the GLEW libraries. Set BUILD_SHARED_LIBS to
+# ON or OFF to install only static or shared libs. Leave it unset to
+# install both.
+#
+# Note: BUILD_SHARED_LIBS controls only what to install not what to build.
+#
+# - GLEW_USE_STATIC_LIBS will be forwarded to the test project that calls
+# `find_package` to find GLEW. Set GLEW_USE_STATIC LIBS to ON or OFF force
+# finding the shared or static versions of GLEW. Leave it unset to find
+# the shared or what is available.
+#
+# Examples:
+#
+# Build & install shared + static, find default (shared)
+#
+# ./cmake-testbuild.shh
+#
+# Build & install shared + static, find static
+#
+# GLEW_USE_STATIC_LIBS=ON ./cmake-testbuild.sh
+#
+# Install static only (still build both)
+#
+# BUILD_SHARED_LIBS=OFF ./cmake-testbuild.sh
+#
+
+set -ex
+
+rm -rf out/include
+rm -rf out/lib*
+rm -rf out/bin
+
+if [ -n "$BUILD_SHARED_LIBS" ]; then
+ bsl=-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
+else
+ bsl=-UBUILD_SHARED_LIBS
+fi
+
+if [ -n "$GLEW_USE_STATIC_LIBS" ]; then
+ gusl=-DGLEW_USE_STATIC_LIBS=$GLEW_USE_STATIC_LIBS
+else
+ gusl=-UGLEW_USE_STATIC_LIBS
+fi
+
+cmake -Hbuild/cmake -Bout/build/glew -DCMAKE_INSTALL_PREFIX=${PWD}/out -DCMAKE_BUILD_TYPE=Debug $bsl
+cmake --build out/build/glew --target install --config Debug
+cmake out/build/glew -DCMAKE_BUILD_TYPE=Release
+cmake --build out/build/glew --target install --config Release --clean-first
+
+cmake -Hbuild/cmake/testbuild -Bout/build/cmake-testbuild -DCMAKE_INSTALL_PREFIX=${PWD}/out -DCMAKE_PREFIX_PATH=${PWD}/out -DCMAKE_BUILD_TYPE=Debug $gusl
+cmake --build out/build/cmake-testbuild --target install --config Debug
+
+cmake out/build/cmake-testbuild -DCMAKE_BUILD_TYPE=Release
+cmake --build out/build/cmake-testbuild --target install --config Release --clean-first
+
+export LD_LIBRARY_PATH=${PWD}/out/lib:$LD_LIBRARY_PATH
+
+out/bin/cmake-test_d
+out/bin/cmake-test
From 67b12efec7b5178493e7e885e976bdc4d4748c39 Mon Sep 17 00:00:00 2001
From: Tamas Kenez
Date: Sun, 12 Jul 2015 23:11:53 +0200
Subject: [PATCH 17/33] build: cmake-testbuild to work on OS X and with CMake <
3.0
---
build/cmake/testbuild/CMakeLists.txt | 4 ++--
cmake-testbuild.sh | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/build/cmake/testbuild/CMakeLists.txt b/build/cmake/testbuild/CMakeLists.txt
index 1bb69b4..275e24d 100644
--- a/build/cmake/testbuild/CMakeLists.txt
+++ b/build/cmake/testbuild/CMakeLists.txt
@@ -10,9 +10,9 @@ target_link_libraries(cmake-test PRIVATE GLEW::GLEW ${OPENGL_LIBRARIES})
target_include_directories(cmake-test PRIVATE ${OPENGL_INCLUDE_DIR})
if(CMAKE_VERSION VERSION_LESS 3.0)
- set(cgex $)
-else()
set(cgex $)
+else()
+ set(cgex $)
endif()
target_compile_definitions(cmake-test PRIVATE
diff --git a/cmake-testbuild.sh b/cmake-testbuild.sh
index eceae8d..0dbbfd2 100755
--- a/cmake-testbuild.sh
+++ b/cmake-testbuild.sh
@@ -65,6 +65,7 @@ cmake out/build/cmake-testbuild -DCMAKE_BUILD_TYPE=Release
cmake --build out/build/cmake-testbuild --target install --config Release --clean-first
export LD_LIBRARY_PATH=${PWD}/out/lib:$LD_LIBRARY_PATH
+export DYLD_LIBRARY_PATH=${PWD}/out/lib:$DYLD_LIBRARY_PATH
out/bin/cmake-test_d
out/bin/cmake-test
From 4c408058091ed434093fc3c16d2f4785216d9fce Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 17 Jul 2015 10:51:32 +1000
Subject: [PATCH 18/33] Sourceforge Bug 277 - OpenGL 4.5 glGetnTexImage is
missing
---
auto/core/gl/GL_VERSION_4_5 | 1 +
1 file changed, 1 insertion(+)
diff --git a/auto/core/gl/GL_VERSION_4_5 b/auto/core/gl/GL_VERSION_4_5
index 341abfd..d4c3a85 100644
--- a/auto/core/gl/GL_VERSION_4_5
+++ b/auto/core/gl/GL_VERSION_4_5
@@ -2,3 +2,4 @@ GL_VERSION_4_5
https://www.opengl.org/registry/doc/glspec45.compatibility.pdf
GLenum glGetGraphicsResetStatus (void)
+ void glGetnTexImage (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels)
From 4c009908e2638f78c7aa3d1d364cd36add62a929 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 24 Jul 2015 11:37:01 +1000
Subject: [PATCH 19/33] Windows glewinfo fixup - expose wglewContextInit and
wglewIsSupported.
---
auto/src/glewinfo_tail.c | 1 -
auto/src/wglew_tail.h | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index 95c7ed1..ad5f530 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -195,7 +195,6 @@ GLboolean glewCreateContext (struct createParams* params)
int contextAttrs[20];
int i;
- extern GLenum GLEWAPIENTRY wglewContextInit();
wglewContextInit();
if (!wglewGetExtension("WGL_ARB_create_context_profile"))
diff --git a/auto/src/wglew_tail.h b/auto/src/wglew_tail.h
index 9bbe945..0e38466 100644
--- a/auto/src/wglew_tail.h
+++ b/auto/src/wglew_tail.h
@@ -17,6 +17,8 @@ GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx,
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
#define WGLEW_GET_FUN(x) x
+GLEWAPI GLenum GLEWAPIENTRY wglewContextInit ();
+GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const char *name);
GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
#endif /* GLEW_MX */
From d367215cde3f4121365a3240c0ad7c43e864c12c Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 24 Jul 2015 11:52:16 +1000
Subject: [PATCH 20/33] Windows glewinfo fixup - check for
WGL_ARB_create_context
---
auto/src/glewinfo_tail.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index ad5f530..ace3644 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -197,7 +197,8 @@ GLboolean glewCreateContext (struct createParams* params)
wglewContextInit();
- if (!wglewGetExtension("WGL_ARB_create_context_profile"))
+ /* Intel HD 3000 has WGL_ARB_create_context, but not WGL_ARB_create_context_profile */
+ if (!wglewGetExtension("WGL_ARB_create_context"))
return GL_TRUE;
i = 0;
From ba410e12e28f2c1246b625da0a0db7227a152bed Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 24 Jul 2015 12:16:39 +1000
Subject: [PATCH 21/33] glxewContextInit fixup - require
GLX_ARB_create_context.
---
auto/src/glewinfo_tail.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index ace3644..8aed4d3 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -370,7 +370,7 @@ GLboolean glewCreateContext (struct createParams *params)
glxewContextInit();
- if (!glxewGetExtension("GLX_ARB_create_context_profile"))
+ if (!glxewGetExtension("GLX_ARB_create_context"))
return GL_TRUE;
if (glXQueryContext(dpy, oldCtx, GLX_FBCONFIG_ID, &FBConfigAttrs[1]))
From 816c19c3215476e3633a6077f24a13d8d4e7b5a0 Mon Sep 17 00:00:00 2001
From: Lauri Nurmi
Date: Tue, 4 Aug 2015 08:54:30 +0300
Subject: [PATCH 22/33] For GLEW Bug 201 - Resolve Visual Studio 2012 resource
compiler problem also in the other two .rc files.
The resource compiler in VS2012 and newer does not accept excessively long string literals on one line.
---
auto/src/glewinfo.rc | 76 +++++++++++++++++++++++++++++++++++++++++-
auto/src/visualinfo.rc | 76 +++++++++++++++++++++++++++++++++++++++++-
2 files changed, 150 insertions(+), 2 deletions(-)
diff --git a/auto/src/glewinfo.rc b/auto/src/glewinfo.rc
index 60b001d..7a2d920 100644
--- a/auto/src/glewinfo.rc
+++ b/auto/src/glewinfo.rc
@@ -36,7 +36,81 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
- VALUE "Comments", "The OpenGL Extension Wrangler Library\r\nCopyright (C) 2002-2008, Milan Ikits \r\nCopyright (C) 2002-2008, Marcelo E. Magallon \r\nCopyright (C) 2002, Lev Povalahev\r\nAll rights reserved.\r\n \r\nRedistribution and use in source and binary forms, with or without \r\nmodification, are permitted provided that the following conditions are met:\r\n\r\n* Redistributions of source code must retain the above copyright notice, \r\n this list of conditions and the following disclaimer.\r\n* Redistributions in binary form must reproduce the above copyright notice, \r\n this list of conditions and the following disclaimer in the documentation \r\n and/or other materials provided with the distribution.\r\n* The name of the author may be used to endorse or promote products \r\n derived from this software without specific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' \r\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\nTHE POSSIBILITY OF SUCH DAMAGE.\r\n\r\nLicense Applicability. Except to the extent portions of this file are\r\nmade subject to an alternative license as permitted in the SGI Free\r\nSoftware License B, Version 1.1 (the 'License'), the contents of this\r\nfile are subject only to the provisions of the License. You may not use\r\nthis file except in compliance with the License. You may obtain a copy\r\nof the License at Silicon Graphics, Inc., attn: Legal Services, 1600\r\nAmphitheatre Parkway, Mountain View, CA 94043-1351, or at:\r\n\r\nhttp://oss.sgi.com/projects/FreeB\r\n\r\nNote that, as provided in the License, the Software is distributed on an\r\n'AS IS' basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS\r\nDISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND\r\nCONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A\r\nPARTICULAR PURPOSE, AND NON-INFRINGEMENT.\r\n\r\nOriginal Code. The Original Code is: OpenGL Sample Implementation,\r\nVersion 1.2.1, released January 26, 2000, developed by Silicon Graphics,\r\nInc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.\r\nCopyright in any portions created by third parties is as indicated\r\nelsewhere herein. All Rights Reserved.\r\n\r\nAdditional Notice Provisions: This software was created using the\r\nOpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has\r\nnot been independently verified as being compliant with the OpenGL(R)\r\nversion 1.2.1 Specification.\0"
+ VALUE "Comments",
+ "The OpenGL Extension Wrangler Library\r\n"
+ "Copyright (C) 2002-2008, Milan Ikits \r\n"
+ "Copyright (C) 2002-2008, Marcelo E. Magallon \r\n"
+ "Copyright (C) 2002, Lev Povalahev\r\n"
+ "All rights reserved.\r\n"
+ "\r\n"
+ "Redistribution and use in source and binary forms, with or without \r\n"
+ "modification, are permitted provided that the following conditions are met:\r\n"
+ "\r\n"
+ "* Redistributions of source code must retain the above copyright notice, \r\n"
+ " this list of conditions and the following disclaimer.\r\n"
+ "* Redistributions in binary form must reproduce the above copyright notice, \r\n"
+ " this list of conditions and the following disclaimer in the documentation \r\n"
+ " and/or other materials provided with the distribution.\r\n"
+ "* The name of the author may be used to endorse or promote products \r\n"
+ " derived from this software without specific prior written permission.\r\n"
+ "\r\n"
+ "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' \r\n"
+ "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\n"
+ "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n"
+ "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\n"
+ "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\n"
+ "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\n"
+ "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n"
+ "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n"
+ "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n"
+ "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\n"
+ "THE POSSIBILITY OF SUCH DAMAGE.\r\n"
+ "\r\n"
+ "\r\n"
+ "Mesa 3-D graphics library\r\n"
+ "\r\n"
+ "Version: 7.0\r\n"
+ "\r\n"
+ "Copyright (C) 1999-2007 Brian Paul All Rights Reserved.\r\n"
+ "\r\n"
+ "Permission is hereby granted, free of charge, to any person obtaining a\r\n"
+ "copy of this software and associated documentation files (the ''Software''),\r\n"
+ "to deal in the Software without restriction, including without limitation\r\n"
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n"
+ "and/or sell copies of the Software, and to permit persons to whom the\r\n"
+ "Software is furnished to do so, subject to the following conditions:\r\n"
+ "\r\n"
+ "The above copyright notice and this permission notice shall be included\r\n"
+ "in all copies or substantial portions of the Software.\r\n"
+ "\r\n"
+ "THE SOFTWARE IS PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n"
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n"
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n"
+ "BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r\n"
+ "AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n"
+ "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n"
+ "\r\n"
+ "\r\n"
+ "Copyright (c) 2007 The Khronos Group Inc.\r\n"
+ "\r\n"
+ "Permission is hereby granted, free of charge, to any person obtaining a\r\n"
+ "copy of this software and/or associated documentation files (the\r\n"
+ "''Materials''), to deal in the Materials without restriction, including\r\n"
+ "without limitation the rights to use, copy, modify, merge, publish,\r\n"
+ "distribute, sublicense, and/or sell copies of the Materials, and to\r\n"
+ "permit persons to whom the Materials are furnished to do so, subject to\r\n"
+ "the following conditions:\r\n"
+ "\r\n"
+ "The above copyright notice and this permission notice shall be included\r\n"
+ "in all copies or substantial portions of the Materials.\r\n"
+ "\r\n"
+ "THE MATERIALS ARE PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND,\r\n"
+ "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n"
+ "MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n"
+ "IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n"
+ "CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n"
+ "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n"
+ "MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Utility for verifying extension entry points\0"
VALUE "FileVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0"
diff --git a/auto/src/visualinfo.rc b/auto/src/visualinfo.rc
index 2373944..ed747df 100644
--- a/auto/src/visualinfo.rc
+++ b/auto/src/visualinfo.rc
@@ -36,7 +36,81 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
- VALUE "Comments", "The OpenGL Extension Wrangler Library\r\nCopyright (C) 2002-2008, Milan Ikits \r\nCopyright (C) 2002-2008, Marcelo E. Magallon \r\nCopyright (C) 2002, Lev Povalahev\r\nAll rights reserved.\r\n \r\nRedistribution and use in source and binary forms, with or without \r\nmodification, are permitted provided that the following conditions are met:\r\n\r\n* Redistributions of source code must retain the above copyright notice, \r\n this list of conditions and the following disclaimer.\r\n* Redistributions in binary form must reproduce the above copyright notice, \r\n this list of conditions and the following disclaimer in the documentation \r\n and/or other materials provided with the distribution.\r\n* The name of the author may be used to endorse or promote products \r\n derived from this software without specific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' \r\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\nTHE POSSIBILITY OF SUCH DAMAGE.\r\n\r\nLicense Applicability. Except to the extent portions of this file are\r\nmade subject to an alternative license as permitted in the SGI Free\r\nSoftware License B, Version 1.1 (the 'License'), the contents of this\r\nfile are subject only to the provisions of the License. You may not use\r\nthis file except in compliance with the License. You may obtain a copy\r\nof the License at Silicon Graphics, Inc., attn: Legal Services, 1600\r\nAmphitheatre Parkway, Mountain View, CA 94043-1351, or at:\r\n\r\nhttp://oss.sgi.com/projects/FreeB\r\n\r\nNote that, as provided in the License, the Software is distributed on an\r\n'AS IS' basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS\r\nDISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND\r\nCONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A\r\nPARTICULAR PURPOSE, AND NON-INFRINGEMENT.\r\n\r\nOriginal Code. The Original Code is: OpenGL Sample Implementation,\r\nVersion 1.2.1, released January 26, 2000, developed by Silicon Graphics,\r\nInc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.\r\nCopyright in any portions created by third parties is as indicated\r\nelsewhere herein. All Rights Reserved.\r\n\r\nAdditional Notice Provisions: This software was created using the\r\nOpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has\r\nnot been independently verified as being compliant with the OpenGL(R)\r\nversion 1.2.1 Specification.\0"
+ VALUE "Comments",
+ "The OpenGL Extension Wrangler Library\r\n"
+ "Copyright (C) 2002-2008, Milan Ikits \r\n"
+ "Copyright (C) 2002-2008, Marcelo E. Magallon \r\n"
+ "Copyright (C) 2002, Lev Povalahev\r\n"
+ "All rights reserved.\r\n"
+ "\r\n"
+ "Redistribution and use in source and binary forms, with or without \r\n"
+ "modification, are permitted provided that the following conditions are met:\r\n"
+ "\r\n"
+ "* Redistributions of source code must retain the above copyright notice, \r\n"
+ " this list of conditions and the following disclaimer.\r\n"
+ "* Redistributions in binary form must reproduce the above copyright notice, \r\n"
+ " this list of conditions and the following disclaimer in the documentation \r\n"
+ " and/or other materials provided with the distribution.\r\n"
+ "* The name of the author may be used to endorse or promote products \r\n"
+ " derived from this software without specific prior written permission.\r\n"
+ "\r\n"
+ "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' \r\n"
+ "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r\n"
+ "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n"
+ "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE \r\n"
+ "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR \r\n"
+ "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF \r\n"
+ "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n"
+ "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n"
+ "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n"
+ "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\n"
+ "THE POSSIBILITY OF SUCH DAMAGE.\r\n"
+ "\r\n"
+ "\r\n"
+ "Mesa 3-D graphics library\r\n"
+ "\r\n"
+ "Version: 7.0\r\n"
+ "\r\n"
+ "Copyright (C) 1999-2007 Brian Paul All Rights Reserved.\r\n"
+ "\r\n"
+ "Permission is hereby granted, free of charge, to any person obtaining a\r\n"
+ "copy of this software and associated documentation files (the ''Software''),\r\n"
+ "to deal in the Software without restriction, including without limitation\r\n"
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n"
+ "and/or sell copies of the Software, and to permit persons to whom the\r\n"
+ "Software is furnished to do so, subject to the following conditions:\r\n"
+ "\r\n"
+ "The above copyright notice and this permission notice shall be included\r\n"
+ "in all copies or substantial portions of the Software.\r\n"
+ "\r\n"
+ "THE SOFTWARE IS PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n"
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n"
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n"
+ "BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r\n"
+ "AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n"
+ "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n"
+ "\r\n"
+ "\r\n"
+ "Copyright (c) 2007 The Khronos Group Inc.\r\n"
+ "\r\n"
+ "Permission is hereby granted, free of charge, to any person obtaining a\r\n"
+ "copy of this software and/or associated documentation files (the\r\n"
+ "''Materials''), to deal in the Materials without restriction, including\r\n"
+ "without limitation the rights to use, copy, modify, merge, publish,\r\n"
+ "distribute, sublicense, and/or sell copies of the Materials, and to\r\n"
+ "permit persons to whom the Materials are furnished to do so, subject to\r\n"
+ "the following conditions:\r\n"
+ "\r\n"
+ "The above copyright notice and this permission notice shall be included\r\n"
+ "in all copies or substantial portions of the Materials.\r\n"
+ "\r\n"
+ "THE MATERIALS ARE PROVIDED ''AS IS'', WITHOUT WARRANTY OF ANY KIND,\r\n"
+ "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n"
+ "MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n"
+ "IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n"
+ "CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n"
+ "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n"
+ "MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Utility for listing pixelformat capabilities\0"
VALUE "FileVersion", "GLEW_MAJOR,GLEW_MINOR,GLEW_MICRO,0\0"
From 4b7549336449394b26c7f2f11951199f9e475216 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Wed, 5 Aug 2015 10:02:19 +1000
Subject: [PATCH 23/33] VC12 - Use .rc files for glewinfo and visualinfo
---
build/vc12/glewinfo.vcxproj | 3 +++
build/vc12/visualinfo.vcxproj | 3 +++
2 files changed, 6 insertions(+)
diff --git a/build/vc12/glewinfo.vcxproj b/build/vc12/glewinfo.vcxproj
index 26e57c3..4a82364 100644
--- a/build/vc12/glewinfo.vcxproj
+++ b/build/vc12/glewinfo.vcxproj
@@ -440,6 +440,9 @@
{664e6f0d-6784-4760-9565-d54f8eb1edf4}
+
+
+
diff --git a/build/vc12/visualinfo.vcxproj b/build/vc12/visualinfo.vcxproj
index 692b778..e6e2a8b 100644
--- a/build/vc12/visualinfo.vcxproj
+++ b/build/vc12/visualinfo.vcxproj
@@ -439,6 +439,9 @@
{664e6f0d-6784-4760-9565-d54f8eb1edf4}
+
+
+
From d80fd5514fe532f8550f14c2fa117a0cab5ece62 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Thu, 6 Aug 2015 10:33:23 +1000
Subject: [PATCH 24/33] Specification filtering refinement - no overview or
issues sections
---
auto/bin/filter_spec.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/auto/bin/filter_spec.py b/auto/bin/filter_spec.py
index 7fc334b..fc30219 100755
--- a/auto/bin/filter_spec.py
+++ b/auto/bin/filter_spec.py
@@ -2,7 +2,7 @@
import re
-section = re.compile('^(Name|Name Strings?|Number|Dependencies|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$')
+section = re.compile('^(Name|Name Strings?|Number|Dependencies|Overview|Issues|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$')
token = re.compile('^\s+(([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*))?\s*$')
if __name__ == '__main__':
@@ -16,14 +16,19 @@ if __name__ == '__main__':
for i in args:
lines = open(i).readlines()
f = open(i,'w')
+
+ # Keep track of the current section as we iterate over the input
current = ''
for j in lines:
+
+ # Detect the start of a new section
m = section.match(j)
if m:
current = m.group(1).strip()
if current in [ 'Name', 'Name String', 'Name Strings', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens']:
print >>f, j,
continue
+
if current=='New Tokens':
if token.match(j):
print >>f, j,
From 754e051049291a7be7200190140975ef65837e96 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Thu, 6 Aug 2015 10:43:12 +1000
Subject: [PATCH 25/33] Specification filtering refinement - omit contacts,
include contacts and notice
---
auto/bin/filter_spec.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/auto/bin/filter_spec.py b/auto/bin/filter_spec.py
index fc30219..16c2fa9 100755
--- a/auto/bin/filter_spec.py
+++ b/auto/bin/filter_spec.py
@@ -2,8 +2,9 @@
import re
-section = re.compile('^(Name|Name Strings?|Number|Dependencies|Overview|Issues|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$')
+section = re.compile('^(Name|Name Strings?|Contact|Notice|Number|Dependencies|Overview|Issues|IP Status|Status|Version|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$')
token = re.compile('^\s+(([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*))?\s*$')
+match = [ 'Name', 'Name String', 'Contact', 'Notice', 'Name Strings', 'Version', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens']
if __name__ == '__main__':
@@ -25,13 +26,13 @@ if __name__ == '__main__':
m = section.match(j)
if m:
current = m.group(1).strip()
- if current in [ 'Name', 'Name String', 'Name Strings', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens']:
+ if current in match:
print >>f, j,
continue
if current=='New Tokens':
if token.match(j):
print >>f, j,
- elif current in [ 'Name', 'Name String', 'Name Strings', 'Number', 'Dependencies', 'New Procedures and Functions']:
+ elif current in match:
print >>f, j,
From 0cc7dd8cc597d41730dc07e22ca48668ff289a33 Mon Sep 17 00:00:00 2001
From: yy-yyaa
Date: Mon, 22 Jun 2015 21:16:10 +0800
Subject: [PATCH 26/33] OpenGL 4.2 adds TRANSFORM_FEEDBACK_ACTIVE,
TRANSFORM_FEEDBACK_PAUSED
---
auto/core/gl/GL_VERSION_4_2 | 2 ++
1 file changed, 2 insertions(+)
diff --git a/auto/core/gl/GL_VERSION_4_2 b/auto/core/gl/GL_VERSION_4_2
index c94737a..d5c1708 100644
--- a/auto/core/gl/GL_VERSION_4_2
+++ b/auto/core/gl/GL_VERSION_4_2
@@ -3,6 +3,8 @@ https://www.opengl.org/registry/doc/glspec42.compatibility.20120427.pdf
GL_COPY_READ_BUFFER_BINDING 0x8F36
GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+ GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+ GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
From e1815b27297c755b76101c38390f932ed301c3fd Mon Sep 17 00:00:00 2001
From: yy-yyaa
Date: Mon, 22 Jun 2015 21:16:10 +0800
Subject: [PATCH 27/33] OpenGL 4.5 omissions - GetnUniformdv,
GetnCompressedTexImage, CONTEXT_FLAG_ROBUST_ACCESS_BIT
---
auto/core/gl/GL_VERSION_4_5 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/auto/core/gl/GL_VERSION_4_5 b/auto/core/gl/GL_VERSION_4_5
index d4c3a85..3c06e85 100644
--- a/auto/core/gl/GL_VERSION_4_5
+++ b/auto/core/gl/GL_VERSION_4_5
@@ -1,5 +1,8 @@
GL_VERSION_4_5
https://www.opengl.org/registry/doc/glspec45.compatibility.pdf
+ GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
GLenum glGetGraphicsResetStatus (void)
void glGetnTexImage (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels)
+ void glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels)
+ void glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params)
From 54b537afda31fa285bd351cb2a10bb5f24ebc5de Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 7 Aug 2015 12:23:36 +1000
Subject: [PATCH 28/33] No longer using deprecated AGL framework on Mac for
visualinfo
---
config/Makefile.darwin | 2 +-
config/Makefile.darwin-ppc | 2 +-
config/Makefile.darwin-universal | 2 +-
config/Makefile.darwin-x86_64 | 2 +-
src/visualinfo.c | 35 ++++++++++++++++----------------
5 files changed, 21 insertions(+), 22 deletions(-)
diff --git a/config/Makefile.darwin b/config/Makefile.darwin
index 56fd584..8dd6262 100644
--- a/config/Makefile.darwin
+++ b/config/Makefile.darwin
@@ -9,7 +9,7 @@ ifneq (undefined, $(origin GLEW_APPLE_GLX))
CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX'
LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11
else
-LDFLAGS.GL = -framework AGL -framework OpenGL
+LDFLAGS.GL = -framework OpenGL
endif
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC =
diff --git a/config/Makefile.darwin-ppc b/config/Makefile.darwin-ppc
index 46c8b73..60ae3fd 100644
--- a/config/Makefile.darwin-ppc
+++ b/config/Makefile.darwin-ppc
@@ -8,7 +8,7 @@ ifneq (undefined, $(origin GLEW_APPLE_GLX))
CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX'
LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11
else
-LDFLAGS.GL = -framework AGL -framework OpenGL
+LDFLAGS.GL = -framework OpenGL
endif
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC =
diff --git a/config/Makefile.darwin-universal b/config/Makefile.darwin-universal
index 5f3f278..2b3156b 100644
--- a/config/Makefile.darwin-universal
+++ b/config/Makefile.darwin-universal
@@ -12,7 +12,7 @@ ifneq (undefined, $(origin GLEW_APPLE_GLX))
CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX'
LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11
else
-LDFLAGS.GL = -framework AGL -framework OpenGL
+LDFLAGS.GL = -framework OpenGL
endif
LDFLAGS.DYNAMIC =
WARN = -Wall -W
diff --git a/config/Makefile.darwin-x86_64 b/config/Makefile.darwin-x86_64
index e6eb050..5e8156b 100644
--- a/config/Makefile.darwin-x86_64
+++ b/config/Makefile.darwin-x86_64
@@ -8,7 +8,7 @@ ifneq (undefined, $(origin GLEW_APPLE_GLX))
CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX'
LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11
else
-LDFLAGS.GL = -framework AGL -framework OpenGL
+LDFLAGS.GL = -framework OpenGL
endif
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC =
diff --git a/src/visualinfo.c b/src/visualinfo.c
index 23a8499..fd27c7b 100644
--- a/src/visualinfo.c
+++ b/src/visualinfo.c
@@ -37,7 +37,8 @@
#if defined(_WIN32)
#include
#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
-#include
+#include
+#include
#elif !defined(__HAIKU__)
#include
#endif
@@ -61,7 +62,7 @@ typedef struct GLContextStruct
HDC dc;
HGLRC rc;
#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
- AGLContext ctx, octx;
+ CGLContextObj ctx, octx;
#elif !defined(__HAIKU__)
Display* dpy;
XVisualInfo* vi;
@@ -1072,30 +1073,28 @@ void InitContext (GLContext* ctx)
GLboolean CreateContext (GLContext* ctx)
{
- int attrib[] = { AGL_RGBA, AGL_NONE };
- AGLPixelFormat pf;
+ CGLPixelFormatAttribute attrib[] = { kCGLPFAAccelerated, 0 };
+ CGLPixelFormatObj pf;
+ GLint npix;
+ CGLError error;
/* check input */
if (NULL == ctx) return GL_TRUE;
- /*int major, minor;
- SetPortWindowPort(wnd);
- aglGetVersion(&major, &minor);
- fprintf(stderr, "GL %d.%d\n", major, minor);*/
- pf = aglChoosePixelFormat(NULL, 0, attrib);
- if (NULL == pf) return GL_TRUE;
- ctx->ctx = aglCreateContext(pf, NULL);
- if (NULL == ctx->ctx || AGL_NO_ERROR != aglGetError()) return GL_TRUE;
- aglDestroyPixelFormat(pf);
- /*aglSetDrawable(ctx, GetWindowPort(wnd));*/
- ctx->octx = aglGetCurrentContext();
- if (GL_FALSE == aglSetCurrentContext(ctx->ctx)) return GL_TRUE;
+ error = CGLChoosePixelFormat(attrib, &pf, &npix);
+ if (error) return GL_TRUE;
+ error = CGLCreateContext(pf, NULL, &ctx->ctx);
+ if (error) return GL_TRUE;
+ CGLReleasePixelFormat(pf);
+ ctx->octx = CGLGetCurrentContext();
+ error = CGLSetCurrentContext(ctx->ctx);
+ if (error) return GL_TRUE;
return GL_FALSE;
}
void DestroyContext (GLContext* ctx)
{
if (NULL == ctx) return;
- aglSetCurrentContext(ctx->octx);
- if (NULL != ctx->ctx) aglDestroyContext(ctx->ctx);
+ CGLSetCurrentContext(ctx->octx);
+ if (NULL != ctx->ctx) CGLReleaseContext(ctx->ctx);
}
/* ------------------------------------------------------------------------ */
From 08806061a4b00d285c7f3c488ac6ccc6ecc6fb71 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 7 Aug 2015 16:41:04 +1000
Subject: [PATCH 29/33] Refactoring wglewInit, glxewInit for better
consistency.
---
auto/src/glew_str_glx.c | 2 +-
auto/src/glew_str_wgl.c | 2 +-
auto/src/glewinfo_tail.c | 4 ++--
auto/src/glxew_tail.h | 5 +++--
auto/src/wglew_tail.h | 10 ++++++----
5 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/auto/src/glew_str_glx.c b/auto/src/glew_str_glx.c
index e841475..81827a6 100644
--- a/auto/src/glew_str_glx.c
+++ b/auto/src/glew_str_glx.c
@@ -9,7 +9,7 @@
#if defined(GLEW_MX)
GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name)
#else
-GLboolean glxewIsSupported (const char* name)
+GLboolean glxewContextIsSupported (const char* name)
#endif
{
const GLubyte* pos = (const GLubyte*)name;
diff --git a/auto/src/glew_str_wgl.c b/auto/src/glew_str_wgl.c
index 5463ef7..b4c1ca2 100644
--- a/auto/src/glew_str_wgl.c
+++ b/auto/src/glew_str_wgl.c
@@ -9,7 +9,7 @@
#if defined(GLEW_MX)
GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name)
#else
-GLboolean GLEWAPIENTRY wglewIsSupported (const char* name)
+GLboolean GLEWAPIENTRY wglewContextIsSupported (const char* name)
#endif
{
const GLubyte* pos = (const GLubyte*)name;
diff --git a/auto/src/glewinfo_tail.c b/auto/src/glewinfo_tail.c
index 8aed4d3..a5e9232 100644
--- a/auto/src/glewinfo_tail.c
+++ b/auto/src/glewinfo_tail.c
@@ -195,7 +195,7 @@ GLboolean glewCreateContext (struct createParams* params)
int contextAttrs[20];
int i;
- wglewContextInit();
+ wglewInit();
/* Intel HD 3000 has WGL_ARB_create_context, but not WGL_ARB_create_context_profile */
if (!wglewGetExtension("WGL_ARB_create_context"))
@@ -368,7 +368,7 @@ GLboolean glewCreateContext (struct createParams *params)
int contextAttrs[20];
int nelems, i;
- glxewContextInit();
+ glxewInit();
if (!glxewGetExtension("GLX_ARB_create_context"))
return GL_TRUE;
diff --git a/auto/src/glxew_tail.h b/auto/src/glxew_tail.h
index ddffffb..0b4518e 100644
--- a/auto/src/glxew_tail.h
+++ b/auto/src/glxew_tail.h
@@ -17,11 +17,12 @@ GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx,
GLEWAPI GLenum GLEWAPIENTRY glxewContextInit ();
GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const char *name);
+#define glxewInit() glxewContextInit()
+#define glxewIsSupported(x) glxewContextIsSupported(x)
+
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLXEW_GET_FUN(x) x
-GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
-
#endif /* GLEW_MX */
GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
diff --git a/auto/src/wglew_tail.h b/auto/src/wglew_tail.h
index 0e38466..7955925 100644
--- a/auto/src/wglew_tail.h
+++ b/auto/src/wglew_tail.h
@@ -14,12 +14,14 @@ GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx,
#else /* GLEW_MX */
-#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
-#define WGLEW_GET_FUN(x) x
-
GLEWAPI GLenum GLEWAPIENTRY wglewContextInit ();
GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const char *name);
-GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
+
+#define wglewInit() wglewContextInit()
+#define wglewIsSupported(x) wglewContextIsSupported(x)
+
+#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
+#define WGLEW_GET_FUN(x) x
#endif /* GLEW_MX */
From d4a0a8401c257b28ae7ae880a64b0185db19d66b Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 7 Aug 2015 16:53:47 +1000
Subject: [PATCH 30/33] Refactoring glxewIsSupported and wglewIsSupported for
backwards compatibility.
---
auto/src/glew_str_glx.c | 2 +-
auto/src/glew_str_wgl.c | 2 +-
auto/src/glxew_tail.h | 3 +--
auto/src/wglew_tail.h | 3 +--
4 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/auto/src/glew_str_glx.c b/auto/src/glew_str_glx.c
index 81827a6..e841475 100644
--- a/auto/src/glew_str_glx.c
+++ b/auto/src/glew_str_glx.c
@@ -9,7 +9,7 @@
#if defined(GLEW_MX)
GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name)
#else
-GLboolean glxewContextIsSupported (const char* name)
+GLboolean glxewIsSupported (const char* name)
#endif
{
const GLubyte* pos = (const GLubyte*)name;
diff --git a/auto/src/glew_str_wgl.c b/auto/src/glew_str_wgl.c
index b4c1ca2..5463ef7 100644
--- a/auto/src/glew_str_wgl.c
+++ b/auto/src/glew_str_wgl.c
@@ -9,7 +9,7 @@
#if defined(GLEW_MX)
GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name)
#else
-GLboolean GLEWAPIENTRY wglewContextIsSupported (const char* name)
+GLboolean GLEWAPIENTRY wglewIsSupported (const char* name)
#endif
{
const GLubyte* pos = (const GLubyte*)name;
diff --git a/auto/src/glxew_tail.h b/auto/src/glxew_tail.h
index 0b4518e..2b8b03c 100644
--- a/auto/src/glxew_tail.h
+++ b/auto/src/glxew_tail.h
@@ -15,10 +15,9 @@ GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx,
#else /* GLEW_MX */
GLEWAPI GLenum GLEWAPIENTRY glxewContextInit ();
-GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const char *name);
+GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
#define glxewInit() glxewContextInit()
-#define glxewIsSupported(x) glxewContextIsSupported(x)
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLXEW_GET_FUN(x) x
diff --git a/auto/src/wglew_tail.h b/auto/src/wglew_tail.h
index 7955925..432d615 100644
--- a/auto/src/wglew_tail.h
+++ b/auto/src/wglew_tail.h
@@ -15,10 +15,9 @@ GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx,
#else /* GLEW_MX */
GLEWAPI GLenum GLEWAPIENTRY wglewContextInit ();
-GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const char *name);
+GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
#define wglewInit() wglewContextInit()
-#define wglewIsSupported(x) wglewContextIsSupported(x)
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
#define WGLEW_GET_FUN(x) x
From 470652935c73d93e39ed36fe15ade79a2057fef1 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 7 Aug 2015 17:04:27 +1000
Subject: [PATCH 31/33] glxewInit and wglewInit for non-MX mode.
---
auto/src/glew_init_glx.c | 4 ++++
auto/src/glew_init_wgl.c | 4 ++++
auto/src/glxew_tail.h | 4 +---
auto/src/wglew_tail.h | 4 +---
4 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/auto/src/glew_init_glx.c b/auto/src/glew_init_glx.c
index d160249..b54cca3 100644
--- a/auto/src/glew_init_glx.c
+++ b/auto/src/glew_init_glx.c
@@ -12,7 +12,11 @@ GLboolean glxewGetExtension (const char* name)
return _glewSearchExtension(name, start, end);
}
+#ifdef GLEW_MX
GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST)
+#else
+GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST)
+#endif
{
int major, minor;
const GLubyte* extStart;
diff --git a/auto/src/glew_init_wgl.c b/auto/src/glew_init_wgl.c
index 7e76099..cc731fe 100644
--- a/auto/src/glew_init_wgl.c
+++ b/auto/src/glew_init_wgl.c
@@ -20,7 +20,11 @@ GLboolean GLEWAPIENTRY wglewGetExtension (const char* name)
return _glewSearchExtension(name, start, end);
}
+#ifdef GLEW_MX
GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST)
+#else
+GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST)
+#endif
{
GLboolean crippled;
const GLubyte* extStart;
diff --git a/auto/src/glxew_tail.h b/auto/src/glxew_tail.h
index 2b8b03c..e086253 100644
--- a/auto/src/glxew_tail.h
+++ b/auto/src/glxew_tail.h
@@ -14,11 +14,9 @@ GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx,
#else /* GLEW_MX */
-GLEWAPI GLenum GLEWAPIENTRY glxewContextInit ();
+GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
-#define glxewInit() glxewContextInit()
-
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLXEW_GET_FUN(x) x
diff --git a/auto/src/wglew_tail.h b/auto/src/wglew_tail.h
index 432d615..f48f36c 100644
--- a/auto/src/wglew_tail.h
+++ b/auto/src/wglew_tail.h
@@ -14,11 +14,9 @@ GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx,
#else /* GLEW_MX */
-GLEWAPI GLenum GLEWAPIENTRY wglewContextInit ();
+GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
-#define wglewInit() wglewContextInit()
-
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
#define WGLEW_GET_FUN(x) x
From 9e3e40d974580b59348d1b9215d45d6e7b294e30 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Fri, 7 Aug 2015 17:10:09 +1000
Subject: [PATCH 32/33] glxewInit and wglewInit fixup.
---
auto/src/glew_init_tail.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/auto/src/glew_init_tail.c b/auto/src/glew_init_tail.c
index 7ae7217..cc3a34f 100644
--- a/auto/src/glew_init_tail.c
+++ b/auto/src/glew_init_tail.c
@@ -34,21 +34,15 @@ GLboolean glewExperimental = GL_FALSE;
#if !defined(GLEW_MX)
-#if defined(_WIN32)
-extern GLenum GLEWAPIENTRY wglewContextInit (void);
-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
-extern GLenum GLEWAPIENTRY glxewContextInit (void);
-#endif /* _WIN32 */
-
GLenum GLEWAPIENTRY glewInit (void)
{
GLenum r;
r = glewContextInit();
if ( r != 0 ) return r;
#if defined(_WIN32)
- return wglewContextInit();
+ return wglewInit();
#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
- return glxewContextInit();
+ return glxewInit();
#else
return r;
#endif /* _WIN32 */
From f0067bb1151d36b37bd43948ce5a399844afb313 Mon Sep 17 00:00:00 2001
From: Nigel Stewart
Date: Mon, 10 Aug 2015 21:46:09 +1000
Subject: [PATCH 33/33] Bump version to 1.13.0, updated documentation.
---
auto/doc/index.html | 11 +-
auto/doc/log.html | 37 +-
auto/src/header.html | 5 +-
config/version | 2 +-
doc/advanced.html | 5 +-
doc/basic.html | 5 +-
doc/build.html | 5 +-
doc/credits.html | 5 +-
doc/glew.html | 1000 +++++++++++++++++++++---------------------
doc/glxew.html | 5 +-
doc/index.html | 16 +-
doc/install.html | 5 +-
doc/log.html | 42 +-
doc/wglew.html | 5 +-
14 files changed, 614 insertions(+), 534 deletions(-)
diff --git a/auto/doc/index.html b/auto/doc/index.html
index 8815623..7f288ff 100644
--- a/auto/doc/index.html
+++ b/auto/doc/index.html
@@ -13,7 +13,7 @@ Mac OS X, FreeBSD, Irix, and Solaris.
GLEW is distributed
as source and precompiled binaries.
The latest release is
-1.12.0[26-01-15]:
+1.13.0[08-10-15]:
@@ -27,8 +27,8 @@ The latest release is
Source |
|
-ZIP |
-TGZ |
+ZIP |
+TGZ
|
@@ -36,7 +36,7 @@ The latest release is
Binaries |
|
-Windows 32-bit and 64-bit
+Windows 32-bit and 64-bit
|
|
@@ -60,8 +60,8 @@ An up-to-date copy is also available using git
Unsupported snapshots are also available:
Supported Extensions
@@ -76,6 +76,7 @@ The latest release contains support for OpenGL 4.5 and the following extensions:
News
+- [08-10-15] GLEW 1.13.0 adds support for new extensions, fixes minor bugs
- [26-01-15] GLEW 1.12.0 fixes minor bugs and adds new extensions
- [08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
- [07-22-13] GLEW 1.10.0 adds support for OpenGL 4.4, new extensions
diff --git a/auto/doc/log.html b/auto/doc/log.html
index 0ec241a..616ec44 100644
--- a/auto/doc/log.html
+++ b/auto/doc/log.html
@@ -2,7 +2,42 @@
-- 1.12.0 [26-01-15]
+
- 1.13.0 [08-10-15]
+
+- Enhancements:
+
+- glxewInit, wglewInit
+
- glewinfo adds support for -version, -profile core|compatibility and -flag debug|forward parameters
+
- Improved cmake build support
+
+- New extensions:
+
+- GL_ARB_ES3_2_compatibility
+
- GL_ARB_fragment_shader_interlock
+
- GL_ARB_gpu_shader_int64
+
- GL_ARB_parallel_shader_compile
+
- GL_ARB_post_depth_coverage
+
- GL_ARB_sample_locations
+
- GL_ARB_shader_atomic_counter_ops
+
- GL_ARB_shader_ballot
+
- GL_ARB_shader_clock
+
- GL_ARB_shader_viewport_layer_array
+
- GL_ARB_sparse_texture2
+
- GL_ARB_sparse_texture_clamp
+
- GL_ARB_texture_filter_minmax
+
- GL_INTEL_framebuffer_CMAA
+
- GL_KHR_no_error
+
- GL_NV_conservative_raster_dilate
+
- GL_OVR_multiview
+
- GL_OVR_multiview2
+
+ - Bug fixes
+
+
+
+
+
+- 1.12.0 [01-26-15]
- New extensions:
diff --git a/auto/src/header.html b/auto/src/header.html
index 292c45d..f986557 100644
--- a/auto/src/header.html
+++ b/auto/src/header.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/config/version b/config/version
index b6a9753..b8e1df7 100644
--- a/config/version
+++ b/config/version
@@ -1,5 +1,5 @@
GLEW_MAJOR = 1
-GLEW_MINOR = 12
+GLEW_MINOR = 13
GLEW_MICRO = 0
GLEW_VERSION = $(GLEW_MAJOR).$(GLEW_MINOR).$(GLEW_MICRO)
GLEW_NAME = GLEW
diff --git a/doc/advanced.html b/doc/advanced.html
index f224727..8165a72 100644
--- a/doc/advanced.html
+++ b/doc/advanced.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/basic.html b/doc/basic.html
index e885b7d..038a155 100644
--- a/doc/basic.html
+++ b/doc/basic.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/build.html b/doc/build.html
index 832d390..ba0d681 100644
--- a/doc/build.html
+++ b/doc/build.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/credits.html b/doc/credits.html
index 05e1534..259ace5 100644
--- a/doc/credits.html
+++ b/doc/credits.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/glew.html b/doc/glew.html
index cc74afd..1b26e5f 100644
--- a/doc/glew.html
+++ b/doc/glew.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
diff --git a/doc/glxew.html b/doc/glxew.html
index 1ab8aee..576ddd3 100644
--- a/doc/glxew.html
+++ b/doc/glxew.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/index.html b/doc/index.html
index 80992bd..b9b3605 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
@@ -108,7 +107,7 @@ Mac OS X, FreeBSD, Irix, and Solaris.
GLEW is distributed
as source and precompiled binaries.
The latest release is
-1.12.0[26-01-15]:
+1.13.0[08-10-15]:
@@ -122,8 +121,8 @@ The latest release is
| Source |
|
-ZIP |
-TGZ |
+ZIP |
+TGZ
|
@@ -131,7 +130,7 @@ The latest release is
Binaries |
|
-Windows 32-bit and 64-bit
+Windows 32-bit and 64-bit
|
|
@@ -155,8 +154,8 @@ An up-to-date copy is also available using git
Unsupported snapshots are also available:
Supported Extensions
@@ -171,6 +170,7 @@ The latest release contains support for OpenGL 4.5 and the following extensions:
News
+- [08-10-15] GLEW 1.13.0 adds support for new extensions, fixes minor bugs
- [26-01-15] GLEW 1.12.0 fixes minor bugs and adds new extensions
- [08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
- [07-22-13] GLEW 1.10.0 adds support for OpenGL 4.4, new extensions
diff --git a/doc/install.html b/doc/install.html
index 9e575e4..4d00db8 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
diff --git a/doc/log.html b/doc/log.html
index e7e9dde..efa0a9f 100644
--- a/doc/log.html
+++ b/doc/log.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
@@ -97,7 +96,42 @@ THE POSSIBILITY OF SUCH DAMAGE.
-- 1.12.0 [26-01-15]
+
- 1.13.0 [08-10-15]
+
+- Enhancements:
+
+- glxewInit, wglewInit
+
- glewinfo adds support for -version, -profile core|compatibility and -flag debug|forward parameters
+
- Improved cmake build support
+
+- New extensions:
+
+- GL_ARB_ES3_2_compatibility
+
- GL_ARB_fragment_shader_interlock
+
- GL_ARB_gpu_shader_int64
+
- GL_ARB_parallel_shader_compile
+
- GL_ARB_post_depth_coverage
+
- GL_ARB_sample_locations
+
- GL_ARB_shader_atomic_counter_ops
+
- GL_ARB_shader_ballot
+
- GL_ARB_shader_clock
+
- GL_ARB_shader_viewport_layer_array
+
- GL_ARB_sparse_texture2
+
- GL_ARB_sparse_texture_clamp
+
- GL_ARB_texture_filter_minmax
+
- GL_INTEL_framebuffer_CMAA
+
- GL_KHR_no_error
+
- GL_NV_conservative_raster_dilate
+
- GL_OVR_multiview
+
- GL_OVR_multiview2
+
+ - Bug fixes
+
+
+
+
+
+- 1.12.0 [01-26-15]
- New extensions:
diff --git a/doc/wglew.html b/doc/wglew.html
index 9f6fc4d..903cb36 100644
--- a/doc/wglew.html
+++ b/doc/wglew.html
@@ -31,7 +31,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->
-
GLEW: The OpenGL Extension Wrangler Library
@@ -47,7 +46,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Latest Release: 1.12.0 |
+Latest Release: 1.13.0 |
|
|
|
@@ -73,7 +72,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
-Last Update: 26-01-15 |
+Last Update: 08-10-15 |
| | | | | | | | | | | | | | | | | | | | | |