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:
authorNicholas Bishop <nicholasbishop@gmail.com>2012-05-11 00:34:23 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2012-05-11 00:34:23 +0400
commit0f57b0f1e514c8f13f2fcfeb71c6291640f88794 (patch)
tree9a8538f463a31b82a1b3639f74bb526645390d6c /source/blender/modifiers
parentf4929ad609727354bb6356aef788e8f2fa92d341 (diff)
Copy GridPaintMask to vertex paint mask when applying multires.
Adds new subsurf_copy_grid_paint_mask() function similar to subsurf_copy_grid_hidden().
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_multires.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c
index 13028953c1c..ae5ac9ac718 100644
--- a/source/blender/modifiers/intern/MOD_multires.c
+++ b/source/blender/modifiers/intern/MOD_multires.c
@@ -100,10 +100,14 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
cddm = CDDM_copy(result);
- /* copy hidden flag to vertices */
+ /* copy hidden/masks to vertices */
if (!useRenderParams) {
struct MDisps *mdisps;
+ struct GridPaintMask *grid_paint_mask;
+
mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS);
+ grid_paint_mask = CustomData_get_layer(&me->ldata, CD_GRID_PAINT_MASK);
+
if (mdisps) {
subsurf_copy_grid_hidden(result, me->mpoly,
cddm->getVertArray(cddm),
@@ -116,6 +120,15 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
cddm->getPolyArray(cddm),
cddm->getNumPolys(cddm));
}
+ if(grid_paint_mask) {
+ float *paint_mask = CustomData_add_layer(&cddm->vertData,
+ CD_PAINT_MASK,
+ CD_CALLOC, NULL,
+ cddm->getNumVerts(cddm));
+
+ subsurf_copy_grid_paint_mask(result, me->mpoly,
+ paint_mask, grid_paint_mask);
+ }
}
result->release(result);