[Bf-blender-cvs] [9bf209f] depsgraph_refactor: Merge branch 'master' into depsgraph_refactor
Sergey Sharybin
noreply at git.blender.org
Mon Mar 16 10:57:49 CET 2015
Commit: 9bf209f24ba5f45fdb4b417a5cb0d21183c6a431
Author: Sergey Sharybin
Date: Mon Mar 16 14:36:24 2015 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rB9bf209f24ba5f45fdb4b417a5cb0d21183c6a431
Merge branch 'master' into depsgraph_refactor
Conflicts:
CMakeLists.txt
build_files/scons/tools/btools.py
intern/cycles/util/util_types.h
source/blender/editors/object/object_constraint.c
===================================================================
===================================================================
diff --cc CMakeLists.txt
index f44fba7,8e54ddc..939df35
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -436,9 -440,10 +440,13 @@@ if(MSVC
set(CPACK_INSTALL_PREFIX ${CMAKE_GENERIC_PROGRAM_FILES}/${})
endif()
+ # Experimental support of C++11
+ option(WITH_CPP11 "Build with C++11 standard enabled, for development use only!" OFF)
+ mark_as_advanced(WITH_CPP11)
+
+# Dependency graph
+option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON)
+
# avoid using again
option_defaults_clear()
diff --cc build_files/scons/tools/btools.py
index 2ad6da4,c5342d6..6ec6459
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@@ -198,7 -198,8 +198,8 @@@ def validate_arguments(args, bc)
'C_WARN', 'CC_WARN', 'CXX_WARN',
'LLIBS', 'PLATFORM_LINKFLAGS', 'MACOSX_ARCHITECTURE', 'MACOSX_SDK', 'XCODE_CUR_VER', 'C_COMPILER_ID',
'BF_CYCLES_CUDA_BINARIES_ARCH', 'BF_PROGRAM_LINKFLAGS', 'MACOSX_DEPLOYMENT_TARGET',
- 'WITH_BF_CYCLES_DEBUG', 'WITH_BF_CYCLES_LOGGING', 'WITH_BF_LEGACY_DEPSGRAPH', 'WITH_BF_OGDF'
+ 'WITH_BF_CYCLES_DEBUG', 'WITH_BF_CYCLES_LOGGING',
- 'WITH_BF_CPP11'
++ 'WITH_BF_CPP11', 'WITH_BF_LEGACY_DEPSGRAPH', 'WITH_BF_OGDF',
]
@@@ -655,8 -656,7 +656,10 @@@ def read_opts(env, cfg, args)
('BF_PROGRAM_LINKFLAGS', 'Link flags applied only to final binaries (blender and blenderplayer, not makesrna/makesdna)', ''),
+ (BoolVariable('WITH_BF_CPP11', '"Build with C++11 standard enabled, for development use only!', False)),
++
+ (BoolVariable('WITH_BF_LEGACY_DEPSGRAPH', 'Build Blender with legacy dependency graph', True)),
+ (BoolVariable('WITH_BF_OGDF', 'Build Blender with OGDF for debugging depsgraph', True)),
) # end of opts.AddOptions()
return localopts
diff --cc source/blender/blenkernel/BKE_modifier.h
index fe2a3b3,1ec4e23..3afa931
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@@ -41,9 -41,9 +41,10 @@@ struct Scene
struct ListBase;
struct LinkNode;
struct bArmature;
+ struct Main;
struct ModifierData;
struct BMEditMesh;
+struct DepsNodeHandle;
typedef enum {
/* Should not be used, only for None modifier type */
@@@ -257,16 -257,10 +258,17 @@@ typedef struct ModifierTypeInfo
*
* This function is optional.
*/
- void (*updateDepgraph)(struct ModifierData *md, struct DagForest *forest, struct Scene *scene,
+ void (*updateDepgraph)(struct ModifierData *md, struct DagForest *forest,
+ struct Main *bmain, struct Scene *scene,
struct Object *ob, struct DagNode *obNode);
+ /* Add the appropriate relations to the dependency graph.
+ *
+ * This function is optional.
+ */
+ /* XXX DEPSGRAPH PORTING: remove the old callback above once porting is complete! */
+ void (*updateDepsgraph)(struct ModifierData *md, struct Scene *scene, struct Object *ob, struct DepsNodeHandle *node);
+
/* Should return true if the modifier needs to be recalculated on time
* changes.
*
diff --cc source/blender/editors/object/object_constraint.c
index 4aa5b45,231d23b..1653a7f
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@@ -1165,7 -1165,17 +1165,17 @@@ void ED_object_constraint_dependency_up
{
ED_object_constraint_update(ob);
- if (ob->pose) BKE_pose_tag_recalc(bmain, ob->pose); // checks & sorts pose channels
+ if (ob->pose) {
- ob->pose->flag |= POSE_RECALC; /* Checks & sort pose channels. */
++ BKE_pose_tag_recalc(bmain, ob->pose); /* Checks & sort pose channels. */
+ if (ob->proxy && ob->adt) {
+ /* We need to make use of ugly POSE_ANIMATION_WORKAROUND here too, else anim data are not reloaded
+ * after calling `BKE_pose_rebuild()`, which causes T43872.
+ * Note that this is a bit wide here, since we cannot be sure whether there are some locked proxy bones
+ * or not...
+ * XXX Temp hack until new depsgraph hopefully solves this. */
+ ob->adt->recalc |= ADT_RECALC_ANIM;
+ }
+ }
DAG_relations_tag_update(bmain);
}
@@@ -1727,7 -1734,13 +1737,13 @@@ static int constraint_add_exec(bContex
DAG_relations_tag_update(bmain);
if ((ob->type == OB_ARMATURE) && (pchan)) {
- ob->pose->flag |= POSE_RECALC; /* sort pose channels */
+ BKE_pose_tag_recalc(bmain, ob->pose); /* sort pose channels */
+ if (BKE_constraints_proxylocked_owner(ob, pchan) && ob->adt) {
+ /* We need to make use of ugly POSE_ANIMATION_WORKAROUND here too, else anim data are not reloaded
+ * after calling `BKE_pose_rebuild()`, which causes T43872.
+ * XXX Temp hack until new depsgraph hopefully solves this. */
+ ob->adt->recalc |= ADT_RECALC_ANIM;
+ }
DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB);
}
else
More information about the Bf-blender-cvs
mailing list