summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuck2019-12-16 14:04:24 +0000
committerDuck2019-12-16 14:04:24 +0000
commita6dd7494bc6f2f436e796d5515320bc7c529463f (patch)
treea49e1b1d7711f95fcde2554fc5854badd877295c
downloadaur-a6dd7494bc6f2f436e796d5515320bc7c529463f.tar.gz
GLEW 2.1.0
-rw-r--r--.SRCINFO22
-rw-r--r--PKGBUILD47
-rw-r--r--egl+glx.patch154
3 files changed, 223 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..cf1388994a9b
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,22 @@
+pkgbase = glew-egl-glx
+ pkgdesc = The OpenGL Extension Wrangler Library
+ pkgver = 2.1.0
+ pkgrel = 1
+ url = http://glew.sourceforge.net
+ arch = x86_64
+ license = BSD
+ license = MIT
+ license = GPL
+ depends = libxmu
+ depends = libxi
+ depends = glu
+ provides = glew
+ conflicts = glew
+ conflicts = glew-wayland
+ source = https://downloads.sourceforge.net/glew/glew-2.1.0.tgz
+ source = egl+glx.patch
+ sha256sums = 04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95
+ sha256sums = 73ad84f9e69fb5630fda13cd95f420f4c751ab9fbc3ea5b5aadd1184d27e0601
+
+pkgname = glew-egl-glx
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..d85128320d2b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Duck
+# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: SleepyDog
+
+_pkgbase=glew
+pkgname=glew-egl-glx
+pkgver=2.1.0
+pkgrel=1
+pkgdesc="The OpenGL Extension Wrangler Library"
+arch=('x86_64')
+url="http://glew.sourceforge.net" # no https available
+license=('BSD' 'MIT' 'GPL')
+depends=('libxmu' 'libxi' 'glu')
+conflicts=('glew' 'glew-wayland')
+provides=('glew')
+source=(https://downloads.sourceforge.net/${_pkgbase}/${_pkgbase}-${pkgver}.tgz
+ egl+glx.patch)
+sha256sums=('04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95'
+ '73ad84f9e69fb5630fda13cd95f420f4c751ab9fbc3ea5b5aadd1184d27e0601')
+
+prepare() {
+ cd ${_pkgbase}-${pkgver}
+
+ sed -i 's|lib64|lib|' config/Makefile.linux
+ sed -i '/^.PHONY: .*\.pc$/d' Makefile
+
+ patch -p1 <"${srcdir}/egl+glx.patch"
+}
+
+build() {
+ cd ${_pkgbase}-${pkgver}
+
+ make STRIP= glew.bin
+ mv bin/glewinfo bin/glxewinfo
+ make STRIP= SYSTEM=linux-egl glew.lib.shared bin/glewinfo
+ mv bin/glewinfo bin/eglewinfo
+}
+
+package() {
+ cd ${_pkgbase}-${pkgver}
+ make GLEW_DEST="${pkgdir}/usr" STRIP= SYSTEM=linux-egl install
+ install -D -m755 -t "${pkgdir}/usr/bin" bin/eglewinfo bin/glxewinfo bin/visualinfo
+ ln -s eglewinfo "${pkgdir}/usr/bin/glewinfo"
+ install -D -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/egl+glx.patch b/egl+glx.patch
new file mode 100644
index 000000000000..11c44c5672ae
--- /dev/null
+++ b/egl+glx.patch
@@ -0,0 +1,154 @@
+--- a/src/glew.c
++++ b/src/glew.c
+@@ -36,11 +36,12 @@
+ #include GLEW_INCLUDE
+ #endif
+
++#if defined(GLEW_EGL)
++# include <GL/eglew.h>
++#endif
+ #if defined(GLEW_OSMESA)
+ # define GLAPI extern
+ # include <GL/osmesa.h>
+-#elif defined(GLEW_EGL)
+-# include <GL/eglew.h>
+ #elif defined(_WIN32)
+ /*
+ * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus
+@@ -58,6 +59,17 @@
+ #include <stddef.h> /* For size_t */
+
+ #if defined(GLEW_EGL)
++static GLboolean __EGL_available = GL_FALSE;
++static void (*__EGL_GLX_getProcAddress (const GLubyte *name)) (void)
++{
++ void (*addr)(void);
++ if (__EGL_available == GL_TRUE)
++ {
++ addr = eglGetProcAddress((const char *)name);
++ if (addr) return addr;
++ }
++ return (*glXGetProcAddressARB)(name);
++}
+ #elif defined(GLEW_REGAL)
+
+ /* In GLEW_REGAL mode we call direcly into the linked
+@@ -163,7 +175,7 @@
+ #elif defined(GLEW_OSMESA)
+ # define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name)
+ #elif defined(GLEW_EGL)
+-# define glewGetProcAddress(name) eglGetProcAddress((const char *)name)
++# define glewGetProcAddress(name) __EGL_GLX_getProcAddress(name)
+ #elif defined(_WIN32)
+ # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
+ #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
+@@ -17358,9 +17370,7 @@
+ }
+
+
+-#if defined(GLEW_OSMESA)
+-
+-#elif defined(GLEW_EGL)
++#if defined(GLEW_EGL)
+
+ PFNEGLCHOOSECONFIGPROC __eglewChooseConfig = NULL;
+ PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers = NULL;
+@@ -18343,20 +18353,32 @@
+
+ GLenum eglewInit (EGLDisplay display)
+ {
++ GLuint dot;
+ EGLint major, minor;
++ const GLubyte* version;
+ const GLubyte* extStart;
+ const GLubyte* extEnd;
+ PFNEGLINITIALIZEPROC initialize = NULL;
+ PFNEGLQUERYSTRINGPROC queryString = NULL;
+
+ /* Load necessary entry points */
+- initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize");
+- queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString");
++ initialize = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize");
++ queryString = (PFNEGLQUERYSTRINGPROC) eglGetProcAddress("eglQueryString");
+ if (!initialize || !queryString)
+ return 1;
+
+ /* query EGK version */
+- if (initialize(display, &major, &minor) != EGL_TRUE)
++ if (display == EGL_NO_DISPLAY)
++ {
++ major = 0;
++ minor = 0;
++ version = (const GLubyte*) queryString(display, EGL_VERSION);
++ dot = _glewStrCLen(version, '.');
++ if (dot == 0) return 1;
++ major = version[dot-1]-'0';
++ minor = version[dot+1]-'0';
++ }
++ else if (initialize(display, &major, &minor) != EGL_TRUE)
+ return 1;
+
+ EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
+@@ -18804,6 +18826,10 @@
+ return GLEW_OK;
+ }
+
++#endif /* GLEW_EGL */
++
++#if defined(GLEW_OSMESA)
++
+ #elif defined(_WIN32)
+
+ PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL = NULL;
+@@ -20862,13 +20888,22 @@
+ GLenum r;
+ #if defined(GLEW_EGL)
+ PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL;
++ EGLDisplay display;
++ getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) eglGetProcAddress("eglGetCurrentDisplay");
++ if (getCurrentDisplay)
++ {
++ display = getCurrentDisplay();
++ if (display != EGL_NO_DISPLAY) __EGL_available = GL_TRUE;
++ }
++ else display = EGL_NO_DISPLAY;
+ #endif
+ r = glewContextInit();
+ if ( r != 0 ) return r;
+ #if defined(GLEW_EGL)
+- getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay");
+- return eglewInit(getCurrentDisplay());
+-#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__)
++ if (display != EGL_NO_DISPLAY)
++ return eglewInit(display);
++#endif
++#if defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__)
+ return r;
+ #elif defined(_WIN32)
+ return wglewInit();
+@@ -27059,7 +27094,7 @@
+ return ret;
+ }
+
+-#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
++#elif !defined(GLEW_OSMESA) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+
+ GLboolean glxewIsSupported (const char* name)
+ {
+@@ -27615,7 +27650,9 @@
+ return ret;
+ }
+
+-#elif defined(GLEW_EGL)
++#endif
++
++#if defined(GLEW_EGL)
+
+ GLboolean eglewIsSupported (const char* name)
+ {
+@@ -28578,4 +28615,4 @@
+ return ret;
+ }
+
+-#endif /* _WIN32 */
++#endif /* GLEW_EGL */