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>2012-11-08 18:01:47 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-11-08 18:01:47 +0400
commiteacc74ef1bdb331cba34817db298f36c957d06d8 (patch)
tree319a69e8f2019b86bbdd0124c50ede737a262e8a /source/blender/blenlib/BLI_pbvh.h
parent2e52bdbbee3e0e6a501c625e6a0271097d911b27 (diff)
Fix #33116: Blender Crashes when saving inside Sculpt Mode with with GLSL and textured view enabled.
Issue was caused by call ED_sculpt_force_update from WM_file_write which frees derived mesh and pBVH and forces them to be re-created. After this sculpt session wasn't repairing properly. Freeing data from WM_file_write is not nice by itself, but it exposed possible real issue when sculpting on modifiers. Made it so BLI_pbvh_grids_update will update pointers to material flags and hidden grids as well. This isn't idea solution for particular circumstances from the report, since pBVH would be rebuilt after save which ends up with small interface lags for while pBVH is rebuilding. Would be nice to have multires displacement propagation to higher levels without freeing data.
Diffstat (limited to 'source/blender/blenlib/BLI_pbvh.h')
-rw-r--r--source/blender/blenlib/BLI_pbvh.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h
index 9483d068bb9..3445522eb7c 100644
--- a/source/blender/blenlib/BLI_pbvh.h
+++ b/source/blender/blenlib/BLI_pbvh.h
@@ -28,6 +28,7 @@
#include "BLI_bitmap.h"
+struct BLI_bitmap;
struct CCGElem;
struct CCGKey;
struct CustomData;
@@ -153,7 +154,8 @@ void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]);
void BLI_pbvh_redraw_BB(PBVH * bvh, float bb_min[3], float bb_max[3]);
void BLI_pbvh_get_grid_updates(PBVH *bvh, int clear, void ***gridfaces, int *totface);
void BLI_pbvh_grids_update(PBVH *bvh, struct CCGElem **grid_elems,
- struct DMGridAdjacency *gridadj, void **gridfaces);
+ struct DMGridAdjacency *gridadj, void **gridfaces,
+ struct DMFlagMat *flagmats, struct BLI_bitmap *grid_hidden);
/* vertex deformer */
float (*BLI_pbvh_get_vertCos(struct PBVH *pbvh))[3];