diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_brush_engine.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_brush_engine.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_brush_engine.c b/source/blender/makesrna/intern/rna_brush_engine.c index 2c4011b956b..a16aec474d5 100644 --- a/source/blender/makesrna/intern/rna_brush_engine.c +++ b/source/blender/makesrna/intern/rna_brush_engine.c @@ -37,11 +37,80 @@ #include "IMB_imbuf.h" +#include "BKE_brush_engine.h" +#include "DNA_sculpt_brush_types.h" #include "WM_types.h" #ifdef RNA_RUNTIME + +int rna_BrushChannelSet_channels_begin(CollectionPropertyIterator *iter, struct PointerRNA *ptr) +{ + BrushChannelSet *chset = ptr->data; + + rna_iterator_array_begin( + iter, chset->channels, sizeof(BrushChannel), chset->totchannel, false, NULL); + + return 1; +} + +int rna_BrushChannelSet_channels_assignint(struct PointerRNA *ptr, + int key, + const struct PointerRNA *assign_ptr) +{ + BrushChannelSet *chset = ptr->data; + BrushChannel *ch = chset->channels + key; + BrushChannel *src = assign_ptr->data; + + BKE_brush_channel_copy(ch, src); + + return 1; +} + #endif +void RNA_def_brush_channel(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "BrushChannel", NULL); + RNA_def_struct_sdna(srna, "BrushChannel"); + RNA_def_struct_ui_text(srna, "Brush Channel", "Brush Channel"); + + prop = RNA_def_property(srna, "idname", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, "BrushChannel", "idname"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE | PROP_ANIMATABLE); + + RNA_def_struct_name_property(srna, prop); +} + +void RNA_def_brush_channelset(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "BrushChannelSet", NULL); + RNA_def_struct_sdna(srna, "BrushChannelSet"); + RNA_def_struct_ui_text(srna, "Channel Set", "Brush Channel Collection"); + + prop = RNA_def_property(srna, "channels", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "channels", "totchannel"); + RNA_def_property_collection_funcs(prop, + "rna_BrushChannelSet_channels_begin", + "rna_iterator_array_next", + "rna_iterator_array_end", + "rna_iterator_array_get", + NULL, + NULL, + NULL, + "rna_BrushChannelSet_channels_assignint"); + RNA_def_property_struct_type(prop, "BrushChannel"); + RNA_def_property_override_flag( + prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY | PROPOVERRIDE_LIBRARY_INSERTION); +} + void RNA_def_brush_engine(BlenderRNA *brna) { + RNA_def_brush_channel(brna); + RNA_def_brush_channelset(brna); } |