[Bf-blender-cvs] [f32a18994ad] blender2.8: Merge branch 'master' into blender2.8

Sergey Sharybin noreply at git.blender.org
Wed May 31 15:52:30 CEST 2017


Commit: f32a18994ad7f37eb568771f01bab9db53d38d54
Author: Sergey Sharybin
Date:   Wed May 31 15:51:17 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBf32a18994ad7f37eb568771f01bab9db53d38d54

Merge branch 'master' into blender2.8

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



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

diff --cc source/blender/alembic/intern/abc_exporter.h
index 3831acaafab,f763922a73b..15158a9ef51
--- a/source/blender/alembic/intern/abc_exporter.h
+++ b/source/blender/alembic/intern/abc_exporter.h
@@@ -106,19 -103,21 +106,21 @@@ public
  
  	void operator()(Main *bmain, float &progress, bool &was_canceled);
  
- private:
- 	void getShutterSamples(double step, bool time_relative, std::vector<double> &samples);
+ protected:
+ 	void getShutterSamples(unsigned int nr_of_samples,
+ 	                       bool time_relative,
+ 	                       std::vector<double> &samples);
+ 	void getFrameSet(unsigned int nr_of_samples, std::set<double> &frames);
  
+ private:
  	Alembic::Abc::TimeSamplingPtr createTimeSampling(double step);
  
- 	void getFrameSet(double step, std::set<double> &frames);
- 
  	void createTransformWritersHierarchy(EvaluationContext *eval_ctx);
  	AbcTransformWriter * createTransformWriter(Object *ob,  Object *parent, Object *dupliObParent);
 -	void exploreTransform(EvaluationContext *eval_ctx, Object *ob, Object *parent, Object *dupliObParent = NULL);
 -	void exploreObject(EvaluationContext *eval_ctx, Object *ob, Object *dupliObParent);
 +	void exploreTransform(EvaluationContext *eval_ctx, Base *ob_base, Object *parent, Object *dupliObParent);
 +	void exploreObject(EvaluationContext *eval_ctx, Base *ob_base, Object *dupliObParent);
  	void createShapeWriters(EvaluationContext *eval_ctx);
 -	void createShapeWriter(Object *ob, Object *dupliObParent);
 +	void createShapeWriter(Base *ob_base, Object *dupliObParent);
  	void createParticleSystemsWriters(Object *ob, AbcTransformWriter *xform);
  
  	AbcTransformWriter *getXForm(const std::string &name);
diff --cc source/blender/alembic/intern/alembic_capi.cc
index cfff13ec77e,5ac73175e5b..3cad132b7be
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@@ -332,24 -330,13 +332,24 @@@ bool ABC_export
  	 * hardcore refactoring. */
  	new (&job->settings) ExportSettings();
  	job->settings.scene = job->scene;
 +
 +	/* Sybren: for now we only export the active scene layer.
 +	 * Later in the 2.8 development process this may be replaced by using
 +	 * a specific collection for Alembic I/O, which can then be toggled
 +	 * between "real" objects and cached Alembic files. */
 +	job->settings.sl = CTX_data_scene_layer(C);
 +
  	job->settings.frame_start = params->frame_start;
  	job->settings.frame_end = params->frame_end;
- 	job->settings.frame_step_xform = params->frame_step_xform;
- 	job->settings.frame_step_shape = params->frame_step_shape;
+ 	job->settings.frame_samples_xform = params->frame_samples_xform;
+ 	job->settings.frame_samples_shape = params->frame_samples_shape;
  	job->settings.shutter_open = params->shutter_open;
  	job->settings.shutter_close = params->shutter_close;
 +
 +	/* Sybren: For now this is ignored, until we can get selection
 +	 * detection working through Base pointers (instead of ob->flags). */
  	job->settings.selected_only = params->selected_only;
 +
  	job->settings.export_face_sets = params->face_sets;
  	job->settings.export_normals = params->normals;
  	job->settings.export_uvs = params->uvs;
diff --cc source/blender/depsgraph/intern/eval/deg_eval.cc
index 8bed13d0499,54947ddbb5e..a2bc38a7b5e
--- a/source/blender/depsgraph/intern/eval/deg_eval.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval.cc
@@@ -123,7 -126,9 +123,9 @@@ static void deg_task_run_func(TaskPool 
  #endif
  	}
  
+ 	BLI_task_pool_delayed_push_begin(pool, thread_id);
 -	schedule_children(pool, state->graph, node, state->layers, thread_id);
 +	schedule_children(pool, state->graph, node, thread_id);
