mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
community/blender to 2.79.b.git4.2c0c1f49-2
This commit is contained in:
parent
ad628192ce
commit
4ca54ad762
10 changed files with 24 additions and 544 deletions
|
@ -4,7 +4,7 @@
|
|||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - remove makedepend, optdepend on cuda
|
||||
# - set -DWITH_CYCLES_CUDA_BINARIES=OFF, -DWITH_CYCLES=OFF, -DWITH_RAYOPTIMIZATION=OFF
|
||||
# - set -DWITH_CYCLES=OFF, -DWITH_RAYOPTIMIZATION=OFF
|
||||
|
||||
buildarch=12
|
||||
|
||||
|
@ -17,12 +17,12 @@ buildarch=12
|
|||
# unreasonable.
|
||||
|
||||
# _gittag=v2.79b
|
||||
_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761
|
||||
_gitcommit=2c0c1f494dcfadb3c01d23e2348e28bc8864e9f3
|
||||
|
||||
pkgname=blender
|
||||
pkgver=2.79.b
|
||||
[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8}
|
||||
pkgrel=12
|
||||
[[ -n $_gitcommit ]] && pkgver=${pkgver}.git4.${_gitcommit:0:8}
|
||||
pkgrel=2
|
||||
epoch=17
|
||||
pkgdesc="A fully integrated 3D graphics creation suite"
|
||||
arch=('x86_64')
|
||||
|
@ -40,15 +40,8 @@ source=("git://git.blender.org/blender-addons.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
|
||||
gcc8.patch
|
||||
opencollada1.patch
|
||||
opencollada2.patch)
|
||||
python3.7.patch)
|
||||
if [[ -n $_gittag ]]; then
|
||||
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}")
|
||||
elif [[ -n $_gitcommit ]]; then
|
||||
|
@ -59,15 +52,8 @@ sha512sums=('SKIP'
|
|||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'e6b83d61cf1b48ce78aca11e04196c638f5510f84efc4fb1bd4554f54e0e6ab92911bcd8606845116f4257d0898fa52c026f402f934e1eb7f01bbe96d0afae2c'
|
||||
'446dd46557c7c976a68010c62e04693c61171980abea1cd0a900b00bcc3d525b83bb6ee200739623110e592e37e8f4783a18f234b40e9f85483830ea9785640d'
|
||||
'6c0a619fe8fbc215a9a7c9d4b9c6fc5ec355c37212ec41b05b50787465354bbc7200e76eaafba46a2253196391838190d3de3b2be132095d2162142940e87924'
|
||||
'429ffb6d36efb04c02d506858fc2691ea927ca486d950313dcb0c94d535a66409a14863807e69adc657dafbe243d0aad15cfaadf9f27bdc7c7759211da3fb8a8'
|
||||
'2bd8c59ab8f163b6c7f89b6dfe8aacee3307dae6ecdc0d4878e1376ba29584c891171edd0a57f12241a98e0dd43efff0675a16708d34122bc22faebe3fd8e181'
|
||||
'51f30acc407179f003d1dbec25fb47b0bf1fe8d2eb16e069a6ca83ab8b21f6032d636a42e0b140537ad1ad25ad38c52a87a2a33e51822729ab196fcef4682818'
|
||||
'86f8d6c766644090bb59715b219db74f7acbe31dcd92dc1ecc32beedc1c894a98d2875e9078efa9994511b79e094277a943746dd602be6bc33ba37b7a8a41269'
|
||||
'aea74c8d88e01703b46c5ee4e5a118aaeacfa0ace23e1fffd1b01d0395bafffa9012df22eca43050756f6dd8fb46c663eef1de3e061ca1911eaf1c2a0e01e58d'
|
||||
'31d0f2045f88cbdb1d5720775aa49eff4672f06def1bbbd9f85da363e93143375cda84259a3e8c9000f3fe70c58ee7e1de791b5dc95d4982e559b43700bd0a2a'
|
||||
'f5564e8db242f6fa9cd951590f4c6de8f5b1a8bbd73aeb6e837a840dd2696e71f7b6bb1c94f9c2377b199159f87a95bead8ee113c01e8763f3843918395cc177'
|
||||
'SKIP')
|
||||
|
||||
prepare() {
|
||||
|
@ -81,22 +67,14 @@ prepare() {
|
|||
git config submodule."scons".url ${srcdir}/scons
|
||||
git submodule update
|
||||
|
||||
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"/gcc8.patch
|
||||
patch -Np1 -i "$srcdir"/opencollada1.patch
|
||||
patch -Np1 -i "$srcdir"/opencollada2.patch
|
||||
patch -Np1 -i "$srcdir"/python3.7.patch -d release/scripts/addons_contrib
|
||||
|
||||
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 \
|
||||
|
@ -108,8 +86,8 @@ build() {
|
|||
-DWITH_GL_PROFILE_CORE=OFF \
|
||||
-DWITH_GL_PROFILE_ES20=OFF \
|
||||
-DWITH_LLVM=ON \
|
||||
-DWITH_CYCLES_CUDA_BINARIES=OFF \
|
||||
-DWITH_CYCLES_PTEX=OFF \
|
||||
-DWITH_OPENVDB_3_ABI_COMPATIBLE=ON \
|
||||
-DWITH_CYCLES=OFF \
|
||||
-DWITH_RAYOPTIMIZATION=OFF \
|
||||
-DPYTHON_VERSION=3.7 \
|
||||
|
|
|
@ -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) {
|
|
@ -1,24 +0,0 @@
|
|||
commit e5767eaad1c48a23eb3d8fed4616722189a70aa1
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Mon Jul 2 15:11:48 2018 +0200
|
||||
|
||||
Cycles: Fix missing curve hair when building with GCC-8 in release mode
|
||||
|
||||
Reshuffle cast intrinsics to make XOR to operate on __m128i rather
|
||||
than on __m128.
|
||||
|
||||
Hopefully this does not affect performance.
|
||||
|
||||
diff --git a/intern/cycles/util/util_ssef.h b/intern/cycles/util/util_ssef.h
|
||||
index bb007ff84a9..e9a617bb2cc 100644
|
||||
--- a/intern/cycles/util/util_ssef.h
|
||||
+++ b/intern/cycles/util/util_ssef.h
|
||||
@@ -606,7 +606,7 @@ ccl_device_inline const ssef uint32_to_float(const ssei &in)
|
||||
template<size_t S1, size_t S2, size_t S3, size_t S4>
|
||||
ccl_device_inline const ssef set_sign_bit(const ssef &a)
|
||||
{
|
||||
- return a ^ cast(ssei(S1 << 31, S2 << 31, S3 << 31, S4 << 31));
|
||||
+ return cast(cast(a) ^ ssei(S1 << 31, S2 << 31, S3 << 31, S4 << 31));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
|
@ -1,78 +0,0 @@
|
|||
commit 10c50d7dbf7578b35b3bf19a1948f556f9eb203b
|
||||
Author: Gaia Clary <gaia.clary@machinimatrix.org>
|
||||
Date: Tue Dec 4 19:11:33 2018 +0100
|
||||
|
||||
fix T58568 build errors when using collada 1.6.68 or newer
|
||||
|
||||
diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt
|
||||
index 293049a1a05..c250384b989 100644
|
||||
--- a/source/blender/collada/CMakeLists.txt
|
||||
+++ b/source/blender/collada/CMakeLists.txt
|
||||
@@ -25,6 +25,18 @@
|
||||
|
||||
remove_strict_flags()
|
||||
|
||||
+FIND_FILE(_opencollada_with_animation_clip
|
||||
+ NAMES
|
||||
+ COLLADAFWAnimationClip.h
|
||||
+ PATHS
|
||||
+ ${OPENCOLLADA_INCLUDE_DIRS}
|
||||
+ NO_DEFAULT_PATH
|
||||
+ )
|
||||
+
|
||||
+IF(_opencollada_with_animation_clip)
|
||||
+ add_compile_definitions(OPENCOLLADA_WITH_ANIMATION_CLIP)
|
||||
+ENDIF()
|
||||
+
|
||||
set(INC
|
||||
.
|
||||
../blenkernel
|
||||
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
|
||||
index 67fd9d648c7..24b7fc4317d 100644
|
||||
--- a/source/blender/collada/DocumentImporter.cpp
|
||||
+++ b/source/blender/collada/DocumentImporter.cpp
|
||||
@@ -1349,6 +1349,19 @@ bool DocumentImporter::writeAnimationList(const COLLADAFW::AnimationList *animat
|
||||
return anim_importer.write_animation_list(animationList);
|
||||
}
|
||||
|
||||
+#if OPENCOLLADA_WITH_ANIMATION_CLIP
|
||||
+// Since opencollada 1.6.68
|
||||
+// called on post-process stage after writeVisualScenes
|
||||
+bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *AnimationClip)
|
||||
+{
|
||||
+ if (mImportStage != General)
|
||||
+ return true;
|
||||
+
|
||||
+ return true;
|
||||
+ //return animation_clip_importer.write_animation_clip(animationClip); // TODO: implement import of AnimationClips
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/** When this method is called, the writer must write the skin controller data.
|
||||
* \return The writer should return true, if writing succeeded, false otherwise.*/
|
||||
bool DocumentImporter::writeSkinControllerData(const COLLADAFW::SkinControllerData *skin)
|
||||
diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
|
||||
index 17e61326032..5e9f899d42c 100644
|
||||
--- a/source/blender/collada/DocumentImporter.h
|
||||
+++ b/source/blender/collada/DocumentImporter.h
|
||||
@@ -49,8 +49,6 @@
|
||||
#include "MeshImporter.h"
|
||||
#include "ImportSettings.h"
|
||||
|
||||
-
|
||||
-
|
||||
struct bContext;
|
||||
|
||||
/** Importer class. */
|
||||
@@ -108,6 +106,11 @@ public:
|
||||
|
||||
bool writeAnimationList(const COLLADAFW::AnimationList*);
|
||||
|
||||
+#if OPENCOLLADA_WITH_ANIMATION_CLIP
|
||||
+ // Please enable this when building with Collada 1.6.65 or newer (also in DocumentImporter.cpp)
|
||||
+ bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *AnimationClip);
|
||||
+#endif
|
||||
+
|
||||
bool writeGeometry(const COLLADAFW::Geometry*);
|
||||
|
||||
bool writeMaterial(const COLLADAFW::Material*);
|
|
@ -1,32 +0,0 @@
|
|||
commit 22bba02bc8109f392fce50a24a4825390bca1bda
|
||||
Author: Gaia Clary <gaia.clary@machinimatrix.org>
|
||||
Date: Tue Dec 4 20:28:20 2018 +0100
|
||||
|
||||
fix T58568: used wrong case in variable name
|
||||
|
||||
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
|
||||
index 24b7fc4317d..7f93dd4823f 100644
|
||||
--- a/source/blender/collada/DocumentImporter.cpp
|
||||
+++ b/source/blender/collada/DocumentImporter.cpp
|
||||
@@ -1352,7 +1352,7 @@ bool DocumentImporter::writeAnimationList(const COLLADAFW::AnimationList *animat
|
||||
#if OPENCOLLADA_WITH_ANIMATION_CLIP
|
||||
// Since opencollada 1.6.68
|
||||
// called on post-process stage after writeVisualScenes
|
||||
-bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *AnimationClip)
|
||||
+bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *animationClip)
|
||||
{
|
||||
if (mImportStage != General)
|
||||
return true;
|
||||
diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
|
||||
index 5e9f899d42c..110389030de 100644
|
||||
--- a/source/blender/collada/DocumentImporter.h
|
||||
+++ b/source/blender/collada/DocumentImporter.h
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
|
||||
#if OPENCOLLADA_WITH_ANIMATION_CLIP
|
||||
// Please enable this when building with Collada 1.6.65 or newer (also in DocumentImporter.cpp)
|
||||
- bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *AnimationClip);
|
||||
+ bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *animationClip);
|
||||
#endif
|
||||
|
||||
bool writeGeometry(const COLLADAFW::Geometry*);
|
|
@ -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());
|
13
community/blender/python3.7.patch
Normal file
13
community/blender/python3.7.patch
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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 ) {
|
Loading…
Reference in a new issue