diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-05-11 15:54:50 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-05-11 15:55:58 +0300 |
commit | aefd181b0b19403eaa6643e63901ff1cd740f881 (patch) | |
tree | 28317d013fe44a1911fc3a6b2cc9111f69646d95 /source/blender/draw/intern/draw_cache.c | |
parent | af5428aa2b4d4c6255c98cc0c22e618ec0d43ff8 (diff) |
Fix crash going to edit mode of particles with copy on write
We can not rely on edit->psys, it is not set for particle edit,
and there is some logic deeper inside which does different things
dependent on that.
We need to replace those checks with some some HAIR vs. PARTICLES
flag and always set psys pointer.
Diffstat (limited to 'source/blender/draw/intern/draw_cache.c')
-rw-r--r-- | source/blender/draw/intern/draw_cache.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c index 6c6e9a732b3..28153505051 100644 --- a/source/blender/draw/intern/draw_cache.c +++ b/source/blender/draw/intern/draw_cache.c @@ -2886,19 +2886,28 @@ Gwn_Batch *DRW_cache_particles_get_dots(Object *object, ParticleSystem *psys) return DRW_particles_batch_cache_get_dots(object, psys); } -Gwn_Batch *DRW_cache_particles_get_edit_strands(Object *object, struct PTCacheEdit *edit) +Gwn_Batch *DRW_cache_particles_get_edit_strands( + Object *object, + ParticleSystem *psys, + struct PTCacheEdit *edit) { - return DRW_particles_batch_cache_get_edit_strands(object, edit); + return DRW_particles_batch_cache_get_edit_strands(object, psys, edit); } -Gwn_Batch *DRW_cache_particles_get_edit_inner_points(Object *object, struct PTCacheEdit *edit) +Gwn_Batch *DRW_cache_particles_get_edit_inner_points( + Object *object, + ParticleSystem *psys, + struct PTCacheEdit *edit) { - return DRW_particles_batch_cache_get_edit_inner_points(object, edit); + return DRW_particles_batch_cache_get_edit_inner_points(object, psys, edit); } -Gwn_Batch *DRW_cache_particles_get_edit_tip_points(Object *object, struct PTCacheEdit *edit) +Gwn_Batch *DRW_cache_particles_get_edit_tip_points( + Object *object, + ParticleSystem *psys, + struct PTCacheEdit *edit) { - return DRW_particles_batch_cache_get_edit_tip_points(object, edit); + return DRW_particles_batch_cache_get_edit_tip_points(object, psys, edit); } Gwn_Batch *DRW_cache_particles_get_prim(int type) |