+ 	BLI_task_pool_delayed_push_end(pool, thread_id);
  }
  
  typedef struct CalculatePengindData {
diff --cc source/blender/depsgraph/intern/eval/deg_eval_flush.cc
index e10f86f6e95,d64fdd83d39..afcf6994253
--- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
@@@ -164,14 -164,32 +164,33 @@@ void deg_graph_flush_updates(Main *bmai
  					 * Plus it ensures visibility changes and relations and
  					 * layers visibility update has proper flags to work with.
  					 */
- 					if (comp_node->type == DEPSNODE_TYPE_ANIMATION) {
- 						object->recalc |= OB_RECALC_TIME;
- 					}
- 					else if (comp_node->type == DEPSNODE_TYPE_TRANSFORM) {
- 						object->recalc |= OB_RECALC_OB;
- 					}
- 					else {
- 						object->recalc |= OB_RECALC_DATA;
+ 					switch (comp_node->type) {
+ 						case DEPSNODE_TYPE_UNDEFINED:
+ 						case DEPSNODE_TYPE_OPERATION:
+ 						case DEPSNODE_TYPE_ROOT:
+ 						case DEPSNODE_TYPE_TIMESOURCE:
+ 						case DEPSNODE_TYPE_ID_REF:
+ 						case DEPSNODE_TYPE_SUBGRAPH:
+ 						case DEPSNODE_TYPE_PARAMETERS:
+ 						case DEPSNODE_TYPE_SEQUENCER:
++						case DEPSNODE_TYPE_LAYER_COLLECTIONS:
+ 							/* Ignore, does not translate to object component. */
+ 							break;
+ 						case DEPSNODE_TYPE_ANIMATION:
+ 							object->recalc |= OB_RECALC_TIME;
+ 							break;
+ 						case DEPSNODE_TYPE_TRANSFORM:
+ 							object->recalc |= OB_RECALC_OB;
+ 							break;
+ 						case DEPSNODE_TYPE_GEOMETRY:
+ 						case DEPSNODE_TYPE_EVAL_POSE:
+ 						case DEPSNODE_TYPE_BONE:
+ 						case DEPSNODE_TYPE_EVAL_PARTICLES:
+ 						case DEPSNODE_TYPE_SHADING:
+ 						case DEPSNODE_TYPE_CACHE:
+ 						case DEPSNODE_TYPE_PROXY:
+ 							object->recalc |= OB_RECALC_DATA;
+ 							break;
  					}
  				}
  			}
diff --cc source/blender/depsgraph/util/deg_util_foreach.h
index 8c234eae7de,cb7361fc708..e00aa5dbb5e
--- a/source/blender/depsgraph/util/deg_util_foreach.h
+++ b/source/blender/depsgraph/util/deg_util_foreach.h
@@@ -36,30 -36,13 +36,5 @@@
  #  include <boost/foreach.hpp>
  #  define foreach BOOST_FOREACH
  #else
 -#pragma message("No available foreach() implementation. Using stub instead, disabling new depsgraph")
 -
 -#ifndef WITH_LEGACY_DEPSGRAPH
 -#  error "Unable to build new depsgraph and legacy one is disabled."
 -#endif
 -
 -#define DISABLE_NEW_DEPSGRAPH
 -
 -#  define foreach(x, y) for (x; false; (void)y)
 +#  error "Depsgraph requires either Boost or C++11 for range-based loops."
  #endif
- 
- #define GHASH_FOREACH_BEGIN(type, var, what) \
- 	do { \
- 		GHashIterator gh_iter##var; \
- 		GHASH_ITER(gh_iter##var, what) { \
- 			type var = reinterpret_cast<type>(BLI_ghashIterator_getValue(&gh_iter##var)); \
- 
- #define GHASH_FOREACH_END() \
- 		} \
- 	} while(0)
- 
- #define GSET_FOREACH_BEGIN(type, var, what) \
- 	do { \
- 		GSetIterator gh_iter##var; \
- 		GSET_ITER(gh_iter##var, what) { \
- 			type var = reinterpret_cast<type>(BLI_gsetIterator_getKey(&gh_iter##var)); \
- 
- #define GSET_FOREACH_END() \
- 		} \
- 	} while(0)
- 
- #define LINKLIST_FOREACH(type, var, list)          \
- 	for (type var = (type)((list)->first);     \
- 	     var != NULL;                          \
- 	     var = (type)(((Link*)(var))->next))




More information about the Bf-blender-cvs mailing list