[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57188] trunk/blender/source/blender/ modifiers/intern: corrections to modifiers from recent normal handling changes
Campbell Barton
ideasman42 at gmail.com
Sun Jun 2 06:09:30 CEST 2013
Revision: 57188
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57188
Author: campbellbarton
Date: 2013-06-02 04:09:29 +0000 (Sun, 02 Jun 2013)
Log Message:
-----------
corrections to modifiers from recent normal handling changes
- solidify didn't define a dependsOnNormals callback (which it should have)
- build wasn't passing on dirty normals.
- decimate wasnt setting dirty normals.
Modified Paths:
--------------
trunk/blender/source/blender/modifiers/intern/MOD_build.c
trunk/blender/source/blender/modifiers/intern/MOD_decimate.c
trunk/blender/source/blender/modifiers/intern/MOD_solidify.c
Modified: trunk/blender/source/blender/modifiers/intern/MOD_build.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_build.c 2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_build.c 2013-06-02 04:09:29 UTC (rev 57188)
@@ -296,6 +296,10 @@
MEM_freeN(edgeMap);
MEM_freeN(faceMap);
+ if (dm->dirty & DM_DIRTY_NORMALS) {
+ result->dirty |= DM_DIRTY_NORMALS;
+ }
+
return result;
}
Modified: trunk/blender/source/blender/modifiers/intern/MOD_decimate.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_decimate.c 2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_decimate.c 2013-06-02 04:09:29 UTC (rev 57188)
@@ -197,6 +197,8 @@
TIMEIT_END(decim);
#endif
+ result->dirty = DM_DIRTY_NORMALS;
+
return result;
}
Modified: trunk/blender/source/blender/modifiers/intern/MOD_solidify.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_solidify.c 2013-06-02 03:59:19 UTC (rev 57187)
+++ trunk/blender/source/blender/modifiers/intern/MOD_solidify.c 2013-06-02 04:09:29 UTC (rev 57188)
@@ -819,7 +819,7 @@
MEM_freeN(old_vert_arr);
/* must recalculate normals with vgroups since they can displace unevenly [#26888] */
- if (dvert) {
+ if ((dm->dirty & DM_DIRTY_NORMALS) || dvert) {
result->dirty |= DM_DIRTY_NORMALS;
}
@@ -832,7 +832,13 @@
#undef SOLIDIFY_SIDE_NORMALS
+static bool dependsOnNormals(ModifierData *md)
+{
+ SolidifyModifierData *smd = (SolidifyModifierData *) md;
+ return (smd->flag & MOD_SOLIDIFY_NORMAL_CALC) == 0;
+}
+
ModifierTypeInfo modifierType_Solidify = {
/* name */ "Solidify",
/* structName */ "SolidifyModifierData",
@@ -858,7 +864,7 @@
/* isDisabled */ NULL,
/* updateDepgraph */ NULL,
/* dependsOnTime */ NULL,
- /* dependsOnNormals */ NULL,
+ /* dependsOnNormals */ dependsOnNormals,
/* foreachObjectLink */ NULL,
/* foreachIDLink */ NULL,
/* foreachTexLink */ NULL,
More information about the Bf-blender-cvs
mailing list