[Libreoffice-commits] core.git: 2 commits - download.lst external/libgltf Makefile.fetch

Zolnai Tamás tamas.zolnai at collabora.com
Mon Jul 14 02:07:49 PDT 2014


 Makefile.fetch                                                                             |    2 
 download.lst                                                                               |    2 
 external/libgltf/UnpackedTarball_libgltf.mk                                                |   17 ++
 external/libgltf/patches/comma_at_end_of_enumerator_list.patch                             |   51 ++++++
 external/libgltf/patches/compiler_error_fixes.patch                                        |   41 +++++
 external/libgltf/patches/extend_get_bitmap_for_rgba_ones.patch                             |   76 +++++++++
 external/libgltf/patches/extra_semicolon.patch                                             |   18 ++
 external/libgltf/patches/fix_package_file.patch                                            |   13 +
 external/libgltf/patches/init_scene_set_handle.patch                                       |   80 ++++++++++
 external/libgltf/patches/libgltf_configure.patch                                           |   61 +++++++
 external/libgltf/patches/move_fps_closer_to_the_corner.patch                               |   12 +
 external/libgltf/patches/no_animation_in_orbit_mode.patch                                  |   43 +++++
 external/libgltf/patches/no_effect_of_set_looping.patch                                    |   14 +
 external/libgltf/patches/remove_config_h_in_dependencies.patch                             |   12 +
 external/libgltf/patches/stop_a_potential_memory_leak.patch                                |   27 +++
 external/libgltf/patches/walkthrough_mode_affects_orbit_mode_unexpectedly.patch            |   12 +
 external/libgltf/patches/wrong_animation_state_when_set_time_to_null.patch                 |   12 +
 external/libgltf/patches/wrong_duration_caused_by_uninitialized_member.patch               |   13 +
 external/libgltf/patches/wrong_media_time_at_first_run_caused_by_uninitilized_member.patch |   11 +
 external/libgltf/patches/wrong_media_time_caused_by_missing_fmod.patch                     |   14 +
 20 files changed, 529 insertions(+), 2 deletions(-)

New commits:
commit ae4004548adcdcbaa5979d58f7a3324674ae21cf
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Mon Jul 14 11:04:51 2014 +0200

    Revert "Update libgltf: various fixes, memory usage optimization"
    
    This reverts commit fc40081993d29c422fd19bb80f4d9db06b4dce0d.
    
    Some files are missing from the new tarball, so revert
    this until this is fixed.

diff --git a/download.lst b/download.lst
index 917d275..61ef420 100644
--- a/download.lst
+++ b/download.lst
@@ -87,7 +87,7 @@ export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip
 export LIBEOT_MD5SUM := aa24f5dd2a2992f4a116aa72af817548
 export LIBEOT_TARBALL := libeot-0.01.tar.bz2
 export LIBEXTTEXTCAT_TARBALL := 10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2
