Merge branch 'master' into blender2.8
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 25 Sep 2017 13:56:34 +0000 (18:56 +0500)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 25 Sep 2017 13:57:43 +0000 (18:57 +0500)
38 files changed:
1  2 
CMakeLists.txt
build_files/build_environment/install_deps.sh
build_files/cmake/macros.cmake
build_files/cmake/platform/platform_apple.cmake
doc/doxygen/doxygen.source.h
release/scripts/startup/bl_ui/properties_data_modifier.py
release/scripts/startup/bl_ui/properties_render.py
source/blender/CMakeLists.txt
source/blender/blenkernel/BKE_armature.h
source/blender/blenkernel/BKE_scene.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/armature_update.c
source/blender/blenkernel/intern/cdderivedmesh.c
source/blender/blenkernel/intern/editderivedmesh.c
source/blender/blenkernel/intern/image.c
source/blender/blenkernel/intern/scene.c
source/blender/blenkernel/intern/subsurf_ccg.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
source/blender/depsgraph/intern/depsgraph_type_defines.cc
source/blender/depsgraph/intern/depsgraph_types.h
source/blender/editors/render/CMakeLists.txt
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesrna/RNA_access.h
source/blender/makesrna/intern/CMakeLists.txt
source/blender/makesrna/intern/rna_image_api.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_scene.c
source/blender/modifiers/intern/MOD_mirror.c
source/blender/python/intern/CMakeLists.txt
source/blender/render/CMakeLists.txt
source/blender/render/intern/source/initrender.c
source/blender/windowmanager/CMakeLists.txt
source/blenderplayer/CMakeLists.txt
source/creator/creator_args.c

