[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47694] trunk/blender/source/blender/ makesrna/intern/rna_modifier.c: Force multires update when changing subdivision type.
Nicholas Bishop
nicholasbishop at gmail.com
Sun Jun 10 19:06:39 CEST 2012
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");
More information about the Bf-blender-cvs
mailing list