[Bf-blender-cvs] [7cbb85675a0] blender2.8: Particle edit: Fix missing hair edit after toggling edit mode
Sergey Sharybin
noreply at git.blender.org
Tue May 15 17:21:22 CEST 2018
Commit: 7cbb85675a0986b7ffea8da7c48909cebea40934
Author: Sergey Sharybin
Date: Mon May 14 15:37:54 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB7cbb85675a0986b7ffea8da7c48909cebea40934
Particle edit: Fix missing hair edit after toggling edit mode
===================================================================
M source/blender/draw/modes/particle_mode.c
===================================================================
diff --git a/source/blender/draw/modes/particle_mode.c b/source/blender/draw/modes/particle_mode.c
index d342f67ab61..7f1a62a88ce 100644
--- a/source/blender/draw/modes/particle_mode.c
+++ b/source/blender/draw/modes/particle_mode.c
@@ -190,12 +190,19 @@ static void particle_cache_populate(void *vedata, Object *object)
return;
}
const DRWContextState *draw_ctx = DRW_context_state_get();
+ Scene *scene_orig = (Scene *)DEG_get_original_id(&draw_ctx->scene->id);
+ /* Usually the edit structure is created by Particle Edit Mode Toggle
+ * operator, but sometimes it's invoked after tagging hair as outdated
+ * (for example, when toggling edit mode). That makes it impossible to
+ * create edit structure for until after next dependency graph evaluation.
+ *
+ * Ideally, the edit structure will be created here already via some
+ * dependency graph callback or so, but currently trying to make it nicer
+ * only causes bad level calls and breaks design from the past.
+ */
Object *object_orig = DEG_get_original_object(object);
- PTCacheEdit *edit = PE_get_current(draw_ctx->scene, object_orig);
- if (edit == NULL) {
- printf("Particle edit struct is NULL, not supposed to happen.\n");
- return;
- }
+ PTCacheEdit *edit = PE_create_current(
+ draw_ctx->depsgraph, scene_orig, object_orig);
ParticleSystem *psys = object->particlesystem.first;
ParticleSystem *psys_orig = object_orig->particlesystem.first;
while (psys_orig != NULL) {
More information about the Bf-blender-cvs
mailing list