RepositoryExternal.mk | 5 --- external/glew/UnpackedTarball_glew.mk | 7 ++++ external/glew/glew-ios.patch.1 | 19 ++++++++++++ include/vcl/OpenGLContext.hxx | 51 ++++++++++++++++++++++++++++++++-- 4 files changed, 76 insertions(+), 6 deletions(-)
New commits: commit 486b47ae45727402317bed047c80a6ab7e134491 Author: Tor Lillqvist <t...@collabora.com> Date: Tue Apr 8 14:21:41 2014 +0300 Make it compile for iOS and maybe Android, too Don't include X11 headers where there is no X. Include a copy of gluCheckExtension as there is no glu on either iOS nor Android. Change-Id: Idf387a4eda5a8410d1511d6e0db78c0742af5a99 diff --git a/include/vcl/OpenGLContext.hxx b/include/vcl/OpenGLContext.hxx index b62448a..220efb5 100644 --- a/include/vcl/OpenGLContext.hxx +++ b/include/vcl/OpenGLContext.hxx @@ -10,9 +10,13 @@ #ifndef VCL_OPENGL_CONTEXT_HXX #define VCL_OPENGL_CONTEXT_HXX +#include <string.h> + #include <GL/glew.h> #if defined( MACOSX ) +#elif defined( IOS ) +#elif defined( ANDROID ) #elif defined( UNX ) # include <prex.h> # include "GL/glxew.h" @@ -27,6 +31,8 @@ #include <GL/glext.h> #include <GL/wglext.h> #elif defined( MACOSX ) +#elif defined( IOS ) +#elif defined( ANDROID ) #elif defined( UNX ) #include <GL/glext.h> #define GLX_GLXEXT_PROTOTYPES 1 @@ -43,11 +49,50 @@ /// Holds the information of our new child window struct GLWindow { + // Copy of gluCheckExtension(), from the Apache-licensed + // https://code.google.com/p/glues/source/browse/trunk/glues/source/glues_registry.c + static GLboolean checkExtension(const GLubyte* extName, const GLubyte* extString) + { + GLboolean flag=GL_FALSE; + char* word; + char* lookHere; + char* deleteThis; + + if (extString==NULL) + { + return GL_FALSE; + } + + deleteThis=lookHere=(char*)malloc(strlen((const char*)extString)+1); + if (lookHere==NULL) + { + return GL_FALSE; + } + + /* strtok() will modify string, so copy it somewhere */ + strcpy(lookHere,(const char*)extString); + + while ((word=strtok(lookHere, " "))!=NULL) + { + if (strcmp(word,(const char*)extName)==0) + { + flag=GL_TRUE; + break; + } + lookHere=NULL; /* get next token */ + } + free((void*)deleteThis); + + return flag; + } + #if defined( _WIN32 ) HWND hWnd; HDC hDC; HGLRC hRC; #elif defined( MACOSX ) +#elif defined( IOS ) +#elif defined( ANDROID ) #elif defined( UNX ) Display* dpy; int screen; @@ -58,7 +103,7 @@ struct GLWindow XVisualInfo* vi; GLXContext ctx; - bool HasGLXExtension( const char* name ) { return gluCheckExtension( (const GLubyte*) name, (const GLubyte*) GLXExtensions ); } + bool HasGLXExtension( const char* name ) { return checkExtension( (const GLubyte*) name, (const GLubyte*) GLXExtensions ); } const char* GLXExtensions; #endif unsigned int bpp; @@ -67,12 +112,14 @@ struct GLWindow const GLubyte* GLExtensions; bool bMultiSampleSupported; - bool HasGLExtension( const char* name ) { return gluCheckExtension( (const GLubyte*) name, GLExtensions ); } + bool HasGLExtension( const char* name ) { return checkExtension( (const GLubyte*) name, GLExtensions ); } GLWindow() : #if defined( _WIN32 ) #elif defined( MACOSX ) +#elif defined( IOS ) +#elif defined( ANDROID ) #elif defined( UNX ) dpy(NULL), screen(0), commit 76c9cd64e03d16f5df0da35dba5bf7e1a91e0e9f Author: Tor Lillqvist <t...@collabora.com> Date: Tue Apr 8 14:19:34 2014 +0300 Include <Availability.h> to get __IPHONE_OS_VERSION_MIN_REQUIRED Change-Id: I0ef21ee7709cab05639935d70722973c9a18f93c diff --git a/external/glew/glew-ios.patch.1 b/external/glew/glew-ios.patch.1 index 9253ed3..b29f75b 100644 --- a/external/glew/glew-ios.patch.1 +++ b/external/glew/glew-ios.patch.1 @@ -1,12 +1,17 @@ -*- Mode:Diff -*- --- glew/include/GL/glew.h +++ glew/include/GL/glew.h -@@ -1180,6 +1180,10 @@ +@@ -1180,6 +1180,15 @@ /* ---------------------------------- GLU ---------------------------------- */ -+#if !defined(GLEW_NO_GLU) && defined(__APPLE__) && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -+#define GLEW_NO_GLU ++#ifndef GLEW_NO_GLU ++# ifdef __APPLE__ ++# include <Availability.h> ++# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) ++# define GLEW_NO_GLU ++# endif ++# endif +#endif + #ifndef GLEW_NO_GLU commit d3f63d4b3d75d5e1b0df3281a1bdf7be1729288e Author: Tor Lillqvist <t...@collabora.com> Date: Tue Apr 8 13:54:53 2014 +0300 No glu.h in OpenGL ES for iOS Change-Id: Ie0eb1f68d997c4f2bd37c9d7c2ff6feccbc7b8ce diff --git a/external/glew/UnpackedTarball_glew.mk b/external/glew/UnpackedTarball_glew.mk index 91ec240..1b100bc 100644 --- a/external/glew/UnpackedTarball_glew.mk +++ b/external/glew/UnpackedTarball_glew.mk @@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,glew,0)) $(eval $(call gb_UnpackedTarball_fix_end_of_line,glew,\ Makefile \ + include/GL/glew.h \ )) ifeq ($(OS)$(COM),WNTMSC) @@ -35,6 +36,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,glew,\ )) endif +ifeq ($(OS),IOS) +$(eval $(call gb_UnpackedTarball_add_patches,glew,\ + external/glew/glew-ios.patch.1 \ +)) +endif + ifeq ($(DISABLE_DYNLOADING),TRUE) $(eval $(call gb_UnpackedTarball_add_patches,glew,\ external/glew/glew-static-only.patch.1 \ diff --git a/external/glew/glew-ios.patch.1 b/external/glew/glew-ios.patch.1 new file mode 100644 index 0000000..9253ed3 --- /dev/null +++ b/external/glew/glew-ios.patch.1 @@ -0,0 +1,14 @@ +-*- Mode:Diff -*- +--- glew/include/GL/glew.h ++++ glew/include/GL/glew.h +@@ -1180,6 +1180,10 @@ + + /* ---------------------------------- GLU ---------------------------------- */ + ++#if !defined(GLEW_NO_GLU) && defined(__APPLE__) && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) ++#define GLEW_NO_GLU ++#endif ++ + #ifndef GLEW_NO_GLU + /* this is where we can safely include GLU */ + # if defined(__APPLE__) && defined(__MACH__) commit 65b27f8d1c23692426c9d90f546462b9e43fec24 Author: Tor Lillqvist <t...@collabora.com> Date: Tue Apr 8 13:36:30 2014 +0300 We now build GLEW always (unless a system one is used) So its headers are always there in workdir. Change-Id: I513b49da52c1f393c02b24c5bcf0f415e22e79d2 diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 3738fde..722e22f 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -228,10 +228,7 @@ endef endif # SYSTEM_CPPUNIT -ifeq ($(filter FREEBSD LINUX MACOSX WNT,$(OS)),) -gb_LinkTarget__use_glew := - -else ifneq ($(SYSTEM_GLEW),) +ifneq ($(SYSTEM_GLEW),) define gb_LinkTarget__use_glew $(call gb_LinkTarget_set_include,$(1),\ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits