Commit: 1b462e5a51458e36df886838ee272b4bb18ed4da
Author: Campbell Barton
Date: Wed Aug 16 12:45:11 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB1b462e5a51458e36df886838ee272b4bb18ed4da
Pass EvaluationContext instead of bContext
2.8x branch added bContext arg in many places,
pass eval-context instead since its not simple to reason about what
what nested functions do when they can access and change almost anything.
Also use const to prevent unexpected modifications.
This fixes crash loading files with shadows,
since off-screen buffers use a NULL context for rendering.
===================================================================
M intern/itasc/FixedObject.hpp
M intern/itasc/MovingFrame.cpp
M intern/itasc/MovingFrame.hpp
M intern/itasc/Scene.cpp
M intern/itasc/Scene.hpp
M intern/itasc/UncontrolledObject.hpp
M intern/itasc/WorldObject.hpp
M source/blender/blenkernel/BKE_DerivedMesh.h
M source/blender/blenkernel/BKE_anim.h
M source/blender/blenkernel/BKE_animsys.h
M source/blender/blenkernel/BKE_armature.h
M source/blender/blenkernel/BKE_cloth.h
M source/blender/blenkernel/BKE_constraint.h
M source/blender/blenkernel/BKE_crazyspace.h
M source/blender/blenkernel/BKE_curve.h
M source/blender/blenkernel/BKE_data_transfer.h
M source/blender/blenkernel/BKE_displist.h
M source/blender/blenkernel/BKE_dynamicpaint.h
M source/blender/blenkernel/BKE_editmesh.h
M source/blender/blenkernel/BKE_effect.h
M source/blender/blenkernel/BKE_fluidsim.h
M source/blender/blenkernel/BKE_group.h
M source/blender/blenkernel/BKE_lattice.h
M source/blender/blenkernel/BKE_layer.h
M source/blender/blenkernel/BKE_material.h
M source/blender/blenkernel/BKE_mball.h
M source/blender/blenkernel/BKE_mball_tessellate.h
M source/blender/blenkernel/BKE_mesh.h
M source/blender/blenkernel/BKE_modifier.h
M source/blender/blenkernel/BKE_multires.h
M source/blender/blenkernel/BKE_object.h
M source/blender/blenkernel/BKE_paint.h
M source/blender/blenkernel/BKE_particle.h
M source/blender/blenkernel/BKE_rigidbody.h
M source/blender/blenkernel/BKE_scene.h
M source/blender/blenkernel/BKE_sequencer.h
M source/blender/blenkernel/BKE_smoke.h
M source/blender/blenkernel/BKE_softbody.h
M source/blender/blenkernel/BKE_world.h
M source/blender/blenkernel/intern/DerivedMesh.c
M source/blender/blenkernel/intern/anim_sys.c
M source/blender/blenkernel/intern/armature.c
M source/blender/blenkernel/intern/armature_update.c
M source/blender/blenkernel/intern/cloth.c
M source/blender/blenkernel/intern/constraint.c
M source/blender/blenkernel/intern/crazyspace.c
M source/blender/blenkernel/intern/curve.c
M source/blender/blenkernel/intern/data_transfer.c
M source/blender/blenkernel/intern/displist.c
M source/blender/blenkernel/intern/dynamicpaint.c
M source/blender/blenkernel/intern/editderivedmesh.c
M source/blender/blenkernel/intern/effect.c
M source/blender/blenkernel/intern/fluidsim.c
M source/blender/blenkernel/intern/group.c
M source/blender/blenkernel/intern/lattice.c
M source/blender/blenkernel/intern/layer.c
M source/blender/blenkernel/intern/material.c
M source/blender/blenkernel/intern/mball.c
M source/blender/blenkernel/intern/mball_tessellate.c
M source/blender/blenkernel/intern/mesh.c
M source/blender/blenkernel/intern/modifier.c
M source/blender/blenkernel/intern/multires.c
M source/blender/blenkernel/intern/object.c
M source/blender/blenkernel/intern/object_dupli.c
M source/blender/blenkernel/intern/object_update.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/rigidbody.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenkernel/intern/smoke.c
M source/blender/blenkernel/intern/softbody.c
M source/blender/blenkernel/intern/world.c
M source/blender/collada/AnimationExporter.cpp
M source/blender/collada/AnimationExporter.h
M source/blender/collada/ArmatureExporter.cpp
M source/blender/collada/ArmatureExporter.h
M source/blender/collada/ControllerExporter.cpp
M source/blender/collada/ControllerExporter.h
M source/blender/collada/DocumentExporter.cpp
M source/blender/collada/DocumentExporter.h
M source/blender/collada/GeometryExporter.cpp
M source/blender/collada/GeometryExporter.h
M source/blender/collada/SceneExporter.cpp
M source/blender/collada/SceneExporter.h
M source/blender/collada/collada.cpp
M source/blender/collada/collada.h
M source/blender/collada/collada_utils.cpp
M source/blender/collada/collada_utils.h
M source/blender/editors/armature/armature_select.c
M source/blender/editors/armature/editarmature_sketch.c
M source/blender/editors/curve/editcurve_paint.c
M source/blender/editors/gpencil/gpencil_edit.c
M source/blender/editors/gpencil/gpencil_paint.c
M source/blender/editors/gpencil/gpencil_utils.c
M source/blender/editors/include/ED_mesh.h
M source/blender/editors/include/ED_particle.h
M source/blender/editors/include/ED_view3d.h
M source/blender/editors/interface/interface_eyedropper.c
M source/blender/editors/manipulator_library/manipulator_library_presets.c
M source/blender/editors/mesh/editface.c
M source/blender/editors/mesh/editmesh_knife.c
M source/blender/editors/mesh/editmesh_loopcut.c
M source/blender/editors/mesh/editmesh_path.c
M source/blender/editors/mesh/editmesh_select.c
M source/blender/editors/mesh/meshtools.c
M source/blender/editors/metaball/mball_edit.c
M source/blender/editors/object/object_transform.c
M source/blender/editors/physics/particle_edit.c
M source/blender/editors/physics/particle_object.c
M source/blender/editors/sculpt_paint/paint_image_proj.c
M source/blender/editors/sculpt_paint/paint_utils.c
M source/blender/editors/sculpt_paint/paint_vertex.c
M source/blender/editors/space_view3d/drawarmature.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_draw_legacy.c
M source/blender/editors/space_view3d/view3d_edit.c
M source/blender/editors/space_view3d/view3d_intern.h
M source/blender/editors/space_view3d/view3d_iterators.c
M source/blender/editors/space_view3d/view3d_select.c
M source/blender/editors/space_view3d/view3d_view.c
M source/blender/editors/transform/transform_conversions.c
M source/blender/ikplugin/BIK_api.h
M source/blender/ikplugin/intern/ikplugin_api.c
M source/blender/ikplugin/intern/ikplugin_api.h
M source/blender/ikplugin/intern/iksolver_plugin.c
M source/blender/ikplugin/intern/iksolver_plugin.h
M source/blender/ikplugin/intern/itasc_plugin.cpp
M source/blender/ikplugin/intern/itasc_plugin.h
M source/blender/modifiers/intern/MOD_armature.c
M source/blender/modifiers/intern/MOD_array.c
M source/blender/modifiers/intern/MOD_bevel.c
M source/blender/modifiers/intern/MOD_boolean.c
M source/blender/modifiers/intern/MOD_build.c
M source/blender/modifiers/intern/MOD_cast.c
M source/blender/modifiers/intern/MOD_cloth.c
M source/blender/modifiers/intern/MOD_collision.c
M source/blender/modifiers/intern/MOD_correctivesmooth.c
M source/blender/modifiers/intern/MOD_curve.c
M source/blender/modifiers/intern/MOD_datatransfer.c
M source/blender/modifiers/intern/MOD_decimate.c
M source/blender/modifiers/intern/MOD_displace.c
M source/blender/modifiers/intern/MOD_dynamicpaint.c
M source/blender/modifiers/intern/MOD_edgesplit.c
M source/blender/modifiers/intern/MOD_explode.c
M source/blender/modifiers/intern/MOD_fluidsim.c
M source/blender/modifiers/intern/MOD_hook.c
M source/blender/modifiers/intern/MOD_laplaciandeform.c
M source/blender/modifiers/intern/MOD_laplaciansmooth.c
M source/blender/modifiers/intern/MOD_lattice.c
M source/blender/modifiers/intern/MOD_mask.c
M source/blender/modifiers/intern/MOD_meshcache.c
M source/blender/modifiers/intern/MOD_meshdeform.c
M source/blender/modifiers/intern/MOD_meshsequencecache.c
M source/blender/modifiers/intern/MOD_mirror.c
M source/blender/modifiers/intern/MOD_multires.c
M source/blender/modifiers/intern/MOD_normal_edit.c
M source/blender/modifiers/intern/MOD_ocean.c
M source/blender/modifiers/intern/MOD_particleinstance.c
M source/blender/modifiers/intern/MOD_particlesystem.c
M source/blender/modifiers/intern/MOD_remesh.c
M source/blender/modifiers/intern/MOD_screw.c
M source/blender/modifiers/intern/MOD_shapekey.c
M source/blender/modifiers/intern/MOD_shrinkwrap.c
M source/blender/modifiers/intern/MOD_simpledeform.c
M source/blender/modifiers/intern/MOD_skin.c
M source/blender/modifiers/intern/MOD_smoke.c
M source/blender/modifiers/intern/MOD_smooth.c
M source/blender/modifiers/intern/MOD_softbody.c
M source/blender/modifiers/intern/MOD_solidify.c
M source/blender/modifiers/intern/MOD_subsurf.c
M source/blender/modifiers/intern/MOD_surface.c
M source/blender/modifiers/intern/MOD_surfacedeform.c
M source/blender/modifiers/intern/MOD_triangulate.c
M source/blender/modifiers/intern/MOD_uvproject.c
M source/blender/modifiers/intern/MOD_uvwarp.c
M source/blender/modifiers/intern/MOD_warp.c
M source/blender/modifiers/intern/MOD_wave.c
M source/blender/modifiers/intern/MOD_weightvgedit.c
M source/blender/modifiers/intern/MOD_weightvgmix.c
M source/blender/modifiers/intern/MOD_weightvgproximity.c
M source/blender/modifiers/intern/MOD_wireframe.c
M source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c
M source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
diff --git a/intern/itasc/FixedObject.hpp b/intern/itasc/FixedObject.hpp
index 02c1804073c..e768157ed2b 100644
--- a/intern/itasc/FixedObject.hpp
+++ b/intern/itasc/FixedObject.hpp
@@ -21,7 +21,7 @@ public:
int addFrame(const std::string& name, const Frame& frame);
- virtual void updateCoordinates(struct EvaluationContext *eval_ctx,
const Timestamp& timestamp) {};
+ virtual void updateCoordinates(const struct EvaluationContext
*eval_ctx, const Timestamp& timestamp) {};
virtual int addEndEffector(const std::string& name);
virtual bool finalize();
virtual const Frame& getPose(const unsigned int frameIndex);
diff --git a/intern/itasc/MovingFrame.cpp b/intern/itasc/MovingFrame.cpp
index b1815ddd0de..83e15bb59d9 100644
--- a/intern/itasc/MovingFrame.cpp
+++ b/intern/itasc/MovingFrame.cpp
@@ -90,7 +90,7 @@ bool MovingFrame::setCallback(MovingFrameCallback _function,
void* _param)
return true;
}
-void MovingFrame::updateCoordinates(struct EvaluationContext *eval_ctx, const
Timestamp& timestamp)
+void MovingFrame::updateCoordinates(const struct EvaluationContext *eval_ctx,
const Timestamp& timestamp)
{
// don't compute the velocity during substepping, it is assumed
constant.
if (!timestamp.substep) {
diff --git a/intern/itasc/MovingFrame.hpp b/intern/itasc/MovingFrame.hpp
index 89519832840..719e06b4bf7 100644
--- a/intern/itasc/MovingFrame.hpp
+++ b/intern/itasc/MovingFrame.hpp
@@ -15,7 +15,12 @@ struct EvaluationContext;
namespace iTaSC{
-typedef bool (*MovingFrameCallback)(struct EvaluationContext *eval_ctx, const
Timestamp& timestamp, const Frame& _current, Frame& _next, void *param);
+typedef bool (*MovingFrameCallback)(
+ const struct EvaluationContext *eval_ctx,
+ const Timestamp& timestamp,
+ const Frame& _current,
+ Frame& _next,
+ void *param);
class MovingFrame: public UncontrolledObject {
public:
@@ -25,7 +30,7 @@ public:
bool setFrame(const Frame& frame);
bool setCallback(MovingFrameCallback _function, void* _param);
- virtual void updateCoordinates(struct EvaluationContext *eval_ctx,
const Timestamp& timestamp);
+ virtual void updateCoordinates(const struct EvaluationContext
*eval_ctx, const Timestamp& timestamp);
virtual void updateKinematics(const Timestamp& timestamp);
virtual void pushCache(const Timestamp& timestamp);
virtual void initCache(Cache *_cache);
diff --git a/intern/itasc/Scene.cpp b/intern/itasc/Scene.cpp
index fd8b006d19c..93f316783ba 100644
--- a/intern/itasc/Scene.cpp
+++ b/intern/itasc/Scene.cpp
@@ -257,7 +257,7 @@ bool Scene::getConstraintPose(ConstraintSet* constraint,
void *_param, KDL::Fram
return true;
}
-bool Scene::update(struct EvaluationContext *eval_ctx, double timestamp,
double timestep, unsigned int numsubstep, bool reiterate, bool cache, bool
interpolate)
+bool Scene::update(const struct EvaluationContext *eval_ctx, double timestamp,
double timestep, unsigned int numsubstep, bool reiterate, bool cache, bool
interpolate)
{
// we must have valid timestep and timestamp
if (timestamp < KDL::epsilon || timestep < 0.0)
diff --git a/intern/itasc/Scene.hpp b/intern/itasc/Scene.hpp
index 0039be07584..ebbec561a6e 100644
--- a/intern/itasc/Scene.hpp
+++ b/intern/itasc/Scene.hpp
@@ -39,7 +39,7 @@ public:
bool addSolver(Solver* _solver);
bool addCache(Cache* _cache);
bool initialize();
- bool update(struct EvaluationContext *eval_ctx, double timestamp, double
timestep, unsigned int numsubstep=1, bool reiterate=false, bool cache=true,
bool interpolate=true);
+ bool update(const struct EvaluationContext *eval_ctx, double timestamp,
double timestep, unsigned int numsubstep=1, bool reiterate=false, bool
cache=true, bool interpolate=true);
bool setParam(SceneParam paramId, double value);
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
diff --git a/intern/itasc/UncontrolledObject.hpp
b/intern/itasc/UncontrolledObject.hpp
index 889bc742c6d..d932974a24d 100644
--- a/intern/itasc/UncontrolledObject.hpp
+++ b/intern/itasc/UncontrolledObject.hpp
@@ -29,7 +29,7 @@ public:
virtual void initialize(unsigned int _nu, unsigned int _nf);
virtual const e_matrix& getJu(unsigned int frameIndex) const;
virtual const e_vector& getXudot() const {return m_xudot;}
- virtual void updateCoordinates(struct EvaluationContext *eval_ctx,
const Timestamp& timestamp)=0;
+ virtual void updateCoordinates(const struct EvaluationContext
*eval_ctx, const Timestamp& timestamp)=0;
virtual const unsigned int getNrOfCoordinates(){return m_nu;};
virtual const unsigned int getNrOfFrames(){return m_nf;};
diff --git a/intern/itasc/WorldObject.hpp b/intern/itasc/WorldObject.hpp
index b992445ab10..9876090e128 100644
--- a/intern/itasc/WorldObject.hpp
+++ b/intern/itasc/WorldObject.hpp
@@ -16,7 +16,7 @@ public:
WorldObject();
virtual ~WorldObject();
- virtual void updateCoordinates(struct EvaluationContext *eval_ctx,
const Timestamp& timestamp) {};
+ virtual void updateCoordinates(const struct EvaluationContext
*eval_ctx, const Timestamp& timestamp) {};
virtual void updateKinematics(const Timestamp& timestamp) {};
virtual void pushCache(const Timestamp& timestamp) {};
virtual void initCache(Cache *_cache) {};
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h
b/source/blender/blenkernel/BKE_DerivedMesh.h
index 6c4a090904a..c86595cd509 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -658,18 +658,18 @@ void mesh_get_mapped_verts_coords(DerivedMesh *dm, float
(*r_cos)[3], const int
/* */
DerivedMesh *mesh_get_derived_final(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, CustomDataMask dataMask);
DerivedMesh *mesh_get_derived_deform(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, CustomDataMask dataMask);
DerivedMesh *mesh_create_derived_for_modifier(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*ob,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *ob,
struct ModifierData *md, int build_shapekey_layers);
DerivedMesh *mesh_create_derived_render(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, CustomDataMask dataMask);
DerivedMesh *getEditDerivedBMesh(
@@ -677,37 +677,37 @@ DerivedMesh *getEditDerivedBMesh(
float (*vertexCos)[3]);
DerivedMesh *mesh_create_derived_index_render(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, CustomDataMask dataMask, int index);
/* same as above but wont use render settings */
DerivedMesh *mesh_create_derived(struct Mesh *me, float (*vertCos)[3]);
DerivedMesh *mesh_create_derived_view(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, CustomDataMask dataMask);
DerivedMesh *mesh_create_derived_no_deform(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, float (*vertCos)[3],
CustomDataMask dataMask);
DerivedMesh *mesh_create_derived_no_deform_render(
- struct EvaluationContext *eval_ctx, struct Scene *scene,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene,
struct Object *ob, float (*vertCos)[3],
CustomDataMask dataMask);
/* for gameengine */
DerivedMesh *mesh_create_derived_no_virtual(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*ob,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *ob,
float (*vertCos)[3], CustomDataMask dataMask);
DerivedMesh *mesh_create_derived_physics(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*ob,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *ob,
float (*vertCos)[3], CustomDataMask dataMask);
DerivedMesh *editbmesh_get_derived_base(
struct Object *ob, struct BMEditMesh *em, CustomDataMask data_mask);
DerivedMesh *editbmesh_get_derived_cage(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *,
struct BMEditMesh *em, CustomDataMask dataMask);
DerivedMesh *editbmesh_get_derived_cage_and_final(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *,
struct BMEditMesh *em, CustomDataMask dataMask,
DerivedMesh **r_final);
@@ -716,7 +716,7 @@ DerivedMesh *object_get_derived_final(struct Object *ob,
const bool for_render);
float (*editbmesh_get_vertex_cos(struct BMEditMesh *em, int *r_numVerts))[3];
bool editbmesh_modifier_is_enabled(struct Scene *scene, struct ModifierData
*md, DerivedMesh *dm);
void makeDerivedMesh(
- struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object
*ob, struct BMEditMesh *em,
+ const struct EvaluationContext *eval_ctx, struct Scene *scene, struct
Object *ob, struct BMEditMesh *em,
CustomDataMask dataMask, const bool build_shapekey_layers);
void weight_to_rgb(float r_rgb[3], const float weight);
diff --git a/source/blender/blenkernel/BKE_anim.h
b/source/blender/blenkernel/BKE_anim.h
index ef8a1c7e417..9beff85b87c 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -66,8 +66,8 @@ int where_on_path(struct Object *ob, float ctime, float
vec[4], float dir[3], fl
/* ---------------------------------------------------- */
/* Dupli-Geometry */
-struct ListBase *object_duplilist_ex(struct EvaluationContext *eval_ct
@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs