Revision: 47694
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47694
Author:   nicholasbishop
Date:     2012-06-10 17:06:26 +0000 (Sun, 10 Jun 2012)
Log Message:
-----------
Force multires update when changing subdivision type.

Fixes bug [#31050] Changing multires subdivision algorithm can ruin mesh

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2012-06-10 
16:37:22 UTC (rev 47693)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2012-06-10 
17:06:26 UTC (rev 47694)
@@ -477,6 +477,15 @@
        }
 }
 
+static void rna_MultiresModifier_type_set(PointerRNA *ptr, int value)
+{
+       Object *ob = (Object *)ptr->id.data;
+       MultiresModifierData *mmd = (MultiresModifierData *)ptr->data;
+
+       multires_force_update(ob);
+       mmd->simple = value;
+}
+
 static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int 
*max, int *softmin, int *softmax)
 {
        MultiresModifierData *mmd = (MultiresModifierData *)ptr->data;
@@ -739,7 +748,7 @@
 
 #else
 
-static void rna_def_property_subdivision_common(StructRNA *srna, const char 
type[])
+static PropertyRNA *rna_def_property_subdivision_common(StructRNA *srna, const 
char type[])
 {
        static EnumPropertyItem prop_subdivision_type_items[] = {
                {0, "CATMULL_CLARK", 0, "Catmull-Clark", ""},
@@ -752,6 +761,8 @@
        RNA_def_property_enum_items(prop, prop_subdivision_type_items);
        RNA_def_property_ui_text(prop, "Subdivision Type", "Select type of 
subdivision algorithm");
        RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+       return prop;
 }
 
 static void rna_def_modifier_subsurf(BlenderRNA *brna)
@@ -901,7 +912,8 @@
        RNA_def_struct_sdna(srna, "MultiresModifierData");
        RNA_def_struct_ui_icon(srna, ICON_MOD_MULTIRES);
 
-       rna_def_property_subdivision_common(srna, "simple");
+       prop = rna_def_property_subdivision_common(srna, "simple");
+       RNA_def_property_enum_funcs(prop, NULL, 
"rna_MultiresModifier_type_set", NULL);
 
        prop = RNA_def_property(srna, "levels", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "lvl");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to