From 612364181aedd5a945d1c9a4b2aabd61ab228da6 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 21 May 2018 21:12:31 +0200 Subject: Static Override: Fix drivers' ID target overridability. You need the whole chain of pointers... This was breaking static overrides of any rig basically. Note that this kills performances again (adding several hundreds of thousands more stuff on a blendrig...), need a better way to handle RNA override walking. --- source/blender/makesrna/intern/rna_animation.c | 1 + source/blender/makesrna/intern/rna_fcurve.c | 3 +++ 2 files changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 6eed4153e0d..84764187b62 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -1085,6 +1085,7 @@ static void rna_def_animdata(BlenderRNA *brna) prop = RNA_def_property(srna, "drivers", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "drivers", NULL); RNA_def_property_struct_type(prop, "FCurve"); + RNA_def_property_flag(prop, PROP_OVERRIDABLE_STATIC); RNA_def_property_ui_text(prop, "Drivers", "The Drivers/Expressions for this data-block"); rna_api_animdata_drivers(brna, prop); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 275a7463630..84ed95bb7a9 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -1558,6 +1558,7 @@ static void rna_def_drivervar(BlenderRNA *brna) prop = RNA_def_property(srna, "targets", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "targets", "num_targets"); RNA_def_property_struct_type(prop, "DriverTarget"); + RNA_def_property_flag(prop, PROP_OVERRIDABLE_STATIC); RNA_def_property_ui_text(prop, "Targets", "Sources of input data for evaluating this variable"); /* Name Validity Flags */ @@ -1634,6 +1635,7 @@ static void rna_def_channeldriver(BlenderRNA *brna) prop = RNA_def_property(srna, "variables", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "variables", NULL); RNA_def_property_struct_type(prop, "DriverVariable"); + RNA_def_property_flag(prop, PROP_OVERRIDABLE_STATIC); RNA_def_property_ui_text(prop, "Variables", "Properties acting as inputs for this driver"); rna_def_channeldriver_variables(brna, prop); @@ -1918,6 +1920,7 @@ static void rna_def_fcurve(BlenderRNA *brna) /* Pointers */ prop = RNA_def_property(srna, "driver", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_OVERRIDABLE_STATIC); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Driver", "Channel Driver (only set for Driver F-Curves)"); -- cgit v1.2.3