dilfridge 14/09/16 09:14:01 Added: libreoffice-4.3.1.2-implement--with-system-coinmp.patch libreoffice-4.3.1.2-upgrade-to-libgltf-0.0.1.patch libreoffice-4.3.1.2-implement--with-system-gltf.patch libreoffice-4.3.1.2-handle-collada-libs-seperately.patch Log: Version bump, thanks to Andreas Sturmlechner (Portage version: 2.2.12/cvs/Linux x86_64, signed Manifest commit with key 84AD142F)
Revision Changes Path 1.1 app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-coinmp.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-coinmp.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-coinmp.patch?rev=1.1&content-type=text/plain Index: libreoffice-4.3.1.2-implement--with-system-coinmp.patch =================================================================== >From d85f513934bb5735a2c0c343fbe7dc2b9c11af3e Mon Sep 17 00:00:00 2001 From: Rene Engelhard <r...@debian.org> Date: Wed, 6 Aug 2014 00:03:21 +0200 Subject: [PATCH] implement --with-system-coinmp Change-Id: I02928097f049e8f3cbefbc872b570b2d2b072658 --- RepositoryExternal.mk | 15 +++++++++++++++ config_host.mk.in | 3 +++ configure.ac | 16 ++++++++++++++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index a9c9e53..1961829 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -2250,6 +2250,8 @@ endif # ENABLE_LPSOLVE ifneq ($(ENABLE_COINMP),) +ifneq ($(SYSTEM_COINMP),TRUE) + define gb_LinkTarget__use_coinmp $(call gb_LinkTarget_use_package,$(1),coinmp) ifeq ($(COM),MSC) @@ -2279,6 +2281,19 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\ coinmp \ )) +else # SYSTEM_COINMP + +define gb_LinkTarget__use_coinmp +$(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ + $(COINMP_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1),$(COINMP_LIBS)) + +endef + +endif + else gb_LinkTarget__use_coinmp := diff --git a/config_host.mk.in b/config_host.mk.in --- a/config_host.mk.in +++ b/config_host.mk.in @@ -109,6 +109,9 @@ export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@ export ENABLE_CHART_TESTS=@ENABLE_CHART_TESTS@ export ENABLE_CMIS=@ENABLE_CMIS@ export ENABLE_COINMP=@ENABLE_COINMP@ +export SYSTEM_COINMP=@SYSTEM_COINMP@ +export COINMP_CFLAGS=@COINMP_CFLAGS@ +export COINMP_LIBS=@COINMP_LIBS@ export ENABLE_COLLADA=@ENABLE_COLLADA@ export ENABLE_CRASHDUMP=@ENABLE_CRASHDUMP@ export ENABLE_CUPS=@ENABLE_CUPS@ diff --git a/configure.ac b/configure.ac index e91773f..3aadd12 100644 --- a/configure.ac +++ b/configure.ac @@ -1867,6 +1867,11 @@ AC_ARG_WITH(system-lpsolve, [Use lpsolve already on system.]),, [with_system_lpsolve="$with_system_libs"]) +AC_ARG_WITH(system-coinmp, + AS_HELP_STRING([--with-system-coinmp], + [Use CoinMP already on system.]),, + [with_system_coinmp="$with_system_libs"]) + AC_ARG_WITH(system-liblangtag, AS_HELP_STRING([--with-system-liblangtag], [Use liblangtag library already on system.]),, @@ -9661,12 +9666,19 @@ AC_MSG_CHECKING([whether to build with CoinMP]) if test "$enable_coinmp" != "no"; then ENABLE_COINMP=TRUE AC_MSG_RESULT([yes]) - # Should we check for system CoinMP ? How to do that ? - BUILD_TYPE="$BUILD_TYPE COINMP" + if test "$with_system_coinmp" = "yes"; then + SYSTEM_COINMP=TRUE + PKG_CHECK_MODULES( COINMP, coinmp ) + else + BUILD_TYPE="$BUILD_TYPE COINMP" + fi else AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_COINMP) +AC_SUBST(SYSTEM_COINMP) +AC_SUBST(COINMP_CFLAGS) +AC_SUBST(COINMP_LIBS) ENABLE_LPSOLVE= AC_MSG_CHECKING([whether to build with lpsolve]) -- 1.7.1 1.1 app-office/libreoffice/files/libreoffice-4.3.1.2-upgrade-to-libgltf-0.0.1.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-upgrade-to-libgltf-0.0.1.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-upgrade-to-libgltf-0.0.1.patch?rev=1.1&content-type=text/plain Index: libreoffice-4.3.1.2-upgrade-to-libgltf-0.0.1.patch =================================================================== >From d431986bd49081581e86444af124d1d2ce90a407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolnai=20Tam=C3=A1s?= <tamas.zol...@collabora.com> Date: Fri, 29 Aug 2014 22:41:26 +0200 Subject: [PATCH] Upgrade libgltf to 0.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit News in this version: - Solve some limitations of walkthrough mode (fdo#81425) - Multisampling (better rendering quality, mainly at the edges) - Better error handling (no crash in case of invalid input file) Reviewed-on: https://gerrit.libreoffice.org/11179 Reviewed-by: Zolnai Tamás <tamas.zol...@collabora.com> Tested-by: Zolnai Tamás <tamas.zol...@collabora.com> Conflicts: download.lst external/libgltf/UnpackedTarball_libgltf.mk external/libgltf/pathces/append_shader_version.patch external/libgltf/pathces/missing_include.patch vcl/source/opengl/OpenGLContext.cxx Change-Id: I46fdf56b00476614487fbcc04178e43e33a01794 Reviewed-on: https://gerrit.libreoffice.org/11194 Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> --- RepositoryExternal.mk | 8 ----- avmedia/source/opengl/oglframegrabber.hxx | 4 --- avmedia/source/opengl/oglplayer.cxx | 16 ++++++++-- avmedia/source/opengl/oglplayer.hxx | 6 ++-- avmedia/source/opengl/oglwindow.cxx | 36 +++++++++++---------- avmedia/source/opengl/oglwindow.hxx | 6 +--- configure.ac | 2 +- download.lst | 4 +-- external/libgltf/ExternalProject_libgltf.mk | 2 ++ external/libgltf/UnpackedTarball_libgltf.mk | 2 -- .../libgltf/pathces/append_shader_version.patch | 37 ---------------------- external/libgltf/pathces/missing_include.patch | 11 ------- include/vcl/opengl/OpenGLContext.hxx | 2 ++ vcl/source/opengl/OpenGLContext.cxx | 5 +++ 14 files changed, 48 insertions(+), 93 deletions(-) delete mode 100644 external/libgltf/pathces/append_shader_version.patch delete mode 100644 external/libgltf/pathces/missing_include.patch diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index cd99108..f194fcb 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3303,11 +3303,6 @@ $(call gb_LinkTarget_use_external_project,$(1),libgltf) endef -define gb_ExternalProject__use_libgltf -$(call gb_ExternalProject_use_external_project,$(1),libgltf) - -endef - else # SYSTEM_LIBGLTF define gb_LinkTarget__use_libgltf @@ -3316,9 +3311,6 @@ $(call gb_LinkTarget_set_include,$(1),\ $(LIBGLTF_CFLAGS) \ ) $(call gb_LinkTarget_add_libs,$(1),$(LIBGLTF_LIBS)) -$(call gb_LinkTarget_add_defs,$(1),\ - -DSYSTEM_LIBGLTF \ -) endef diff --git a/avmedia/source/opengl/oglframegrabber.hxx b/avmedia/source/opengl/oglframegrabber.hxx index 0d38224..5beb15b 100644 --- a/avmedia/source/opengl/oglframegrabber.hxx +++ b/avmedia/source/opengl/oglframegrabber.hxx @@ -14,11 +14,7 @@ #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/media/XFrameGrabber.hpp> -#ifdef SYSTEM_LIBGLTF -#include <libgltf/libgltf.h> -#else #include <libgltf.h> -#endif namespace avmedia { namespace ogl { diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx index a052dc9..d2e600b 100644 --- a/avmedia/source/opengl/oglplayer.cxx +++ b/avmedia/source/opengl/oglplayer.cxx @@ -269,6 +269,12 @@ uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( c return uno::Reference< media::XPlayerWindow >(); } + if( !m_aContext.supportMultiSampling() ) + { + SAL_WARN("avmedia.opengl", "Context does not support multisampling!"); + return uno::Reference< media::XPlayerWindow >(); + } + if( !lcl_CheckOpenGLRequirements() ) { SAL_WARN("avmedia.opengl", "Your platform does not have the minimal OpenGL requiremenets!"); @@ -287,7 +293,7 @@ uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( c releaseInputFiles(); if( nRet != 0 ) { - SAL_WARN("avmedia.opengl", "Error occured while parsing *.json file! Error code: " << nRet); + SAL_WARN("avmedia.opengl", "Error occured while setting up the scene! Error code: " << nRet); return uno::Reference< media::XPlayerWindow >(); } // The background color is white by default, but we need to separate the @@ -309,6 +315,12 @@ uno::Reference< media::XFrameGrabber > SAL_CALL OGLPlayer::createFrameGrabber() return uno::Reference< media::XFrameGrabber >(); } + if( !m_aContext.supportMultiSampling() ) + { + SAL_WARN("avmedia.opengl", "Context does not support multisampling!"); + return uno::Reference< media::XFrameGrabber >(); + } + if( !lcl_CheckOpenGLRequirements() ) { SAL_WARN("avmedia.opengl", "Your platform does not have the minimal OpenGL requiremenets!"); @@ -324,7 +336,7 @@ uno::Reference< media::XFrameGrabber > SAL_CALL OGLPlayer::createFrameGrabber() releaseInputFiles(); if( nRet != 0 ) { - SAL_WARN("avmedia.opengl", "Error occured while parsing *.json file! Error code: " << nRet); + SAL_WARN("avmedia.opengl", "Error occured while setting up the scene! Error code: " << nRet); return uno::Reference< media::XFrameGrabber >(); } glClearColor(0.5f, 0.5f, 0.5f, 0.5f); diff --git a/avmedia/source/opengl/oglplayer.hxx b/avmedia/source/opengl/oglplayer.hxx index 52aa395..465ed6b 100644 --- a/avmedia/source/opengl/oglplayer.hxx +++ b/avmedia/source/opengl/oglplayer.hxx @@ -14,11 +14,9 @@ #include <cppuhelper/basemutex.hxx> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/media/XPlayer.hpp> -#ifdef SYSTEM_LIBGLTF -#include <libgltf/libgltf.h> -#else + #include <libgltf.h> -#endif + #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/timer.hxx> diff --git a/avmedia/source/opengl/oglwindow.cxx b/avmedia/source/opengl/oglwindow.cxx index a770ff5..1092483 100644 --- a/avmedia/source/opengl/oglwindow.cxx +++ b/avmedia/source/opengl/oglwindow.cxx @@ -23,7 +23,6 @@ OGLWindow::OGLWindow( glTFHandle& rHandle, OpenGLContext& rContext, Window& rEve , meZoomLevel( media::ZoomLevel_ORIGINAL ) , m_aLastMousePos(Point(0,0)) , m_bIsOrbitMode( false ) - , m_fCameraDistance(0.0) { } @@ -267,15 +266,15 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent) glm::vec3 vMove = vView-vEye; vMove = glm::normalize(vMove); vMove *= 25.0f; - glm::vec3 vStrafe = glm::cross(vView-vEye, vUp); + glm::vec3 vStrafe = glm::cross(vMove, vUp); vStrafe = glm::normalize(vStrafe); vStrafe *= 25.0f; - glm::vec3 vMup = glm::cross(vView-vEye,glm::vec3(1.0f,0.0f,0.0f) ); - vMup = glm::normalize(vMup); - vMup *= 25.0f; + glm::vec3 vMup = vUp * 25.0f; if( !m_bIsOrbitMode ) { + if(nCode == KEY_E)vMoveBy += vMup*(0.0005f*fModelSize); + if(nCode == KEY_Q)vMoveBy -= vMup*(0.0005f*fModelSize); if(nCode == KEY_W)vMoveBy += vMove*(0.0005f*fModelSize); if(nCode == KEY_S)vMoveBy -= vMove*(0.0005f*fModelSize); if(nCode == KEY_A)vMoveBy -= vStrafe*(0.0005f*fModelSize); @@ -283,15 +282,24 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent) } else { - if(nCode == KEY_E)vMoveBy += vMove*(0.0005f*fModelSize); - if(nCode == KEY_Q)vMoveBy -= vMove*(0.0005f*fModelSize); + bool bZoomIn = false; + bool bZoomOut = false; + if(nCode == KEY_E) + { + vMoveBy += vMove*(0.0005f*fModelSize); + bZoomIn = true; + } + if(nCode == KEY_Q) + { + vMoveBy -= vMove*(0.0005f*fModelSize); + bZoomOut = true; + } // Limit zooming in orbit mode - m_fCameraDistance += vMoveBy.z; - if ((m_fCameraDistance < 0.5 * fModelSize && vMoveBy.z < 0.0 ) || - (m_fCameraDistance > 2 * fModelSize && vMoveBy.z > 0.0 )) + float fCameraDistFromModelGlobe = glm::length(vEye + vMoveBy - vView) - fModelSize / 2.0f; + if ((fCameraDistFromModelGlobe < 0.5 * fModelSize && bZoomIn ) || + (fCameraDistFromModelGlobe > 2 * fModelSize && bZoomOut )) { - m_fCameraDistance -= vMoveBy.z; vMoveBy = glm::vec3(0.0); } } @@ -333,12 +341,6 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent) { gltf_orbit_mode_start(&m_rHandle); m_bIsOrbitMode = true; - // Set default camera distance - glm::vec3 vEye; - glm::vec3 vView; - glm::vec3 vUp; - gltf_get_camera_pos(&m_rHandle, &vEye,&vView,&vUp); - m_fCameraDistance = vEye.z - gltf_get_model_center_pos(&m_rHandle)->z - (gltf_get_model_size(&m_rHandle)/2.0); } } else if(nCode == KEY_F) diff --git a/avmedia/source/opengl/oglwindow.hxx b/avmedia/source/opengl/oglwindow.hxx index ae86083..8b15813 100644 --- a/avmedia/source/opengl/oglwindow.hxx +++ b/avmedia/source/opengl/oglwindow.hxx @@ -17,11 +17,8 @@ #include <com/sun/star/media/XPlayerWindow.hpp> #include <com/sun/star/media/ZoomLevel.hpp> -#ifdef SYSTEM_LIBGLTF -#include <libgltf/libgltf.h> -#else #include <libgltf.h> -#endif + #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/syschild.hxx> @@ -77,7 +74,6 @@ private: com::sun::star::media::ZoomLevel meZoomLevel; Point m_aLastMousePos; bool m_bIsOrbitMode; - double m_fCameraDistance; }; } // namespace ogl diff --git a/configure.ac b/configure.ac index b6e8124..9cd589b 100644 --- a/configure.ac +++ b/configure.ac @@ -10572,7 +10572,7 @@ if test "x$enable_gltf" != "xno" -a $_os != Darwin -a $_os != iOS -a $_os != And AC_DEFINE(HAVE_FEATURE_GLTF,1) if test "$with_system_libgltf" = "yes"; then SYSTEM_LIBGLTF=TRUE - PKG_CHECK_MODULES( LIBGLTF, libgltf-0.0 ) + PKG_CHECK_MODULES( LIBGLTF, [libgltf-0.0 >= 0.0.1] ) else BUILD_TYPE="$BUILD_TYPE LIBGLTF" fi diff --git a/download.lst b/download.lst index bc2b383..f413a57 100644 --- a/download.lst +++ b/download.lst @@ -87,8 +87,8 @@ export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip export LIBEOT_MD5SUM := aa24f5dd2a2992f4a116aa72af817548 export LIBEOT_TARBALL := libeot-0.01.tar.bz2 export LIBEXTTEXTCAT_TARBALL := ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2 -export LIBGLTF_MD5SUM := ca5436e916bfe70694adfe2607782786 -export LIBGLTF_TARBALL := libgltf-0.0.0.tar.bz2 +export LIBGLTF_MD5SUM := 03821c9c827e647fb5fedb12496e0067 +export LIBGLTF_TARBALL := libgltf-0.0.1.tar.bz2 export LIBLANGTAG_TARBALL := 36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 export LIBXMLSEC_TARBALL := 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz export LIBXML_TARBALL := 9c0cfef285d5c4a5c80d00904ddab380-libxml2-2.9.1.tar.gz diff --git a/external/libgltf/ExternalProject_libgltf.mk b/external/libgltf/ExternalProject_libgltf.mk index 548487b..62e25a3 100644 --- a/external/libgltf/ExternalProject_libgltf.mk +++ b/external/libgltf/ExternalProject_libgltf.mk @@ -63,6 +63,8 @@ $(call gb_ExternalProject_get_state_target,libgltf,build) : export CPPFLAGS='$(libgltf_CPPFLAGS)' \ && export PKG_CONFIG="" \ && ./configure \ + --disable-shared \ + --enable-static \ --with-pic \ --disable-debug \ --disable-werror \ diff --git a/external/libgltf/UnpackedTarball_libgltf.mk b/external/libgltf/UnpackedTarball_libgltf.mk index 42c821b..176c1d1 100644 --- a/external/libgltf/UnpackedTarball_libgltf.mk +++ b/external/libgltf/UnpackedTarball_libgltf.mk @@ -16,8 +16,6 @@ $(eval $(call gb_UnpackedTarball_set_patchflags,libgltf,--binary)) $(eval $(call gb_UnpackedTarball_set_patchlevel,libgltf,1)) $(eval $(call gb_UnpackedTarball_add_patches,libgltf,\ - external/libgltf/pathces/missing_include.patch \ - external/libgltf/pathces/append_shader_version.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libgltf/pathces/append_shader_version.patch b/external/libgltf/pathces/append_shader_version.patch deleted file mode 100644 index 27f0cc6..0000000 --- a/external/libgltf/pathces/append_shader_version.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -ur libgltf.org/src/Shaders.cpp libgltf/src/Shaders.cpp ---- libgltf.org/src/Shaders.cpp 2014-08-18 09:19:48.323955939 +0200 -+++ libgltf/src/Shaders.cpp 2014-08-18 09:20:46.711953465 +0200 -@@ -11,6 +11,7 @@ - - #include <GL/glew.h> - #include <cstdio> -+#include <cstring> - - namespace libgltf - { -@@ -166,7 +167,24 @@ - unsigned int shaderId) - { - GLint iGLSize = iSize; -- glShaderSource(shaderId, 1, &pShader, &iGLSize); -+ if( strstr(pShader,"#version") == 0 ) -+ { -+ const GLchar* aSources[] = { -+ "#version 130\n", -+ pShader, -+ }; -+ -+ const GLint aSizes[] = { -+ strlen("#version 130\n"), -+ iGLSize, -+ }; -+ -+ glShaderSource(shaderId, 2, &aSources[0], &aSizes[0]); -+ } -+ else -+ { -+ glShaderSource(shaderId, 1, &pShader, &iGLSize); -+ } - glCompileShader(shaderId); - int iStatus = 0; - glGetShaderiv(shaderId, GL_COMPILE_STATUS, &iStatus); diff --git a/external/libgltf/pathces/missing_include.patch b/external/libgltf/pathces/missing_include.patch deleted file mode 100644 index 8b05224..0000000 --- a/external/libgltf/pathces/missing_include.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur libgltf.org/src/Shaders.cpp libgltf/src/Shaders.cpp ---- libgltf.org/src/Shaders.cpp 2014-08-05 11:40:30.387537876 +0200 -+++ libgltf/src/Shaders.cpp 2014-08-05 11:41:13.887536123 +0200 -@@ -10,6 +10,7 @@ - #include "Shaders.h" - - #include <GL/glew.h> -+#include <cstdio> - - namespace libgltf - { diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index 8a7eb55..f1e0bd2 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -166,6 +166,8 @@ public: return mbInitialized; } + bool supportMultiSampling() const; + static SystemWindowData generateWinData(Window* pParent); private: SAL_DLLPRIVATE bool initWindow(); diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index 974f913..338edc3 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -833,4 +833,9 @@ void OpenGLContext::show() m_pWindow->Show(); } +bool OpenGLContext::supportMultiSampling() const +{ + return m_aGLWin.bMultiSampleSupported; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- 2.1.0 1.1 app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-gltf.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-gltf.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-implement--with-system-gltf.patch?rev=1.1&content-type=text/plain Index: libreoffice-4.3.1.2-implement--with-system-gltf.patch =================================================================== >From 2378f45d70c9ce4a093fd6b09216c1cd4563ebe2 Mon Sep 17 00:00:00 2001 From: Rene Engelhard <r...@debian.org> Date: Tue, 5 Aug 2014 20:05:35 +0200 Subject: [PATCH] implement --with-system-gltf Change-Id: Ic842006b28f8043bcbbaa81ab5a20e15aa52ac82 (cherry picked from commit 97bda8e081fd746e9ef743b165b5bf621fc21fbb) --- RepositoryExternal.mk | 18 ++++++++++++++++++ avmedia/source/opengl/oglframegrabber.hxx | 4 ++++ avmedia/source/opengl/oglplayer.hxx | 4 ++++ avmedia/source/opengl/oglwindow.hxx | 4 ++++ config_host.mk.in | 3 +++ configure.ac | 15 ++++++++++++++- 6 files changed, 47 insertions(+), 1 deletion(-) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index ff50598..b42dce2 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3281,6 +3281,8 @@ endif # DESKTOP ifeq ($(ENABLE_GLTF),TRUE) +ifneq ($(SYSTEM_LIBGLTF),TRUE) + define gb_LinkTarget__use_libgltf $(call gb_LinkTarget_set_include,$(1),\ -I$(call gb_UnpackedTarball_get_dir,libgltf)/inc \ @@ -3306,6 +3308,22 @@ $(call gb_ExternalProject_use_external_project,$(1),libgltf) endef +else # SYSTEM_LIBGLTF + +define gb_LinkTarget__use_libgltf +$(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ + $(LIBGLTF_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1),$(LIBGLTF_LIBS)) +$(call gb_LinkTarget_add_defs,$(1),\ + -DSYSTEM_LIBGLTF \ +) + +endef + +endif # SYSTEN_LIBGLTF + define gb_LinkTarget__use_opencollada_parser $(call gb_LinkTarget_set_include,$(1),\ -I$(call gb_UnpackedTarball_get_dir,opencollada)/COLLADABaseUtils/include \ diff --git a/avmedia/source/opengl/oglframegrabber.hxx b/avmedia/source/opengl/oglframegrabber.hxx index 5beb15b..0d38224 100644 --- a/avmedia/source/opengl/oglframegrabber.hxx +++ b/avmedia/source/opengl/oglframegrabber.hxx @@ -14,7 +14,11 @@ #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/media/XFrameGrabber.hpp> +#ifdef SYSTEM_LIBGLTF +#include <libgltf/libgltf.h> +#else #include <libgltf.h> +#endif namespace avmedia { namespace ogl { diff --git a/avmedia/source/opengl/oglplayer.hxx b/avmedia/source/opengl/oglplayer.hxx index 03ad515..52aa395 100644 --- a/avmedia/source/opengl/oglplayer.hxx +++ b/avmedia/source/opengl/oglplayer.hxx @@ -14,7 +14,11 @@ #include <cppuhelper/basemutex.hxx> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/media/XPlayer.hpp> +#ifdef SYSTEM_LIBGLTF +#include <libgltf/libgltf.h> +#else #include <libgltf.h> +#endif #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/timer.hxx> diff --git a/avmedia/source/opengl/oglwindow.hxx b/avmedia/source/opengl/oglwindow.hxx index a68f667..ae86083 100644 --- a/avmedia/source/opengl/oglwindow.hxx +++ b/avmedia/source/opengl/oglwindow.hxx @@ -17,7 +17,11 @@ #include <com/sun/star/media/XPlayerWindow.hpp> #include <com/sun/star/media/ZoomLevel.hpp> +#ifdef SYSTEM_LIBGLTF +#include <libgltf/libgltf.h> +#else #include <libgltf.h> +#endif #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/syschild.hxx> diff --git a/config_host.mk.in b/config_host.mk.in index b7e5b6c..aec0fa5 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -127,6 +127,9 @@ export ENABLE_GRAPHITE=@ENABLE_GRAPHITE@ export ENABLE_ORCUS=@ENABLE_ORCUS@ export ENABLE_HARFBUZZ=@ENABLE_HARFBUZZ@ export ENABLE_GLTF=@ENABLE_GLTF@ +export SYSTEM_LIBGLTF=@SYSTEM_LIBGLTF@ +export LIBGLTF_CFLAGS=@LIBGLTF_CFLAGS@ +export LIBGLTF_LIBS=@LIBGLTF_LIBS@ export ENABLE_GSTREAMER=@ENABLE_GSTREAMER@ export ENABLE_GSTREAMER_0_10=@ENABLE_GSTREAMER_0_10@ export ENABLE_GTK3=@ENABLE_GTK3@ diff --git a/configure.ac b/configure.ac index 02791ca..63e067b 100644 --- a/configure.ac +++ b/configure.ac @@ -1552,6 +1552,11 @@ AC_ARG_WITH(system-jpeg, [Use jpeg already on system.]),, [with_system_jpeg=auto]) +AC_ARG_WITH(system-libgltf, + AS_HELP_STRING([--with-system-libgltf], + [Use libgltf already on system.]),, + [with_system_libgltf=auto]) + AC_ARG_WITH(system-clucene, AS_HELP_STRING([--with-system-clucene], [Use clucene already on system.]),, @@ -10561,7 +10566,12 @@ if test "x$enable_gltf" != "xno" -a $_os != Darwin -a $_os != iOS -a $_os != And ENABLE_GLTF=TRUE AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FEATURE_GLTF,1) - BUILD_TYPE="$BUILD_TYPE LIBGLTF" + if test "$with_system_libgltf" = "yes"; then + SYSTEM_LIBGLTF=TRUE + PKG_CHECK_MODULES( LIBGLTF, libgltf-0.0 ) + else + BUILD_TYPE="$BUILD_TYPE LIBGLTF" + fi # otherwise build fails in collada2gltf external because of std::shared_ptr if test "$have_std_shared_ptr" = "yes"; then BUILD_TYPE="$BUILD_TYPE COLLADA2GLTF" @@ -10570,6 +10580,9 @@ else AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_GLTF) +AC_SUBST(SYSTEM_LIBGLTF) +AC_SUBST(LIBGLTF_CFLAGS) +AC_SUBST(LIBGLTF_LIBS) # pdf import? AC_MSG_CHECKING([whether to build the PDF import feature]) -- 2.1.0 1.1 app-office/libreoffice/files/libreoffice-4.3.1.2-handle-collada-libs-seperately.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-handle-collada-libs-seperately.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.3.1.2-handle-collada-libs-seperately.patch?rev=1.1&content-type=text/plain Index: libreoffice-4.3.1.2-handle-collada-libs-seperately.patch =================================================================== >From 6d239ee19a4b1d9068fbd04b5a692c859142f613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolnai=20Tam=C3=A1s?= <tamas.zol...@collabora.com> Date: Fri, 29 Aug 2014 14:14:31 +0200 Subject: [PATCH] Handle collada libraries seperately: --disable-collada Depends on gltf support. (cherry picked from commit 191f0944fd8fc30493eda58c7adfdfa0b538f507) Conflicts: config_host.mk.in sd/source/ui/func/fuinsert.cxx Change-Id: Ief0452da3d03b0ddbca45272e5f5cd268691aeca Reviewed-on: https://gerrit.libreoffice.org/11193 Tested-by: Rene Engelhard <r...@debian.org> Reviewed-by: Rene Engelhard <r...@debian.org> --- RepositoryExternal.mk | 6 +++++- avmedia/Library_avmedia.mk | 5 +---- avmedia/source/framework/modeltools.cxx | 9 ++++++--- config_host.mk.in | 1 + config_host/config_features.h.in | 5 +++++ configure.ac | 23 +++++++++++++++++++---- include/avmedia/modeltools.hxx | 4 ++++ sd/source/ui/func/fuinsert.cxx | 9 +++++++++ 8 files changed, 50 insertions(+), 12 deletions(-) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index b42dce2..cd99108 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3324,6 +3324,8 @@ endef endif # SYSTEN_LIBGLTF +ifeq ($(ENABLE_COLLADA),TRUE) + define gb_LinkTarget__use_opencollada_parser $(call gb_LinkTarget_set_include,$(1),\ -I$(call gb_UnpackedTarball_get_dir,opencollada)/COLLADABaseUtils/include \ @@ -3354,7 +3356,9 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\ ) endef -endif +endif # ENABLE_COLLADA + +endif # ENABLE_GLTF ### Jars ############################################################ diff --git a/avmedia/Library_avmedia.mk b/avmedia/Library_avmedia.mk index 184c66c..7cc08fa 100644 --- a/avmedia/Library_avmedia.mk +++ b/avmedia/Library_avmedia.mk @@ -52,7 +52,7 @@ $(eval $(call gb_Library_add_exception_objects,avmedia,\ )) endif -ifneq (,$(filter COLLADA2GLTF,$(BUILD_TYPE))) +ifeq ($(ENABLE_COLLADA),TRUE) $(eval $(call gb_Library_set_warnings_not_errors,avmedia)) ifeq ($(OS),LINUX) @@ -68,9 +68,6 @@ $(eval $(call gb_Library_use_externals,avmedia,\ png \ )) -$(eval $(call gb_Library_add_defs,avmedia,\ - -DENABLE_COLLADA2GLTF \ -)) endif $(eval $(call gb_Library_add_exception_objects,avmedia,\ diff --git a/avmedia/source/framework/modeltools.cxx b/avmedia/source/framework/modeltools.cxx index 6119cb7..8c4251e 100644 --- a/avmedia/source/framework/modeltools.cxx +++ b/avmedia/source/framework/modeltools.cxx @@ -29,7 +29,9 @@ #include <boost/foreach.hpp> #include <boost/optional.hpp> -#ifdef ENABLE_COLLADA2GLTF +#include <config_features.h> + +#if HAVE_FEATURE_COLLADA #include <COLLADA2GLTFWriter.h> #include <GLTFAsset.h> #endif @@ -42,7 +44,7 @@ using namespace boost::property_tree; namespace avmedia { -#ifdef ENABLE_COLLADA2GLTF +#if HAVE_FEATURE_COLLADA static void lcl_UnzipKmz(const OUString& rSourceURL, const OUString& rOutputFolderURL, OUString& o_rDaeFileURL) { @@ -242,7 +244,8 @@ bool Embed3DModel( const uno::Reference<frame::XModel>& xModel, const OUString& rSourceURL, OUString& o_rEmbeddedURL) { OUString sSource = rSourceURL; -#ifdef ENABLE_COLLADA2GLTF + +#if HAVE_FEATURE_COLLADA if( !rSourceURL.endsWithIgnoreAsciiCase(".json") ) KmzDae2Gltf(rSourceURL, sSource); #endif diff --git a/config_host.mk.in b/config_host.mk.in index aec0fa5..36a6866 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -109,6 +109,7 @@ export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@ export ENABLE_CHART_TESTS=@ENABLE_CHART_TESTS@ export ENABLE_CMIS=@ENABLE_CMIS@ export ENABLE_COINMP=@ENABLE_COINMP@ +export ENABLE_COLLADA=@ENABLE_COLLADA@ export ENABLE_CRASHDUMP=@ENABLE_CRASHDUMP@ export ENABLE_CUPS=@ENABLE_CUPS@ export ENABLE_CURL=@ENABLE_CURL@ diff --git a/config_host/config_features.h.in b/config_host/config_features.h.in index 3fd1da5..f87ee27 100644 --- a/config_host/config_features.h.in +++ b/config_host/config_features.h.in @@ -142,4 +142,9 @@ */ #define HAVE_FEATURE_GLTF 0 +/* + * Whether we have COLLADA support. + */ +#define HAVE_FEATURE_COLLADA 0 + #endif diff --git a/configure.ac b/configure.ac index 63e067b..b6e8124 100644 --- a/configure.ac +++ b/configure.ac @@ -1395,6 +1395,10 @@ AC_ARG_ENABLE(gltf, AS_HELP_STRING([--disable-gltf], [Determines whether to build libraries related to glTF 3D model rendering.])) +AC_ARG_ENABLE(collada, + AS_HELP_STRING([--disable-collada], + [Disable collada support (Rendering 3D models stored in *.dae and *.kmz format).])) + dnl =================================================================== dnl Optional Packages (--with/without-) dnl =================================================================== @@ -10572,10 +10576,6 @@ if test "x$enable_gltf" != "xno" -a $_os != Darwin -a $_os != iOS -a $_os != And else BUILD_TYPE="$BUILD_TYPE LIBGLTF" fi - # otherwise build fails in collada2gltf external because of std::shared_ptr - if test "$have_std_shared_ptr" = "yes"; then - BUILD_TYPE="$BUILD_TYPE COLLADA2GLTF" - fi else AC_MSG_RESULT([no]) fi @@ -10584,6 +10584,21 @@ AC_SUBST(SYSTEM_LIBGLTF) AC_SUBST(LIBGLTF_CFLAGS) AC_SUBST(LIBGLTF_LIBS) +dnl =================================================================== +dnl Check whether to enable COLLADA support +dnl =================================================================== +AC_MSG_CHECKING([whether to enable COLLADA support]) +ENABLE_COLLADA= +if test "$enable_collada" != "no" -a "$ENABLE_GLTF" = "TRUE" -a "$have_std_shared_ptr" = "yes"; then + AC_MSG_RESULT([yes]) + ENABLE_COLLADA=TRUE + AC_DEFINE(HAVE_FEATURE_COLLADA,1) + BUILD_TYPE="$BUILD_TYPE COLLADA2GLTF" +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_COLLADA) + # pdf import? AC_MSG_CHECKING([whether to build the PDF import feature]) ENABLE_PDFIMPORT= diff --git a/include/avmedia/modeltools.hxx b/include/avmedia/modeltools.hxx index ed2de44..526b240 100644 --- a/include/avmedia/modeltools.hxx +++ b/include/avmedia/modeltools.hxx @@ -11,9 +11,13 @@ #include <com/sun/star/frame/XModel.hpp> #include <avmedia/avmediadllapi.h> +#include <config_features.h> + namespace avmedia { +#if HAVE_FEATURE_COLLADA bool KmzDae2Gltf(const OUString& rSourceURL, OUString& o_rOutput); +#endif bool AVMEDIA_DLLPUBLIC Embed3DModel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel>& xModel, diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index cd03700..9c1c4ad 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -789,10 +789,19 @@ void FuInsert3DModel::DoExecute( SfxRequest& ) sfx2::FileDialogHelper aDlg( ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); aDlg.SetTitle( "Insert 3D Model" ); + +#if HAVE_FEATURE_COLLADA aDlg.AddFilter( "All supported formats", "*.json;*.dae;*.kmz" ); +#else + aDlg.AddFilter( "All supported formats", "*.json" ); +#endif + aDlg.AddFilter( "JSON - GL Transmission Format", "*.json" ); + +#if HAVE_FEATURE_COLLADA aDlg.AddFilter( "DAE - COLLADA", "*.dae" ); aDlg.AddFilter( "KMZ - Keyhole Markup language Zipped", "*.kmz" ); +#endif OUString sURL; if( aDlg.Execute() == ERRCODE_NONE ) -- 2.1.0