diff options
author | Duck | 2019-12-16 14:04:24 +0000 |
---|---|---|
committer | Duck | 2019-12-16 14:04:24 +0000 |
commit | a6dd7494bc6f2f436e796d5515320bc7c529463f (patch) | |
tree | a49e1b1d7711f95fcde2554fc5854badd877295c | |
download | aur-a6dd7494bc6f2f436e796d5515320bc7c529463f.tar.gz |
GLEW 2.1.0
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 47 | ||||
-rw-r--r-- | egl+glx.patch | 154 |
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 */ |