[Bf-blender-cvs] [2525f9c] : backport revisions from master for 2.70-rc2 tag

Sergey Sharybin noreply at git.blender.org
Wed Mar 12 19:02:07 CET 2014


Commit: 2525f9c5f31e90bcb8f2e8c84558a2bc35e3207c
Author: Sergey Sharybin
Date:   Wed Mar 12 23:57:33 2014 +0600
https://developer.blender.org/rB2525f9c5f31e90bcb8f2e8c84558a2bc35e3207c

backport revisions from master for 2.70-rc2 tag

This includes:

68ef679, d0ad48f, e913eab + 8d09ec6, 9630fa7, 4ce7d5c,
b839fb9, 43b5f0a, 4d47e75, 89c793f, b23a439, 0a3850f
de86b70, cfefc5d, 997b49a, 6919ffb, c1be7e1, 6ddd54f
7a9838b + 98abc80, 23fbc9f, 41dde55, 500088d, c2045ef

c31c8fa, 7461fea, d219312, 0844451 + c05896e, ef51b69
19935f0, b977cfd, 3c3c2cd, 9ecf73f, 20f7a34, f03df4f
2de9da6, ba81fb7, a7ab389, d7cff8f7

===================================================================

M	build_files/cmake/buildinfo.cmake
M	build_files/scons/tools/Blender.py
M	extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp
M	extern/bullet2/src/SConscript
M	extern/carve/lib/intersect_face_division.cpp
A	extern/carve/patches/msvc_fix.patch
M	extern/carve/patches/series
M	intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
M	intern/cycles/render/scene.cpp
M	intern/ghost/intern/GHOST_WindowCocoa.mm
M	release/darwin/codesigning_rules_blender.plist
M	release/darwin/codesigning_rules_player.plist
M	release/scripts/startup/bl_ui/properties_data_camera.py
M	release/scripts/startup/bl_ui/space_userpref.py
M	source/blender/blenkernel/BKE_particle.h
M	source/blender/blenkernel/BKE_pbvh.h
M	source/blender/blenkernel/BKE_sound.h
M	source/blender/blenkernel/intern/boids.c
M	source/blender/blenkernel/intern/curve.c
M	source/blender/blenkernel/intern/fmodifier.c
M	source/blender/blenkernel/intern/movieclip.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/paint.c
M	source/blender/blenkernel/intern/particle.c
M	source/blender/blenkernel/intern/particle_system.c
M	source/blender/blenkernel/intern/pbvh.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/sound.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/compositor/operations/COM_DisplaceOperation.cpp
M	source/blender/editors/animation/anim_filter.c
M	source/blender/editors/interface/interface_ops.c
M	source/blender/editors/mask/mask_shapekey.c
M	source/blender/editors/mesh/editmesh_knife.c
M	source/blender/editors/object/object_add.c
M	source/blender/editors/sculpt_paint/paint_vertex.c
M	source/blender/editors/sculpt_paint/sculpt.c
M	source/blender/editors/sculpt_paint/sculpt_uv.c
M	source/blender/editors/space_action/action_edit.c
M	source/blender/editors/space_clip/clip_editor.c
M	source/blender/editors/space_clip/clip_ops.c
M	source/blender/editors/space_image/space_image.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/gpu/shaders/gpu_shader_material.glsl
M	source/blender/imbuf/intern/indexer.c
M	source/blender/makesdna/DNA_particle_types.h
M	source/blender/makesrna/intern/rna_nla.c
M	source/blender/render/intern/source/convertblender.c
M	source/blender/render/intern/source/pipeline.c
M	source/blender/windowmanager/intern/wm_operators.c
M	source/creator/creator.c

===================================================================

diff --git a/build_files/cmake/buildinfo.cmake b/build_files/cmake/buildinfo.cmake
index 48e03ed..c1d21c4 100644
--- a/build_files/cmake/buildinfo.cmake
+++ b/build_files/cmake/buildinfo.cmake
@@ -35,8 +35,26 @@ if(EXISTS ${SOURCE_DIR}/.git)
 			STRING(REGEX REPLACE "^[ \t]+" "" _git_contains_check "${_git_contains_check}")
 			if(_git_contains_check STREQUAL "master")
 				set(MY_WC_BRANCH "master")