-export LIBGLTF_TARBALL := 2d18f7cf2d9268400179d3a6ae5dedd2-libgltf-0.0.0.tar.bz2
+export LIBGLTF_TARBALL := 9c8d3455e0d8ef51269784e9a473feeb-libgltf.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/UnpackedTarball_libgltf.mk b/external/libgltf/UnpackedTarball_libgltf.mk
index 176c1d1..f1e618c 100644
--- a/external/libgltf/UnpackedTarball_libgltf.mk
+++ b/external/libgltf/UnpackedTarball_libgltf.mk
@@ -16,6 +16,23 @@ $(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/patches/libgltf_configure.patch \
+	external/libgltf/patches/remove_config_h_in_dependencies.patch \
+	external/libgltf/patches/init_scene_set_handle.patch \
+	external/libgltf/patches/extend_get_bitmap_for_rgba_ones.patch \
+	external/libgltf/patches/wrong_duration_caused_by_uninitialized_member.patch \
+	external/libgltf/patches/wrong_media_time_caused_by_missing_fmod.patch \
+	external/libgltf/patches/wrong_animation_state_when_set_time_to_null.patch \
+	external/libgltf/patches/no_effect_of_set_looping.patch \
+	external/libgltf/patches/wrong_media_time_at_first_run_caused_by_uninitilized_member.patch \
+	external/libgltf/patches/no_animation_in_orbit_mode.patch \
+	external/libgltf/patches/walkthrough_mode_affects_orbit_mode_unexpectedly.patch \
+	external/libgltf/patches/move_fps_closer_to_the_corner.patch \
+	external/libgltf/patches/compiler_error_fixes.patch \
+	external/libgltf/patches/fix_package_file.patch \
+	external/libgltf/patches/comma_at_end_of_enumerator_list.patch \
+	external/libgltf/patches/extra_semicolon.patch \
+	external/libgltf/patches/stop_a_potential_memory_leak.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libgltf/patches/comma_at_end_of_enumerator_list.patch b/external/libgltf/patches/comma_at_end_of_enumerator_list.patch
new file mode 100644
index 0000000..7e336f7
--- /dev/null
+++ b/external/libgltf/patches/comma_at_end_of_enumerator_list.patch
@@ -0,0 +1,51 @@
+diff -ur libgltf.org/src/Common.h libgltf/src/Common.h
+--- libgltf.org/src/Common.h	2014-06-28 12:17:56.880068394 +0200
++++ libgltf/src/Common.h	2014-06-28 12:22:32.940078647 +0200
+@@ -86,7 +86,7 @@
+     DataType_FLOAT_MAT3                     = 0x8B5B,
+     DataType_FLOAT_MAT4                     = 0x8B5C,
+     DataType_SAMPLER_2D                     = 0x8B5E,
+-    DataType_SAMPLER_CUBE                   = 0x8B60,
++    DataType_SAMPLER_CUBE                   = 0x8B60
+ } DataType_E;
+ 
+ class Attribute
+@@ -119,7 +119,7 @@
+     LightSource_DIRECTIONAL   = 0x1,
+     LightSource_POINT         = 0x2,
+     LightSource_SPOT          = 0x3,
+-    LightSource_AMBIET        = 0x4,
++    LightSource_AMBIET        = 0x4
+ } LightSourceType_E;
+ 
+ class Light
+@@ -252,7 +252,7 @@
+     TextureType_DISPLACEMENT = 0x9,
+     TextureType_LIGHTMAP = 0xA,
+     TextureType_REFLECTION = 0xB,
+-    TextureType_UNKNOWN = 0xC,
++    TextureType_UNKNOWN = 0xC
+ } TextureType_E;
+ 
+ class MaterialProperty
+@@ -449,7 +449,7 @@
+     NodeType_Node        = 0x1,
+     NodeType_Mesh        = 0x2,
+     NodeType_Camera      = 0x4,
+-    NodeType_Light       = 0x8,
++    NodeType_Light       = 0x8
+ } NodeType_E;
+ 
+ class Node
+diff -ur libgltf.org/src/Texture.h libgltf/src/Texture.h
+--- libgltf.org/src/Texture.h	2014-06-28 12:17:56.880068394 +0200
++++ libgltf/src/Texture.h	2014-06-28 12:18:19.740069243 +0200
+@@ -24,7 +24,7 @@
+     TEXTURE_FILTER_MIN_BILINEAR,
+     TEXTURE_FILTER_MIN_NEAREST_MIPMAP,
+     TEXTURE_FILTER_MIN_BILINEAR_MIPMAP,
+-    TEXTURE_FILTER_MIN_TRILINEAR,
++    TEXTURE_FILTER_MIN_TRILINEAR
+ };
+ 
+ class Texture
diff --git a/external/libgltf/patches/compiler_error_fixes.patch b/external/libgltf/patches/compiler_error_fixes.patch
new file mode 100644
index 0000000..a2ff172
--- /dev/null
+++ b/external/libgltf/patches/compiler_error_fixes.patch
@@ -0,0 +1,41 @@
+diff -ur libgltf.org/src/Camera.cpp libgltf/src/Camera.cpp
+--- libgltf.org/src/Camera.cpp	2014-06-26 15:49:57.807687346 +0200
++++ libgltf/src/Camera.cpp	2014-06-26 15:50:46.195685296 +0200
+@@ -161,7 +161,7 @@
+     }
+     else
+     {
+-        if (abs(x) > 0.0001 || abs(y) > 0.0001 || abs(z) > 0.0001)
++        if (std::abs(x) > 0.0001 || std::abs(y) > 0.0001 || std::abs(z) > 0.0001)
+         {
+              bMoveCmeraModel = true;
+         }
+@@ -240,7 +240,7 @@
+ {
+     if (!bAerialView)
+         return;
+-    if (abs(horizontal) > planar || abs(vertical) > 0.0001)
++    if (std::abs(horizontal) > planar || std::abs(vertical) > 0.0001)
+     {
+         bRotateCameraModel = true;
+         fRotateCameraXSpeed = 0;
+@@ -275,7 +275,7 @@
+ void CPhysicalCamera::RotateCamera(double horizontal, double vertical,
+                                    double planar)
+ {
+-    if (abs(horizontal) > planar || abs(vertical) > 0.0001)
++    if (std::abs(horizontal) > planar || std::abs(vertical) > 0.0001)
+     {
+         bRotateCameraModel = true;
+     }
+diff -ur libgltf.org/src/Font.cpp libgltf/src/Font.cpp
+--- libgltf.org/src/Font.cpp	2014-06-26 15:49:57.807687346 +0200
++++ libgltf/src/Font.cpp	2014-06-26 15:50:57.619684812 +0200
+@@ -8,6 +8,7 @@
+ #include "Font.h"
+ 
+ #include <glm/gtc/matrix_transform.hpp>
++#include <cstdio>
+ 
+ using namespace std;
+ 
diff --git a/external/libgltf/patches/extend_get_bitmap_for_rgba_ones.patch b/external/libgltf/patches/extend_get_bitmap_for_rgba_ones.patch
new file mode 100644
index 0000000..8b9f3db
--- /dev/null
+++ b/external/libgltf/patches/extend_get_bitmap_for_rgba_ones.patch
@@ -0,0 +1,76 @@
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-23 18:49:46.603119797 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-23 19:00:17.583092627 +0200
+@@ -1735,28 +1735,29 @@
+ 
+ void RenderScene::setBitZoom(unsigned char* Dstbuffer,
+                              unsigned char* Srcbuffer,
+-                             glTFViewport* pViewport)
++                             glTFViewport* pViewport,
++                             int bufferDepth )
+ {
+     const int width = pViewport->width;
+     const int height = pViewport->height;
+-    const int newLineByte = (width * 3 + 3) / 4 * 4;
+-    const int lineByte = (width * SSAA * 3 + 3) / 4 * 4;
++    const int newLineByte = width * bufferDepth;
++    const int lineByte = width * SSAA * bufferDepth;
+     for (int i = 0; i < height; i++)
+     {
+         for (int j = 0; j < width; j++)
+-            for (int k = 0; k < 3; k++)
++            for (int k = 0; k < bufferDepth; k++)
+             {
+                 long xData = (long)(i * SSAA + 0.5);
+                 long yData = (long)(j * SSAA + 0.5);
+                 if((yData >= 0) && (yData < width * SSAA) &&
+                    (xData >= 0) && (xData < height * SSAA))
+                 {
+-                    *(Dstbuffer + i * newLineByte + j * 3 + k) =
+-                        *(Srcbuffer + xData * lineByte + yData * 3 + k);
++                    *(Dstbuffer + i * newLineByte + j * bufferDepth + k) =
++                        *(Srcbuffer + xData * lineByte + yData * bufferDepth + k);
+                 }
+                 else
+                 {
+-                    *(Dstbuffer + i * newLineByte + j * 3 + k) = 255;
++                    *(Dstbuffer + i * newLineByte + j * bufferDepth + k) = 255;
+                 }
+             }
+     }
+@@ -1782,12 +1783,20 @@
+     {
+         return;
+     }
+-    int imageSize = ((width + ((4 - (width % 4)) % 4)) *
+-                     height * 3) + 2;
++
++    int bufferDepth;
++    if( format == GL_RGB || format == GL_BGR )
++        bufferDepth = 3;
++    else if( format == GL_RGBA || format == GL_BGRA )
++        bufferDepth = 4;
++    else
++        return;
++
++    int imageSize = width * height * bufferDepth;
+     unsigned char *pbuffer = new unsigned char[imageSize];
+     glReadPixels(0, 0, width, height, format,
+                  GL_UNSIGNED_BYTE, pbuffer);
+-    setBitZoom(buffer, pbuffer, pViewport);
++    setBitZoom(buffer, pbuffer, pViewport, bufferDepth);
+     if (pbuffer)
+     {
+         delete [] pbuffer;
+diff -ur libgltf.org/src/RenderScene.h libgltf/src/RenderScene.h
+--- libgltf.org/src/RenderScene.h	2014-06-23 18:49:46.587119798 +0200
++++ libgltf/src/RenderScene.h	2014-06-23 18:59:46.991093944 +0200
+@@ -234,7 +234,7 @@
+     void completeRenderBitmap(glTFViewport* pViewport,
+                               unsigned char* buffer, GLenum format);
+     void setBitZoom(unsigned char* Dstbuffer,
+-                    unsigned char* Srcbuffer, glTFViewport* pViewport);
++                    unsigned char* Srcbuffer, glTFViewport* pViewport, int bufferDepth );
+ 
+     // For animation
+     void startAnimation();
diff --git a/external/libgltf/patches/extra_semicolon.patch b/external/libgltf/patches/extra_semicolon.patch
new file mode 100644
index 0000000..42602d6
--- /dev/null
+++ b/external/libgltf/patches/extra_semicolon.patch
@@ -0,0 +1,18 @@
+diff -ur libgltf.org/src/Common.cpp libgltf/src/Common.cpp
+--- libgltf.org/src/Common.cpp	2014-06-28 12:30:58.792097436 +0200
++++ libgltf/src/Common.cpp	2014-06-28 12:31:13.884097997 +0200
+@@ -550,12 +550,12 @@
+ /* -- Primitives -- */
+ Primitives::Primitives()
+ {
+-};
++}
+ 
+ Primitives::~Primitives()
+ {
+     mAttributeMap.clear();
+-};
++}
+ 
+ void Primitives::setMaterialIndex(std::string materialIndex)
+ {
diff --git a/external/libgltf/patches/fix_package_file.patch b/external/libgltf/patches/fix_package_file.patch
new file mode 100644
index 0000000..509634d
--- /dev/null
+++ b/external/libgltf/patches/fix_package_file.patch
@@ -0,0 +1,13 @@
+diff -ur libgltf.org/libgltf.pc.in libgltf/libgltf.pc.in
+--- libgltf.org/libgltf.pc.in	2014-06-27 18:52:24.323562505 +0200
++++ libgltf/libgltf.pc.in	2014-06-27 18:52:48.423561484 +0200
+@@ -6,8 +6,7 @@
+ Name: libgltf- at GLTF_MAJOR_VERSION@. at GLTF_MINOR_VERSION@
+ Description: Library for rendering glTF models.
+ Version: @VERSION@
+-Requires: glew-1.10.0 glm glu
++Requires: glew
+ Libs: -L${libdir} -lgltf- at GLTF_MAJOR_VERSION@. at GLTF_MINOR_VERSION@
+ Cflags: -I${includedir}/libgltf- at GLTF_MAJOR_VERSION@. at GLTF_MINOR_VERSION@
+ 
+-Requires.private: boost
diff --git a/external/libgltf/patches/init_scene_set_handle.patch b/external/libgltf/patches/init_scene_set_handle.patch
new file mode 100644
index 0000000..88ad053
--- /dev/null
+++ b/external/libgltf/patches/init_scene_set_handle.patch
@@ -0,0 +1,80 @@
+diff -ur libgltf.org/src/LoadScene.cpp libgltf/src/LoadScene.cpp
+--- libgltf.org/src/LoadScene.cpp	2014-06-23 14:55:58.099723870 +0200
++++ libgltf/src/LoadScene.cpp	2014-06-23 14:56:04.399723599 +0200
+@@ -149,10 +149,14 @@
+     return true;
+ }
+ 
+-int Parser::parseScene(Scene* pscene)
++void Parser::setScene(Scene* pscene)
++{
++    pScene = pscene;
++}
++
++int Parser::parseScene()
+ {
+     int status;
+-    this->pScene = pscene;
+ 
+     status = this->readBuffers();
+     if (status < 0)
+diff -ur libgltf.org/src/LoadScene.h libgltf/src/LoadScene.h
+--- libgltf.org/src/LoadScene.h	2014-06-23 14:55:58.079723871 +0200
++++ libgltf/src/LoadScene.h	2014-06-23 14:56:37.303722182 +0200
+@@ -21,7 +21,8 @@
+ public:
+     glTFHandle* getFileNameInJson(const std::string& jsonFile);
+     bool releaseFileName();
+-    int parseScene(Scene* pscene);
++    void setScene(Scene* pscene);
++    int parseScene();
+     bool parseJsonFile();
+     void setJsonInfo(const std::string& sbuffer);
+     void setJsonInfo(const std::string& direct, const std::string& fileName);
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-23 14:55:58.099723870 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-23 14:56:07.239723477 +0200
+@@ -657,16 +657,15 @@
+     {
+         return LIBGLTF_PARSE_JSON_ERROR;
+     }
+-    int iStatus = mLoadJson.parseScene(&scene);
++    int iStatus = mLoadJson.parseScene();
+     return iStatus;
+ }
+ 
+ int RenderScene::loadScene(Scene& scene, glTFHandle* handle)
+ {
+-    scene.setGltfHandle(handle);
+     try
+     {
+-        int iStatus = mLoadJson.parseScene(&scene);
++        int iStatus = mLoadJson.parseScene();
+         return iStatus;
+     }
+     catch (boost::property_tree::ptree_error& e)
+@@ -694,7 +693,11 @@
+         return 0;
+     }
+     string tmpFileName(jsonfile->filename);
+-    return mLoadJson.getFileNameInJson(tmpFileName);
++    glTFHandle* handle = mLoadJson.getFileNameInJson(tmpFileName);
++    pScene = new Scene();
++    pScene->setGltfHandle(handle);
++    mLoadJson.setScene(pScene);
++    return handle;
+ }
+ 
+ unsigned int RenderScene::bindAttribute(const Attribute* pAttr)
+@@ -969,11 +972,6 @@
+ {
+     initOpengl();
+ 
+-    pScene = new Scene();
+-    if (0 == pScene)
+-    {
+-        return LIBGLTF_MEMORY_ERROR;
+-    }
+     int iResult = loadScene(*pScene, handle);
+     if (iResult != LIBGLTF_SUCCESS)
+     {
diff --git a/external/libgltf/patches/libgltf_configure.patch b/external/libgltf/patches/libgltf_configure.patch
new file mode 100644
index 0000000..d224ab9
--- /dev/null
+++ b/external/libgltf/patches/libgltf_configure.patch
@@ -0,0 +1,61 @@
+diff -ur libgltf.org/configure libgltf/configure
+--- libgltf.org/configure	2014-06-25 18:41:32.470228670 +0200
++++ libgltf/configure	2014-06-25 18:42:03.922227337 +0200
+@@ -15581,15 +15581,18 @@
+ # =========
+ # Find boost
+ # =========
++save_CPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS $BOOST_CFLAGS"
+ 
+ ac_fn_cxx_check_header_mongrel "$LINENO" "boost/property_tree/json_parser.hpp" "ac_cv_header_boost_property_tree_json_parser_hpp" "$ac_includes_default"
+ if test "x$ac_cv_header_boost_property_tree_json_parser_hpp" = xyes; then :
+-  BOOST_CFLAGS=
++
+ else
+   as_fn_error $? "boost/property_tree/json_parser.hpp not found. install boost" "$LINENO" 5
+ fi
+ 
+ 
++CPPFLAGS=$save_CPPFLAGS
+ 
+ 
+ # =========
+@@ -15685,14 +15688,17 @@
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ 
++ save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS $GLEW_CFLAGS"
+  ac_fn_cxx_check_header_mongrel "$LINENO" "GL/glew.h" "ac_cv_header_GL_glew_h" "$ac_includes_default"
+ if test "x$ac_cv_header_GL_glew_h" = xyes; then :
+-  GLEW_CFLAGS=
++
+ else
+   as_fn_error $? "GL/glew.h not found. install glew" "$LINENO" 5
+ fi
+ 
+ 
++ CPPFLAGS=$save_CPPFLAGS
+ 
+ fi
+ 
+@@ -15707,14 +15713,17 @@
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ 
++save_CPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS $GLM_CFLAGS"
+ ac_fn_cxx_check_header_mongrel "$LINENO" "glm/glm.hpp" "ac_cv_header_glm_glm_hpp" "$ac_includes_default"
+ if test "x$ac_cv_header_glm_glm_hpp" = xyes; then :
+-  GLM_CFLAGS=
++
+ else
+   as_fn_error $? "glm/glm.hpp not found. install glm" "$LINENO" 5
+ fi
+ 
+ 
++CPPFLAGS=$save_CPPFLAGS
+ ac_ext=cpp
+ ac_cpp='$CXXCPP $CPPFLAGS'
+ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
diff --git a/external/libgltf/patches/move_fps_closer_to_the_corner.patch b/external/libgltf/patches/move_fps_closer_to_the_corner.patch
new file mode 100644
index 0000000..10ef74c
--- /dev/null
+++ b/external/libgltf/patches/move_fps_closer_to_the_corner.patch
@@ -0,0 +1,12 @@
+diff -ur libgltf.org/src/FPSCounter.cpp libgltf/src/FPSCounter.cpp
+--- libgltf.org/src/FPSCounter.cpp	2014-06-24 18:10:46.317967903 +0200
++++ libgltf/src/FPSCounter.cpp	2014-06-24 18:10:58.629967382 +0200
+@@ -104,7 +104,7 @@
+         ++mFrames;
+     }
+ 
+-    pFont->printFormattedString(pViewport->width - 100, 30, 15, "%d", mFPS);
++    pFont->printFormattedString(pViewport->width - 40, 10, 15, "%d", mFPS);
+ 
+     glEnable(GL_DEPTH_TEST);
+ }
diff --git a/external/libgltf/patches/no_animation_in_orbit_mode.patch b/external/libgltf/patches/no_animation_in_orbit_mode.patch
new file mode 100644
index 0000000..dab0244
--- /dev/null
+++ b/external/libgltf/patches/no_animation_in_orbit_mode.patch
@@ -0,0 +1,43 @@
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-24 16:53:41.030163890 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-24 16:53:44.406163746 +0200
+@@ -1848,8 +1848,6 @@
+ 
+ void RenderScene::startAnimation()
+ {
+-    if (bAerialView)
+-        return;
+     this->mAnimationPlay = true;
+     mCurrentTime = 0;
+     mUpdateTimeOut = 0;
+@@ -1858,8 +1856,6 @@
+ 
+ void RenderScene::stopAnimation()
+ {
+-    if (bAerialView)
+-        return;
+     if (pScene->getSkinSize() != 0)
+     {
+         this->mAnimationPlay = false;
+@@ -1874,10 +1870,6 @@
+     roCameraY = glm::mat4(1.0);
+     pCamera->AerialViewY = 0.0;
+     bAerialView = false;
+-    if (bAnimation)
+-    {
+-        startAnimation();
+-    }
+     if (IsAerialMode)
+     {
+         pScene->setUseCameraInJson(true);
+@@ -1897,10 +1889,6 @@
+     roCameraX = glm::mat4(1.0);
+     roCameraY = glm::mat4(1.0);
+     //Stop animation.
+-    if (pScene->getSkinSize() != 0)
+-    {
+-        this->mAnimationPlay = false;
+-    }
+     bAerialView = true;
+     if (pScene->getUseCameraInJson())
+     {
diff --git a/external/libgltf/patches/no_effect_of_set_looping.patch b/external/libgltf/patches/no_effect_of_set_looping.patch
new file mode 100644
index 0000000..1bfa4c9
--- /dev/null
+++ b/external/libgltf/patches/no_effect_of_set_looping.patch
@@ -0,0 +1,14 @@
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-23 21:16:55.134739637 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-23 21:16:58.834739477 +0200
+@@ -1976,5 +1976,10 @@
+     {
+         bIsTimeAvailable = false;
+     }
++    if( !mAnimationLoop && mCurrentTime > mDuration )
++    {
++        stopAnimation();
++	setAnimTime(0.0);
++    }
+ }
+ 
diff --git a/external/libgltf/patches/remove_config_h_in_dependencies.patch b/external/libgltf/patches/remove_config_h_in_dependencies.patch
new file mode 100644
index 0000000..fae09e7
--- /dev/null
+++ b/external/libgltf/patches/remove_config_h_in_dependencies.patch
@@ -0,0 +1,12 @@
+diff -ur libgltf.org/Makefile.in libgltf/Makefile.in
+--- libgltf.org/Makefile.in	2014-06-25 23:16:52.417528674 +0200
++++ libgltf/Makefile.in	2014-06-25 23:16:56.493528501 +0200
+@@ -419,7 +419,7 @@
+ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ 	@rm -f stamp-h1
+ 	cd $(top_builddir) && $(SHELL) ./config.status config.h
+-$(srcdir)/config.h.in:  $(am__configure_deps) 
++$(srcdir)/config.h.in: 
+ 	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ 	rm -f stamp-h1
+ 	touch $@
diff --git a/external/libgltf/patches/stop_a_potential_memory_leak.patch b/external/libgltf/patches/stop_a_potential_memory_leak.patch
new file mode 100644
index 0000000..1dff583
--- /dev/null
+++ b/external/libgltf/patches/stop_a_potential_memory_leak.patch
@@ -0,0 +1,27 @@
+changeset:   1068:ef62f9d46016
+branch:      improvement
+parent:      1065:ce62a560f347
+user:        LeiQu
+date:        Tue Jul 01 14:46:15 2014 +0800
+summary:     Fix the bug of memory leak
+
+diff -ur libgltf.org/src/LoadScene.cpp libgltf/src/LoadScene.cpp
+--- libgltf.org/src/LoadScene.cpp	2014-07-04 16:35:53.702409179 +0200
++++ libgltf/src/LoadScene.cpp	2014-07-04 16:35:59.926408911 +0200
+@@ -1052,10 +1052,14 @@
+     std::string nodeId;
+     for (; it != itEnd; ++it)
+     {
+-        Animation* pAnimation = new Animation();
+         boost::property_tree::ptree pAnimTree = it->second;
+         nodeId = parseChannel(pAnimTree);
+-        parsePara(pAnimTree, pAnimation, nodeId);
++        if (nodeId.empty())
++        {
++            continue;
++        }
++        Animation* pAnimation = new Animation();
++        parsePara(pAnimTree, pAnimation, nodeId); 
+         this->pScene->insertAnimMap(nodeId, pAnimation);
+     }
+     return true;
diff --git a/external/libgltf/patches/walkthrough_mode_affects_orbit_mode_unexpectedly.patch b/external/libgltf/patches/walkthrough_mode_affects_orbit_mode_unexpectedly.patch
new file mode 100644
index 0000000..ef7217b
--- /dev/null
+++ b/external/libgltf/patches/walkthrough_mode_affects_orbit_mode_unexpectedly.patch
@@ -0,0 +1,12 @@
+diff -ur libgltf.org/src/Camera.cpp libgltf/src/Camera.cpp
+--- libgltf.org/src/Camera.cpp	2014-06-24 17:36:27.870055125 +0200
++++ libgltf/src/Camera.cpp	2014-06-24 17:36:43.514054463 +0200
+@@ -243,6 +243,8 @@
+     if (abs(horizontal) > planar || abs(vertical) > 0.0001)
+     {
+         bRotateCameraModel = true;
++        fRotateCameraXSpeed = 0;
++        fRotateCameraYSpeed = 0;
+         float deltaX = (float)(horizontal * fSensitivity * 0.01f);
+         float deltaY = (float)(-vertical * fSensitivity * 0.01f);
+         AerialViewY += -vertical;
diff --git a/external/libgltf/patches/wrong_animation_state_when_set_time_to_null.patch b/external/libgltf/patches/wrong_animation_state_when_set_time_to_null.patch
new file mode 100644
index 0000000..56548e24
--- /dev/null
+++ b/external/libgltf/patches/wrong_animation_state_when_set_time_to_null.patch
@@ -0,0 +1,12 @@
+diff -ur libgltf.org/src/libgltf.cpp libgltf/src/libgltf.cpp
+--- libgltf.org/src/libgltf.cpp	2014-06-23 20:38:35.470838661 +0200
++++ libgltf/src/libgltf.cpp	2014-06-23 20:44:37.042823092 +0200
+@@ -235,7 +235,7 @@
+     RenderScene* renderScene = (RenderScene*)handle->renderer;
+     if (time <= 0)
+     {
+-        renderScene->startAnimation();
++        renderScene->setAnimTime(0.0);
+     } 
+     else
+     {
diff --git a/external/libgltf/patches/wrong_duration_caused_by_uninitialized_member.patch b/external/libgltf/patches/wrong_duration_caused_by_uninitialized_member.patch
new file mode 100644
index 0000000..7e5554e
--- /dev/null
+++ b/external/libgltf/patches/wrong_duration_caused_by_uninitialized_member.patch
@@ -0,0 +1,13 @@
+diff -ur libgltf.org/src/Common.cpp libgltf/src/Common.cpp
+--- libgltf.org/src/Common.cpp	2014-06-23 20:16:17.746896264 +0200
++++ libgltf/src/Common.cpp	2014-06-23 20:17:50.610892265 +0200
+@@ -1037,7 +1037,8 @@
+ 
+ /* -- Scene -- */
+ Scene::Scene()
+-    : pRootNode(0)
++    : mDuration(0.0)
++    , pRootNode(0)
+     , pBuffer(0)
+     , pGltfHandle(0)
+     , bUseCameraInJson(false)
diff --git a/external/libgltf/patches/wrong_media_time_at_first_run_caused_by_uninitilized_member.patch b/external/libgltf/patches/wrong_media_time_at_first_run_caused_by_uninitilized_member.patch
new file mode 100644
index 0000000..aa30dc2
--- /dev/null
+++ b/external/libgltf/patches/wrong_media_time_at_first_run_caused_by_uninitilized_member.patch
@@ -0,0 +1,11 @@
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-23 21:17:51.466737211 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-23 21:23:23.718722904 +0200
+@@ -602,6 +602,7 @@
+     , roCameraX(1.0f), roCameraY(1.0f)
+     , initCameraLocalMatrix(1.0f),initCameraGlobalMatrix(1.0f)
+     , bAnimation(true), pTempMatrix(0)
++    , bIsTimeAvailable(false)
+ {
+     mLastModelView = glm::mat4(0.0);
+ #if ENABLE_FPS
diff --git a/external/libgltf/patches/wrong_media_time_caused_by_missing_fmod.patch b/external/libgltf/patches/wrong_media_time_caused_by_missing_fmod.patch
new file mode 100644
index 0000000..07f7f6f
--- /dev/null
+++ b/external/libgltf/patches/wrong_media_time_caused_by_missing_fmod.patch
@@ -0,0 +1,14 @@
+diff -ur libgltf.org/src/RenderScene.cpp libgltf/src/RenderScene.cpp
+--- libgltf.org/src/RenderScene.cpp	2014-06-23 20:35:06.246847670 +0200
++++ libgltf/src/RenderScene.cpp	2014-06-23 20:35:24.366846890 +0200
+@@ -1919,7 +1919,9 @@
+ 
+ double RenderScene::getAnimTime()
+ {
+-    return mCurrentTime;
++    errno = 0;
++    double time = fmod(this->mCurrentTime, this->mDuration);
++    return errno == EDOM ? 0.0 : time;
+ }
+ 
+ void RenderScene::setAnimLoop(int loop)
commit 409e30a0d526375f66245a81fe3d503b2cd9cc83
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Mon Jul 14 11:04:34 2014 +0200

    Revert "libgltf: download from libgltf subfolder"
    
    This reverts commit ca13d1f6988bc1671000a30af483b00eb15bcdb8.

diff --git a/Makefile.fetch b/Makefile.fetch
index e42ea40..1c0d53e 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -156,6 +156,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR)
 		$(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \
 		$(call fetch_Optional,LIBEOT,LIBEOT_TARBALL) \
 		$(call fetch_Optional,LIBEXTTEXTCAT,LIBEXTTEXTCAT_TARBALL) \
+		$(call fetch_Optional,LIBGLTF,LIBGLTF_TARBALL) \
 		$(call fetch_Optional,LIBLANGTAG,LANGTAGREG_TARBALL) \
 		$(call fetch_Optional,LIBLANGTAG,LIBLANGTAG_TARBALL) \
 		$(call fetch_Optional,LIBPNG,PNG_TARBALL) \
@@ -235,7 +236,6 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR)
 		$(call fetch_Optional,MOZ,$(MOZ_ZIP_LIB)) \
 		$(call fetch_Optional,MOZ,$(MOZ_ZIP_RUNTIME)) \
 	,$(call fetch_Download_item_unchecked,http://dev-www.libreoffice.org/mozilla,$(item)))
-	$(call fetch_Download_item,http://dev-www.libreoffice.org/src/libgltf,$(call fetch_Optional,LIBGLTF,LIBGLTF_TARBALL))
 	@mkdir -p $(dir $@) && touch $@
 
 # vim: set noet sw=4 ts=4:


More information about the Libreoffice-commits mailing list