[Libreoffice-commits] core.git: 4 commits - external/glew include/vcl RepositoryExternal.mk

Tor Lillqvist tml at collabora.com
Tue Apr 8 04:52:23 PDT 2014


 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 <tml at 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 <tml at 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 <tml at 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 <tml at 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),\


More information about the Libreoffice-commits mailing list