+			else()
+				execute_process(COMMAND git show-ref --tags -d
+				                WORKING_DIRECTORY ${SOURCE_DIR}
+				                OUTPUT_VARIABLE _git_tag_hashes
+				                OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+				execute_process(COMMAND git rev-parse HEAD
+				                WORKING_DIRECTORY ${SOURCE_DIR}
+				                OUTPUT_VARIABLE _git_head_hash
+				                OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+				if(_git_tag_hashes MATCHES "${_git_head_hash}")
+					set(MY_WC_BRANCH "master")
+				endif()
+
+				unset(_git_tag_hashes)
+				unset(_git_head_hashs)
 			endif()
 
+
 			unset(_git_contains_check)
 		else()
 			execute_process(COMMAND git log HEAD..@{u}
diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py
index fc4121a..4ceadc7 100644
--- a/build_files/scons/tools/Blender.py
+++ b/build_files/scons/tools/Blender.py
@@ -430,6 +430,11 @@ def buildinfo(lenv, build_type):
                 master_check = os.popen('git branch --list master --contains ' + build_hash).read().strip()
                 if master_check == 'master':
                     build_branch = 'master'
+                else:
+                    head_hash = os.popen('git rev-parse HEAD').read().strip()
+                    tag_hashes = os.popen('git show-ref --tags -d').read()
+                    if tag_hashes.find(head_hash) != -1:
+                        build_branch = 'master'
 
             if build_hash == '':
                 build_hash = os.popen('git rev-parse --short HEAD').read().strip()
diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp
index cf73556..893453b 100644
--- a/extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp
+++ b/extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp
@@ -354,11 +354,11 @@ double plNearestPoints(float p1[3], float p2[3], float p3[3], float q1[3], float
 	// btVoronoiSimplexSolver sGjkSimplexSolver;
 	// btGjkEpaPenetrationDepthSolver penSolverPtr;	
 	
-	static btSimplexSolverInterface sGjkSimplexSolver;
+	/*static*/ btSimplexSolverInterface sGjkSimplexSolver;
 	sGjkSimplexSolver.reset();
 	
-	static btGjkEpaPenetrationDepthSolver Solver0;
-	static btMinkowskiPenetrationDepthSolver Solver1;
+	/*static*/ btGjkEpaPenetrationDepthSolver Solver0;
+	/*static*/ btMinkowskiPenetrationDepthSolver Solver1;
 		
 	btConvexPenetrationDepthSolver* Solver = NULL;
 	
diff --git a/extern/bullet2/src/SConscript b/extern/bullet2/src/SConscript
index ff2e86a..69e5678 100644
--- a/extern/bullet2/src/SConscript
+++ b/extern/bullet2/src/SConscript
@@ -19,7 +19,8 @@ elif env['OURPLATFORM'] in ('linux', 'freebsd4', 'freebsd5'):
     cflags += ['-O2']
 elif sys.platform=='darwin':
     defs += ' NDEBUG'
-    cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math']
+    bt_cc_flags = env['CCFLAGS'] + ['-O0', '-fPIC', '-msse','-msse2', '-msse3', '-mssse3', '-ffast-math']
+    bt_cxx_flags = env['CXXFLAGS'] + ['-O0', '-fPIC', '-msse','-msse2', '-msse3', '-mssse3', '-ffast-math']
 
 bullet2_src = env.Glob("LinearMath/*.cpp")
 bullet2_src += env.Glob("BulletCollision/BroadphaseCollision/*.cpp")
@@ -37,7 +38,7 @@ bullet2_src += env.Glob("BulletSoftBody/*.cpp")
 
 incs = '. BulletCollision BulletDynamics LinearMath BulletSoftBody'
 
-if sys.platform=='darwin' and env['CC'][:-2].endswith('4.6'): # workaround for an gcc-4.6 compiler bug
-	env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags, cc_compilerchange='/usr/bin/gcc', cxx_compilerchange='/usr/bin/g++' )
+if sys.platform=='darwin':
+	env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], cc_compileflags=bt_cc_flags, cxx_compileflags=bt_cxx_flags )
 else:
 	env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags )
diff --git a/extern/carve/lib/intersect_face_division.cpp b/extern/carve/lib/intersect_face_division.cpp
index ea82b7e..e826948 100644
--- a/extern/carve/lib/intersect_face_division.cpp
+++ b/extern/carve/lib/intersect_face_division.cpp
@@ -1121,7 +1121,9 @@ namespace {
         }
 
         // copy up to the end of the path.
-        std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out));
+        if (pos < e1_1) {
+            std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out));
+        }
 
         CARVE_ASSERT(base_loop[e1_1] == p1.back());
         std::copy(p1.rbegin(), p1.rend() - 1, std::back_inserter(out));
diff --git a/extern/carve/patches/msvc_fix.patch b/extern/carve/patches/msvc_fix.patch
new file mode 100644
index 0000000..67431ec
--- /dev/null
+++ b/extern/carve/patches/msvc_fix.patch
@@ -0,0 +1,14 @@
+diff -r e82d852e4fb0 lib/intersect_face_division.cpp
+--- a/lib/intersect_face_division.cpp	Wed Jan 15 13:16:14 2014 +1100
++++ b/lib/intersect_face_division.cpp	Wed Mar 12 23:09:19 2014 +0600
+@@ -1121,7 +1121,9 @@
+         }
+ 
+         // copy up to the end of the path.
+-        std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out));
++        if (pos < e1_1) {
++            std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out));
++        }
+ 
+         CARVE_ASSERT(base_loop[e1_1] == p1.back());
+         std::copy(p1.rbegin(), p1.rend() - 1, std::back_inserter(out));
diff --git a/extern/carve/patches/series b/extern/carve/patches/series
index b1254dd..62a24d9 100644
--- a/extern/carve/patches/series
+++ b/extern/carve/patches/series
@@ -8,3 +8,4 @@ strict_flags.patch
 interpolator_reorder.patch
 mesh_simplify_dissolve_edges.patch
 memory_leak_fix.patch
