summaryrefslogtreecommitdiff
path: root/libre/blender
diff options
context:
space:
mode:
Diffstat (limited to 'libre/blender')
-rw-r--r--libre/blender/PKGBUILD56
-rw-r--r--libre/blender/arm-no-sse2.patch15
-rw-r--r--libre/blender/ffmpeg4.0.patch113
-rw-r--r--libre/blender/openvdb3-abi.patch28
-rw-r--r--libre/blender/python3.7.patch13
-rw-r--r--libre/blender/python37.patch40
-rw-r--r--libre/blender/stl_export_iter.patch13
-rw-r--r--libre/blender/tree_hpp.patch183
-rw-r--r--libre/blender/util_sseb.patch13
9 files changed, 66 insertions, 408 deletions
diff --git a/libre/blender/PKGBUILD b/libre/blender/PKGBUILD
index 7ed227d79..b8aab3b4b 100644
--- a/libre/blender/PKGBUILD
+++ b/libre/blender/PKGBUILD
@@ -16,12 +16,12 @@
# unreasonable.
# _gittag=v2.79b
-_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761
+_gitcommit=2c0c1f494dcfadb3c01d23e2348e28bc8864e9f3
pkgname=blender
pkgver=2.79.b
-[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8}
-pkgrel=8
+[[ -n $_gitcommit ]] && pkgver=${pkgver}.git4.${_gitcommit:0:8}
+pkgrel=3
pkgrel+=.parabola1
epoch=17
pkgdesc="A fully integrated 3D graphics creation suite"
@@ -36,36 +36,30 @@ depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requ
'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage'
'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2')
makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm')
-if [[ "$CARCH" == arm* ]]; then
- makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm')
-fi
options=(!strip)
source=("git://git.blender.org/blender-addons.git"
"git://git.blender.org/blender-addons-contrib.git"
"git://git.blender.org/blender-translations.git"
"git://git.blender.org/blender-dev-tools.git"
"git://git.blender.org/scons.git"
- python37.patch
- ffmpeg4.0.patch
- tree_hpp.patch
- util_sseb.patch
- openvdb3-abi.patch)
+ stl_export_iter.patch
+ python3.7.patch
+ arm-no-sse2.patch)
+
if [[ -n $_gittag ]]; then
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}")
elif [[ -n $_gitcommit ]]; then
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}")
fi
-md5sums=('SKIP'
- 'SKIP'
- 'SKIP'
- 'SKIP'
- 'SKIP'
- '1d6d2064db0e8e4e3a52735406f5106a'
- 'da14d7cbdea1ab5499659a066658cdd2'
- 'feea89510de171946c41c6208461f453'
- '53da216adbc2a9d555a59c15b8f0ef08'
- '3f9613fcb7ea61214982272e9c20a294'
- 'SKIP')
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ '51f30acc407179f003d1dbec25fb47b0bf1fe8d2eb16e069a6ca83ab8b21f6032d636a42e0b140537ad1ad25ad38c52a87a2a33e51822729ab196fcef4682818'
+ 'f5564e8db242f6fa9cd951590f4c6de8f5b1a8bbd73aeb6e837a840dd2696e71f7b6bb1c94f9c2377b199159f87a95bead8ee113c01e8763f3843918395cc177'
+ '927680b39b3666f6599e4ebcb52b57476b42e9ed89b7e40060c38cd0c36130be86eabdf7c5b8be54f11f26dc222e423fa3e494ede8d6d83c38863241563f181a'
+ 'SKIP')
prepare() {
cd "$srcdir/$pkgname-$pkgver"
@@ -81,18 +75,17 @@ prepare() {
# fix OS Name (pedantic, I know)
sed -i 's|BUILD_PLATFORM;|"GNU/Linux-libre";|' 'source/creator/buildinfo.c'
- patch -Np1 -i "$srcdir"/python37.patch
- patch -Np1 -i "$srcdir"/ffmpeg4.0.patch
- patch -Np1 -i "$srcdir"/tree_hpp.patch
- patch -Np1 -i "$srcdir"/util_sseb.patch
- patch -Np1 -i "$srcdir"/openvdb3-abi.patch
+ patch -Np1 -i "$srcdir"/stl_export_iter.patch
+ patch -Np1 -i "$srcdir"/python3.7.patch -d release/scripts/addons_contrib
+if [[ "$CARCH" == arm* ]]; then
+ patch -Np1 -i "$srcdir"/arm-no-sse2.patch
+fi
+
+ mkdir build
}
build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- [[ -d build ]] && rm -rf build
- mkdir build && cd build
+ cd "$srcdir/$pkgname-$pkgver"/build
cmake -C../build_files/cmake/config/blender_release.cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -107,6 +100,7 @@ build() {
-DWITH_CYCLES_CUDA_BINARIES='OFF' \
-DWITH_CYCLES_DEVICE_CUDA='OFF' \
-DWITH_CYCLES_PTEX=OFF \
+ -DWITH_OPENVDB_3_ABI_COMPATIBLE=ON \
-DPYTHON_VERSION=3.7 \
-DPYTHON_LIBPATH=/usr/lib \
-DPYTHON_LIBRARY=python3.7m \
diff --git a/libre/blender/arm-no-sse2.patch b/libre/blender/arm-no-sse2.patch
new file mode 100644
index 000000000..80a1267c4
--- /dev/null
+++ b/libre/blender/arm-no-sse2.patch
@@ -0,0 +1,15 @@
+diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
+index 16908b0244a..96aeeaa8081 100644
+--- a/intern/cycles/device/device_cpu.cpp
++++ b/intern/cycles/device/device_cpu.cpp
+@@ -719,8 +719,8 @@ public:
+ int start_sample = tile.start_sample;
+ int end_sample = tile.start_sample + tile.num_samples;
+
+- _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
+- _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
++// n/a to arm _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
++// n/a to arm _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
+
+ for(int sample = start_sample; sample < end_sample; sample++) {
+ if(task.get_cancel() || task_pool.canceled()) {
diff --git a/libre/blender/ffmpeg4.0.patch b/libre/blender/ffmpeg4.0.patch
deleted file mode 100644
index 4fd7801bc..000000000
--- a/libre/blender/ffmpeg4.0.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-index e9eea195208..84aea330313 100644
---- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-@@ -264,9 +264,9 @@ AUD_FFMPEGReader::AUD_FFMPEGReader(boost::shared_ptr<AUD_Buffer> buffer) :
- m_membuffer(buffer),
- m_membufferpos(0)
- {
-- m_membuf = reinterpret_cast<data_t*>(av_malloc(FF_MIN_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE));
-+ m_membuf = reinterpret_cast<data_t*>(av_malloc(AV_INPUT_BUFFER_MIN_SIZE + AV_INPUT_BUFFER_PADDING_SIZE));
-
-- m_aviocontext = avio_alloc_context(m_membuf, FF_MIN_BUFFER_SIZE, 0, this,
-+ m_aviocontext = avio_alloc_context(m_membuf, AV_INPUT_BUFFER_MIN_SIZE, 0, this,
- read_packet, NULL, seek_packet);
-
- if(!m_aviocontext)
-diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-index 3f95ac7a4da..2c2f0916406 100644
---- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-@@ -163,7 +163,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs,
- try
- {
- if(m_formatCtx->oformat->flags & AVFMT_GLOBALHEADER)
-- m_codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+ m_codecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-
- AVCodec* codec = avcodec_find_encoder(m_codecCtx->codec_id);
- if(!codec)
-@@ -185,11 +185,11 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs,
- if(avcodec_open2(m_codecCtx, codec, NULL))
- AUD_THROW(AUD_ERROR_FFMPEG, codec_error);
-
-- m_output_buffer.resize(FF_MIN_BUFFER_SIZE);
-+ m_output_buffer.resize(AV_INPUT_BUFFER_MIN_SIZE);
- int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), AUD_DEVICE_SAMPLE_SIZE(m_specs));
-
- if(m_codecCtx->frame_size <= 1) {
-- m_input_size = FF_MIN_BUFFER_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
-+ m_input_size = AV_INPUT_BUFFER_MIN_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
- m_input_buffer.resize(m_input_size * samplesize);
- }
- else
-diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
-index d7fcd896e11..9e82df17dce 100644
---- a/source/blender/blenkernel/intern/writeffmpeg.c
-+++ b/source/blender/blenkernel/intern/writeffmpeg.c
-@@ -619,8 +619,6 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int
- c->rc_buffer_aggressivity = 1.0;
- #endif
-
-- c->me_method = ME_EPZS;
--
- codec = avcodec_find_encoder(c->codec_id);
- if (!codec)
- return NULL;
-@@ -682,14 +680,14 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int
- )
- {
- PRINT("Using global header\n");
-- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
- }
-
- /* Determine whether we are encoding interlaced material or not */
- if (rd->mode & R_FIELDS) {
- PRINT("Encoding interlaced video\n");
-- c->flags |= CODEC_FLAG_INTERLACED_DCT;
-- c->flags |= CODEC_FLAG_INTERLACED_ME;
-+ c->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
-+ c->flags |= AV_CODEC_FLAG_INTERLACED_ME;
- }
-
- /* xasp & yasp got float lately... */
-@@ -779,7 +777,7 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int
- }
-
- if (of->oformat->flags & AVFMT_GLOBALHEADER) {
-- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
- }
-
- set_ffmpeg_properties(rd, c, "audio", &opts);
-@@ -798,14 +796,14 @@ static AVStream *alloc_audio_stream(FFMpegContext *context, RenderData *rd, int
- st->codec->time_base.den = st->codec->sample_rate;
-
- #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
-- context->audio_outbuf_size = FF_MIN_BUFFER_SIZE;
-+ context->audio_outbuf_size = AV_INPUT_BUFFER_MIN_SIZE;
- #endif
-
- if (c->frame_size == 0)
- // used to be if ((c->codec_id >= CODEC_ID_PCM_S16LE) && (c->codec_id <= CODEC_ID_PCM_DVD))
- // not sure if that is needed anymore, so let's try out if there are any
- // complaints regarding some ffmpeg versions users might have
-- context->audio_input_samples = FF_MIN_BUFFER_SIZE * 8 / c->bits_per_coded_sample / c->channels;
-+ context->audio_input_samples = AV_INPUT_BUFFER_MIN_SIZE * 8 / c->bits_per_coded_sample / c->channels;
- else {
- context->audio_input_samples = c->frame_size;
- #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
-diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
-index eaf4dfd84b4..9c2f42feb52 100644
---- a/source/blender/imbuf/intern/indexer.c
-+++ b/source/blender/imbuf/intern/indexer.c
-@@ -537,7 +537,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
- av_opt_set_int(rv->c, "qmax", ffmpeg_quality, 0);
-
- if (rv->of->flags & AVFMT_GLOBALHEADER) {
-- rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+ rv->c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
- }
-
- if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) {
diff --git a/libre/blender/openvdb3-abi.patch b/libre/blender/openvdb3-abi.patch
deleted file mode 100644
index 73c46094d..000000000
--- a/libre/blender/openvdb3-abi.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bfea2dd1a97..c59aff4c62c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -252,6 +252,10 @@ option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" _init_OPEN
- option(WITH_OPENVDB "Enable features relying on OpenVDB" OFF)
- option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" OFF)
-
-+if(WITH_OPENVDB)
-+ add_definitions(-DOPENVDB_3_ABI_COMPATIBLE=TRUE)
-+endif()
-+
- # GHOST Windowing Library Options
- option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
- mark_as_advanced(WITH_GHOST_DEBUG)
-diff --git a/intern/openvdb/intern/openvdb_writer.cc b/intern/openvdb/intern/openvdb_writer.cc
-index e886c5a76a8..bedcfe65552 100644
---- a/intern/openvdb/intern/openvdb_writer.cc
-+++ b/intern/openvdb/intern/openvdb_writer.cc
-@@ -45,7 +45,7 @@ void OpenVDBWriter::insert(const openvdb::GridBase::Ptr &grid)
-
- void OpenVDBWriter::insert(const openvdb::GridBase &grid)
- {
--#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER == 3)
-+#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER <= 3) || defined(OPENVDB_3_ABI_COMPATIBLE)
- m_grids->push_back(grid.copyGrid());
- #else
- m_grids->push_back(grid.copyGridWithNewTree());
diff --git a/libre/blender/python3.7.patch b/libre/blender/python3.7.patch
new file mode 100644
index 000000000..85fa6c6f5
--- /dev/null
+++ b/libre/blender/python3.7.patch
@@ -0,0 +1,13 @@
+diff --git a/object_facemap_auto/auto_fmap_widgets.py b/object_facemap_auto/auto_fmap_widgets.py
+index 5b26f75..646e844 100644
+--- a/object_facemap_auto/auto_fmap_widgets.py
++++ b/object_facemap_auto/auto_fmap_widgets.py
+@@ -324,7 +324,7 @@ class AutoFaceMapWidgetGroup(ManipulatorGroup):
+
+ # foo;bar=baz;bonzo=bingo --> {"bar": baz", "bonzo": bingo}
+ mpr.fmap_target_rules = dict(
+- item.partition("=")[::2] for item in fmap_rules,
++ item.partition("=")[::2] for item in fmap_rules
+ )
+
+ # XXX, we might want to have some way to extract a 'center' from a face-map
diff --git a/libre/blender/python37.patch b/libre/blender/python37.patch
deleted file mode 100644
index b3ce220b0..000000000
--- a/libre/blender/python37.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001
-From: Campbell Barton <ideasman42@gmail.com>
-Date: Thu, 12 Jul 2018 08:28:06 +0200
-Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7
-
-In Python3.7 this now raises an error.
----
- source/blender/python/intern/bpy_rna.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
-index 9052b6f580a..80b0aa7a51b 100644
---- a/source/blender/python/intern/bpy_rna.c
-+++ b/source/blender/python/intern/bpy_rna.c
-@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v
- if (!(flag & PROP_REGISTER))
- continue;
-
-+ /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also in the macro below. */
- identifier = RNA_property_identifier(prop);
- item = PyObject_GetAttrString(py_class, identifier);
-
- if (item == NULL) {
-+ PyErr_Clear();
- /* Sneaky workaround to use the class name as the bl_idname */
-
- #define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \
-@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v
- } \
- Py_DECREF(item); \
- } \
-+ else { \
-+ PyErr_Clear(); \
-+ } \
- } /* intentionally allow else here */
-
- if (false) {} /* needed for macro */
---
-2.18.0
-
diff --git a/libre/blender/stl_export_iter.patch b/libre/blender/stl_export_iter.patch
new file mode 100644
index 000000000..edf985e88
--- /dev/null
+++ b/libre/blender/stl_export_iter.patch
@@ -0,0 +1,13 @@
+diff --git a/release/scripts/addons/io_mesh_stl/blender_utils.py b/release/scripts/addons/io_mesh_stl/blender_utils.py
+index 864335ab..c74853db 100644
+--- a/release/scripts/addons/io_mesh_stl/blender_utils.py
++++ b/release/scripts/addons/io_mesh_stl/blender_utils.py
+@@ -86,7 +86,7 @@ def faces_from_mesh(ob, global_matrix, use_mesh_modifiers=False, triangulate=Tru
+ try:
+ mesh = ob.to_mesh(bpy.context.scene, use_mesh_modifiers, "PREVIEW")
+ except RuntimeError:
+- raise StopIteration
++ return
+
+ mat = global_matrix * ob.matrix_world
+ mesh.transform(mat)
diff --git a/libre/blender/tree_hpp.patch b/libre/blender/tree_hpp.patch
deleted file mode 100644
index 4d00a223d..000000000
--- a/libre/blender/tree_hpp.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp
-index c8a253fc901..bd35f82d185 100644
---- a/intern/itasc/kdl/tree.hpp
-+++ b/intern/itasc/kdl/tree.hpp
-@@ -1,177 +1,177 @@
- // Copyright (C) 2007 Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
-
- // Version: 1.0
- // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
- // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
- // URL: http://www.orocos.org/kdl
-
- // This library is free software; you can redistribute it and/or
- // modify it under the terms of the GNU Lesser General Public
- // License as published by the Free Software Foundation; either
- // version 2.1 of the License, or (at your option) any later version.
-
- // This library is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- // Lesser General Public License for more details.
-
- // You should have received a copy of the GNU Lesser General Public
- // License along with this library; if not, write to the Free Software
- // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- #ifndef KDL_TREE_HPP
- #define KDL_TREE_HPP
-
- #include "segment.hpp"
- #include "chain.hpp"
-
- #include <string>
- #include <map>
- #include <Eigen/Core>
-
- namespace KDL
- {
- //Forward declaration
- class TreeElement;
- // Eigen allocator is needed for alignment of Eigen data types
-- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap;
-+ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > SegmentMap;
-
- class TreeElement
- {
- public:
- TreeElement():q_nr(0),parent(0)
- {};
- public:
- Segment segment;
- unsigned int q_nr;
- SegmentMap::value_type const *parent;
- std::vector<SegmentMap::const_iterator > children;
- TreeElement(const Segment& segment_in,const SegmentMap::value_type& parent_in,unsigned int q_nr_in)
- {
- q_nr=q_nr_in;
- segment=segment_in;
- parent=&parent_in;
- };
- static TreeElement Root()
- {
- return TreeElement();
- };
- };
-
- /**
- * \brief This class encapsulates a <strong>tree</strong>
- * kinematic interconnection structure. It is build out of segments.
- *
- * @ingroup KinematicFamily
- */
- class Tree
- {
- private:
- SegmentMap segments;
- unsigned int nrOfJoints;
- unsigned int nrOfSegments;
-
- bool addTreeRecursive(SegmentMap::const_iterator root, const std::string& tree_name, const std::string& hook_name);
-
- public:
- /**
- * The constructor of a tree, a new tree is always empty
- */
- Tree();
- Tree(const Tree& in);
- Tree& operator= (const Tree& arg);
-
- /**
- * Adds a new segment to the end of the segment with
- * hook_name as segment_name
- *
- * @param segment new segment to add
- * @param segment_name name of the new segment
- * @param hook_name name of the segment to connect this
- * segment with.
- *
- * @return false if hook_name could not be found.
- */
- bool addSegment(const Segment& segment, const std::string& segment_name, const std::string& hook_name);
-
- /**
- * Adds a complete chain to the end of the segment with
- * hook_name as segment_name. Segment i of
- * the chain will get chain_name+".Segment"+i as segment_name.
- *
- * @param chain Chain to add
- * @param chain_name name of the chain
- * @param hook_name name of the segment to connect the chain with.
- *
- * @return false if hook_name could not be found.
- */
- bool addChain(const Chain& chain, const std::string& chain_name, const std::string& hook_name);
-
- /**
- * Adds a complete tree to the end of the segment with
- * hookname as segment_name. The segments of the tree will get
- * tree_name+segment_name as segment_name.
- *
- * @param tree Tree to add
- * @param tree_name name of the tree
- * @param hook_name name of the segment to connect the tree with
- *
- * @return false if hook_name could not be found
- */
- bool addTree(const Tree& tree, const std::string& tree_name,const std::string& hook_name);
-
- /**
- * Request the total number of joints in the tree.\n
- * <strong> Important:</strong> It is not the same as the
- * total number of segments since a segment does not need to have
- * a joint.
- *
- * @return total nr of joints
- */
- unsigned int getNrOfJoints()const
- {
- return nrOfJoints;
- };
-
- /**
- * Request the total number of segments in the tree.
- * @return total number of segments
- */
- unsigned int getNrOfSegments()const {return nrOfSegments;};
-
- /**
- * Request the segment of the tree with name segment_name.
- *
- * @param segment_name the name of the requested segment
- *
- * @return constant iterator pointing to the requested segment
- */
- SegmentMap::const_iterator getSegment(const std::string& segment_name)const
- {
- return segments.find(segment_name);
- };
-
- SegmentMap::value_type const* getSegmentPtr(const std::string& segment_name)const
- {
- SegmentMap::const_iterator it = segments.find(segment_name);
-
- if (it == segments.end())
- return 0;
-
- return &*it;
- };
-
- const SegmentMap& getSegments()const
- {
- return segments;
- }
-
- virtual ~Tree(){};
- };
- }
- #endif
-
-
-
-
-
diff --git a/libre/blender/util_sseb.patch b/libre/blender/util_sseb.patch
deleted file mode 100644
index b65f44ffa..000000000
--- a/libre/blender/util_sseb.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/intern/cycles/util/util_sseb.h b/intern/cycles/util/util_sseb.h
-index 6e669701f3b..9ffe391666a 100644
---- a/intern/cycles/util/util_sseb.h
-+++ b/intern/cycles/util/util_sseb.h
-@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const sseb& b ) { return _mm_u
- __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); }
-
- template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) {
-- return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0));
-+ return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)));
- }
-
- template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) {