diff --cc CMakeLists.txt
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -174,7 -172,12 +174,12 @@@ void BKE_pose_eval_init(const struct Ev
                          struct Object *ob,
                          struct bPose *pose);
  
 -void BKE_pose_eval_init_ik(struct EvaluationContext *eval_ctx,
++void BKE_pose_eval_init_ik(const struct EvaluationContext *eval_ctx,
+                            struct Scene *scene,
+                            struct Object *ob,
+                            struct bPose *pose);
 -void BKE_pose_eval_bone(struct EvaluationContext *eval_ctx,
 +void BKE_pose_eval_bone(const struct EvaluationContext *eval_ctx,
                          struct Scene *scene,
                          struct Object *ob,
                          struct bPoseChannel *pchan);
@@@ -43,14 -42,9 +43,12 @@@ struct Depsgraph
  struct EvaluationContext;
  struct Main;
  struct Object;
- struct Base;
- struct QuicktimeCodecData;
  struct RenderData;
 +struct SceneLayer;
  struct SceneRenderLayer;
  struct Scene;
 +struct SceneCollection;
 +struct SceneLayer;
  struct UnitSettings;
  struct Main;
  
@@@ -71,9 -63,7 +69,8 @@@ typedef enum eSceneCopyMethod 
  struct Base *_setlooper_base_step(struct Scene **sce_iter, struct Base *base);
  
  void free_avicodecdata(struct AviCodecData *acd);
- void free_qtcodecdata(struct QuicktimeCodecData *acd);
  
 +void BKE_scene_free_ex(struct Scene *sce, const bool do_id_user);
  void BKE_scene_free(struct Scene *sce);
  void BKE_scene_init(struct Scene *sce);
  struct Scene *BKE_scene_add(struct Main *bmain, const char *name);
@@@ -559,8 -558,8 +559,8 @@@ void BKE_splineik_execute_tree
  
  /* *************** Depsgraph evaluation callbacks ************ */
  
- void BKE_pose_eval_init(const struct EvaluationContext *eval_ctx,
-                         Scene *scene,
 -void BKE_pose_eval_init(EvaluationContext *UNUSED(eval_ctx),
++void BKE_pose_eval_init(const struct EvaluationContext *UNUSED(eval_ctx),
+                         Scene *UNUSED(scene),
                          Object *ob,
                          bPose *pose)
  {
        for (pchan = pose->chanbase.first; pchan != NULL; pchan = pchan->next) {
                pchan->flag &= ~(POSE_DONE | POSE_CHAIN | POSE_IKTREE | POSE_IKSPLINE);
        }
 -void BKE_pose_eval_init_ik(EvaluationContext *UNUSED(eval_ctx),
+ }
++void BKE_pose_eval_init_ik(const struct EvaluationContext *eval_ctx,
+                            Scene *scene,
+                            Object *ob,
+                            bPose *UNUSED(pose))
+ {
+       float ctime = BKE_scene_frame_get(scene); /* not accurate... */
+       DEBUG_PRINT("%s on %s\n", __func__, ob->id.name);
  
        /* 2a. construct the IK tree (standard IK) */
 -      BIK_initialize_tree(scene, ob, ctime);
 +      BIK_initialize_tree(eval_ctx, scene, ob, ctime);
  
        /* 2b. construct the Spline IK trees
         *  - this is not integrated as an IK plugin, since it should be able
@@@ -222,13 -180,14 +222,22 @@@ void DepsgraphNodeBuilder::build_rig(Sc
                                     DEG_OPCODE_POSE_INIT);
        op_node->set_as_entry();
  
 -      op_node = add_operation_node(&ob->id,
++      op_node = add_operation_node(&object->id,
+                                    DEG_NODE_TYPE_EVAL_POSE,
 -                                   function_bind(BKE_pose_eval_init_ik, _1, scene, ob, ob->pose),
++                                   function_bind(BKE_pose_eval_init_ik,
++                                                 _1,
++                                                 scene_cow,
++                                                 object_cow,
++                                                 object_cow->pose),
+                                    DEG_OPCODE_POSE_INIT_IK);
 -      op_node = add_operation_node(&ob->id,
 +      op_node = add_operation_node(&object->id,
                                     DEG_NODE_TYPE_EVAL_POSE,
 -                                   function_bind(BKE_pose_eval_flush, _1, scene, ob, ob->pose),
 +                                   function_bind(BKE_pose_eval_flush,
 +                                                 _1,
 +                                                 scene_cow,
 +                                                 object_cow,
 +                                                 object_cow->pose),
                                     DEG_OPCODE_POSE_DONE);
        op_node->set_as_exit();
  
@@@ -109,16 -102,14 +109,17 @@@ static const char *stringify_opcode(eDe
                STRINGIFY_OPCODE(TRANSFORM_LOCAL);
                STRINGIFY_OPCODE(TRANSFORM_PARENT);
                STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS);
 +              STRINGIFY_OPCODE(TRANSFORM_FINAL);
 +              STRINGIFY_OPCODE(TRANSFORM_OBJECT_UBEREVAL);
 +              /* Rigid body. */
                STRINGIFY_OPCODE(RIGIDBODY_REBUILD);
                STRINGIFY_OPCODE(RIGIDBODY_SIM);
 -              STRINGIFY_OPCODE(TRANSFORM_RIGIDBODY);
 -              STRINGIFY_OPCODE(TRANSFORM_FINAL);
 -              STRINGIFY_OPCODE(OBJECT_UBEREVAL);
 +              STRINGIFY_OPCODE(RIGIDBODY_TRANSFORM_COPY);
 +              /* Geometry. */
                STRINGIFY_OPCODE(GEOMETRY_UBEREVAL);
 +              /* Pose. */
                STRINGIFY_OPCODE(POSE_INIT);
+               STRINGIFY_OPCODE(POSE_INIT_IK);
                STRINGIFY_OPCODE(POSE_DONE);
                STRINGIFY_OPCODE(POSE_IK_SOLVER);
                STRINGIFY_OPCODE(POSE_SPLINE_IK_SOLVER);
@@@ -154,34 -146,47 +154,36 @@@ typedef enum eDepsOperation_Code 
        /* Driver */
        DEG_OPCODE_DRIVER,
  
 -      /* Transform --------------------------------------- */
 -
 +      /* Transform. -------------------------------------- */
        /* Transform entry point - local transforms only */
        DEG_OPCODE_TRANSFORM_LOCAL,
 -
        /* Parenting */
        DEG_OPCODE_TRANSFORM_PARENT,
 -
        /* Constraints */
        DEG_OPCODE_TRANSFORM_CONSTRAINTS,
 +      /* Transform exit point */
 +      DEG_OPCODE_TRANSFORM_FINAL,
 +      /* Handle object-level updates, mainly proxies hacks and recalc flags.  */
 +      DEG_OPCODE_TRANSFORM_OBJECT_UBEREVAL,
  
 -      /* Rigidbody Sim - Perform Sim */
 +      /* Rigid body. -------------------------------------- */
 +      /* Perform Simulation */
        DEG_OPCODE_RIGIDBODY_REBUILD,
        DEG_OPCODE_RIGIDBODY_SIM,
 +      /* Copy results to object */
 +      DEG_OPCODE_RIGIDBODY_TRANSFORM_COPY,
  
 -      /* Rigidbody Sim - Copy Results to Object */
 -      DEG_OPCODE_TRANSFORM_RIGIDBODY,
 -
 -      /* Transform exitpoint */
 -      DEG_OPCODE_TRANSFORM_FINAL,
 -
 -      /* XXX: ubereval is for temporary porting purposes only */
 -      DEG_OPCODE_OBJECT_UBEREVAL,
 -
 -      /* Geometry ---------------------------------------- */
 -
 -      /* XXX: Placeholder - UberEval */
 +      /* Geometry. ---------------------------------------- */
 +      /* Evaluate the whole geometry, including modifiers. */
        DEG_OPCODE_GEOMETRY_UBEREVAL,
  
 -      /* Pose -------------------------------------------- */
 -
 +      /* Pose. -------------------------------------------- */
-       /* Init IK Trees, etc. */
+       /* Init pose, clear flags, etc. */
        DEG_OPCODE_POSE_INIT,
 -
+       /* Initialize IK solver related pose stuff. */
+       DEG_OPCODE_POSE_INIT_IK,
 -
        /* Free IK Trees + Compute Deform Matrices */
        DEG_OPCODE_POSE_DONE,
 -
        /* IK/Spline Solvers */
        DEG_OPCODE_POSE_IK_SOLVER,
        DEG_OPCODE_POSE_SPLINE_IK_SOLVER,
Simple merge
Simple merge
  
  #include "BKE_camera.h"
  
- #ifdef WITH_QUICKTIME
- #include "quicktime_export.h"
- #endif
 +#include "DEG_depsgraph.h"
 +
  /* this module */
  #include "renderpipeline.h"
  #include "render_types.h"
Simple merge
Simple merge