+mavc_fix.patch
diff --git a/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp b/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
index c3877c2..d055c13 100644
--- a/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
+++ b/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
@@ -994,7 +994,7 @@ void AUD_OpenALDevice::updateStreams()
 				if(info != AL_PLAYING)
 				{
 					// if it really stopped
-					if(sound->m_eos)
+					if(sound->m_eos && info != AL_INITIAL)
 					{
 						if(sound->m_stop)
 							sound->m_stop(sound->m_stop_data);
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp
index 71f5a9d..daf22d9 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/render/scene.cpp
@@ -137,6 +137,8 @@ void Scene::device_update(Device *device_, Progress& progress)
 	 * - Camera may be used for adapative subdivison.
 	 * - Displacement shader must have all shader data available.
 	 * - Light manager needs lookup tables and final mesh data to compute emission CDF.
+	 * - Film needs light manager to run for use_light_visibility
+	 * - Lookup tables are done a second time to handle film tables
 	 */
 	
 	image_manager->set_pack_images(device->info.pack_images);
@@ -171,11 +173,6 @@ void Scene::device_update(Device *device_, Progress& progress)
 
 	if(progress.get_cancel()) return;
 
-	progress.set_status("Updating Film");
-	film->device_update(device, &dscene, this);
-
-	if(progress.get_cancel()) return;
-
 	progress.set_status("Updating Lookup Tables");
 	lookup_tables->device_update(device, &dscene);
 
@@ -196,11 +193,21 @@ void Scene::device_update(Device *device_, Progress& progress)
 
 	if(progress.get_cancel()) return;
 
+	progress.set_status("Updating Film");
+	film->device_update(device, &dscene, this);
+
+	if(progress.get_cancel()) return;
+
 	progress.set_status("Updating Integrator");
 	integrator->device_update(device, &dscene, this);
 
 	if(progress.get_cancel()) return;
 
+	progress.set_status("Updating Lookup Tables");
+	lookup_tables->device_update(device, &dscene);
+
+	if(progress.get_cancel()) return;
+
 	progress.set_status("Updating Device", "Writing constant memory");
 	device->const_copy_to("__data", &dscene.data, sizeof(dscene.data));
 }
diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm
index a1dcbe7..95bf060 100644
--- a/intern/ghost/intern/GHOST_WindowCocoa.mm
+++ b/intern/ghost/intern/GHOST_WindowCocoa.mm
@@ -598,7 +598,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
 	// Force software OpenGL, for debugging
 	if (getenv("BLENDER_SOFTWAREGL")) {
 		pixelFormatAttrsWindow[i++] = NSOpenGLPFARendererID;
-		pixelFormatAttrsWindow[i++] = kCGLRendererGenericID;
+		pixelFormatAttrsWindow[i++] = kCGLRendererAppleSWID;
 	}
 	else
 		pixelFormatAttrsWindow[i++] = NSOpenGLPFAAccelerated;
@@ -643,7 +643,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
 		// Force software OpenGL, for debugging
 		if (getenv("BLENDER_SOFTWAREGL")) {
 			pixelFormatAttrsWindow[i++] = NSOpenGLPFARendererID;
-			pixelFormatAttrsWindow[i++] = kCGLRendererGenericID;
+			pixelFormatAttrsWindow[i++] = kCGLRendererAppleSWID;
 		}
 		else
 			pixelFormatAttrsWindow[i++] = NSOpenGLPFAAccelerated;
diff --git a/release/darwin/codesigning_rules_blender.plist b/release/darwin/codesigning_rules_blender.plist
index b3baba8..aa5580d 100644
--- a/release/darwin/codesigning_rules_blender.plist
+++ b/release/darwin/codesigning_rules_blender.plist
@@ -5,7 +5,7 @@
 	<key>rules</key>
 	<dict>
 		<!-- Exclude datafiles, python and scripts -->
-		<key>^MacOS/2.69</key>
+		<key>^MacOS/2.70</key>
 		<false/>
 		<key>^Resources/</key>
 		<true/>
diff --git a/release/darwin/codesigning_rules_player.plist b/release/darwin/codesigning_rules_player.plist
index 2a85041f..ff154df 100644
--- a/release/darwin/codesigning_rules_player.plist
+++ b/release/darwin/codesigning_rules_player.plist
@@ -5,7 +5,

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list