Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-03-24 13:10:16 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-03-24 13:10:16 +0400
commitf48828b64e480b6f16c21f660d3d6212648d56d7 (patch)
tree768569ca556f8ee661bd4d154ac3907ff737784c /source/blender/blenkernel/BKE_object.h
parentb69809c820ffde1627ca85915657e8c23f2cb7ca (diff)
Fix T39318: Blender 2.70 crash when I link an asset
Issue is a regression since threaded objetc update and caused by the fact that some objects might share the same proxy object. It's all fine but object_handle_update() will call update for a proxy object which screws up threaded update. The thing is, proxy object is marked as depending on a scene object and such a call makes it so the children objetc is being updated. This is really bad and depsgraph is to take all responsibility on updating the proxy objects. So for now used a simple solution (which is safe to backport to 'a') which is skipping proxy update if the scene update is threaded and based on the DAG traversal. There are some still areas which calls object update directly and for that cases proxy object is still being updated from object_handle_update().
Diffstat (limited to 'source/blender/blenkernel/BKE_object.h')
-rw-r--r--source/blender/blenkernel/BKE_object.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 72c4c21d587..2ad6c54fb67 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -167,7 +167,8 @@ void BKE_object_tfm_protected_restore(struct Object *ob,
void BKE_object_handle_update(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob);
void BKE_object_handle_update_ex(struct EvaluationContext *eval_ctx,
struct Scene *scene, struct Object *ob,
- struct RigidBodyWorld *rbw);
+ struct RigidBodyWorld *rbw,
+ const bool do_proxy_update);
void BKE_object_sculpt_modifiers_changed(struct Object *ob);
int BKE_object_obdata_texspace_get(struct Object *ob, short **r_texflag, float **r_loc, float **r_size, float **r_rot);