Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-01-10 18:21:40 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-01-10 18:22:53 +0300
commit0f1775205ecfee9de21053eb1d187bfa641ba6aa (patch)
tree12e7f72714f65c15c2c511349e04e07002a9ca67
parentba2b26af31ca7e1a8d547cf308be2c1afbe7a4f5 (diff)
Use proper ID to create FModifier RNA pointer
Allows to do simple DEG tag, without extra checks for ID type. Will solve possible missing updates when modifying f-curve modifier of a shared action.
-rw-r--r--source/blender/editors/animation/fmodifier_ui.c46
-rw-r--r--source/blender/editors/include/ED_anim_api.h2
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c2
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c2
-rw-r--r--source/blender/makesrna/intern/rna_fcurve.c2
5 files changed, 27 insertions, 27 deletions
diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c
index 5d0a2fa4d86..87c9d9c09c0 100644
--- a/source/blender/editors/animation/fmodifier_ui.c
+++ b/source/blender/editors/animation/fmodifier_ui.c
@@ -113,7 +113,7 @@ static void delete_fmodifier_cb(bContext *C, void *ctx_v, void *fcm_v)
/* --------------- */
/* draw settings for generator modifier */
-static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__generator(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short width)
{
FMod_Generator *data = (FMod_Generator *)fcm->data;
uiLayout /* *col, */ /* UNUSED */ *row;
@@ -123,7 +123,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
short bwidth = width - 1.5 * UI_UNIT_X; /* max button width */
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierFunctionGenerator, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierFunctionGenerator, fcm, &ptr);
/* basic settings (backdrop + mode selector + some padding) */
/* col = uiLayoutColumn(layout, true); */ /* UNUSED */
@@ -261,13 +261,13 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
/* --------------- */
/* draw settings for generator modifier */
-static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__fn_generator(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
uiLayout *col;
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierFunctionGenerator, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierFunctionGenerator, fcm, &ptr);
/* add the settings */
col = uiLayoutColumn(layout, true);
@@ -284,13 +284,13 @@ static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm
/* --------------- */
/* draw settings for cycles modifier */
-static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__cycles(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col;
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierCycles, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierCycles, fcm, &ptr);
/* split into 2 columns
* NOTE: the mode comboboxes shouldn't get labels, otherwise there isn't enough room
@@ -313,13 +313,13 @@ static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, shor
/* --------------- */
/* draw settings for noise modifier */
-static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__noise(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col;
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierNoise, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierNoise, fcm, &ptr);
/* blending mode */
uiItemR(layout, &ptr, "blend_type", 0, NULL, ICON_NONE);
@@ -422,7 +422,7 @@ static void fmod_envelope_deletepoint_cb(bContext *UNUSED(C), void *fcm_dv, void
}
/* draw settings for envelope modifier */
-static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__envelope(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
FMod_Envelope *env = (FMod_Envelope *)fcm->data;
FCM_EnvelopeData *fed;
@@ -433,7 +433,7 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
int i;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierEnvelope, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierEnvelope, fcm, &ptr);
/* general settings */
col = uiLayoutColumn(layout, true);
@@ -482,13 +482,13 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
/* --------------- */
/* draw settings for limits modifier */
-static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__limits(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col /* , *row */ /* UNUSED */;
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierLimits, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierLimits, fcm, &ptr);
/* row 1: minimum */
{
@@ -530,13 +530,13 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
/* --------------- */
/* draw settings for stepped interpolation modifier */
-static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
+static void draw_modifier__stepped(uiLayout *layout, ID *fcurve_owner_id, FModifier *fcm, short UNUSED(width))
{
uiLayout *col, *sub;
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifierStepped, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifierStepped, fcm, &ptr);
/* block 1: "stepping" settings */
col = uiLayoutColumn(layout, false);
@@ -562,7 +562,7 @@ static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, sho
/* --------------- */
-void ANIM_uiTemplate_fmodifier_draw(uiLayout *layout, ID *id, ID *fcurve_owner_id,
+void ANIM_uiTemplate_fmodifier_draw(uiLayout *layout, ID *fcurve_owner_id,
ListBase *modifiers, FModifier *fcm)
{
const FModifierTypeInfo *fmi = fmodifier_get_typeinfo(fcm);
@@ -573,7 +573,7 @@ void ANIM_uiTemplate_fmodifier_draw(uiLayout *layout, ID *id, ID *fcurve_owner_i
PointerRNA ptr;
/* init the RNA-pointer */
- RNA_pointer_create(id, &RNA_FModifier, fcm, &ptr);
+ RNA_pointer_create(fcurve_owner_id, &RNA_FModifier, fcm, &ptr);
/* draw header */
{
@@ -630,31 +630,31 @@ void ANIM_uiTemplate_fmodifier_draw(uiLayout *layout, ID *id, ID *fcurve_owner_i
/* draw settings for individual modifiers */
switch (fcm->type) {
case FMODIFIER_TYPE_GENERATOR: /* Generator */
- draw_modifier__generator(box, id, fcm, width);
+ draw_modifier__generator(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_FN_GENERATOR: /* Built-In Function Generator */
- draw_modifier__fn_generator(box, id, fcm, width);
+ draw_modifier__fn_generator(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_CYCLES: /* Cycles */
- draw_modifier__cycles(box, id, fcm, width);
+ draw_modifier__cycles(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_ENVELOPE: /* Envelope */
- draw_modifier__envelope(box, id, fcm, width);
+ draw_modifier__envelope(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_LIMITS: /* Limits */
- draw_modifier__limits(box, id, fcm, width);
+ draw_modifier__limits(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_NOISE: /* Noise */
- draw_modifier__noise(box, id, fcm, width);
+ draw_modifier__noise(box, fcurve_owner_id, fcm, width);
break;
case FMODIFIER_TYPE_STEPPED: /* Stepped */
- draw_modifier__stepped(box, id, fcm, width);
+ draw_modifier__stepped(box, fcurve_owner_id, fcm, width);
break;
default: /* unknown type */
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index f2cf5a3ead9..bbc9f25b542 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -584,7 +584,7 @@ void ANIM_draw_framerange(struct Scene *scene, struct View2D *v2d);
/* ------------- UI Panel Drawing -------------- */
/* draw a given F-Modifier for some layout/UI-Block */
-void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, struct ID *fcurve_owner_id,
+void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *fcurve_owner_id,
ListBase *modifiers, struct FModifier *fcm);
/* ------------- Copy/Paste Buffer -------------- */
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index ef0e4f7d6f3..72ff0712a23 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -1142,7 +1142,7 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
col = uiLayoutColumn(pa->layout, true);
uiLayoutSetActive(col, active);
- ANIM_uiTemplate_fmodifier_draw(col, ale->id, ale->fcurve_owner_id, &fcu->modifiers, fcm);
+ ANIM_uiTemplate_fmodifier_draw(col, ale->fcurve_owner_id, &fcu->modifiers, fcm);
}
MEM_freeN(ale);
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index 76d2c2851c1..d5d50c86851 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -495,7 +495,7 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa)
for (fcm = strip->modifiers.first; fcm; fcm = fcm->next) {
col = uiLayoutColumn(pa->layout, true);
- ANIM_uiTemplate_fmodifier_draw(col, strip_ptr.id.data, strip_ptr.id.data, &strip->modifiers, fcm);
+ ANIM_uiTemplate_fmodifier_draw(col, strip_ptr.id.data, &strip->modifiers, fcm);
}
}
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c
index 8992d3ab411..e58b659d399 100644
--- a/source/blender/makesrna/intern/rna_fcurve.c
+++ b/source/blender/makesrna/intern/rna_fcurve.c
@@ -616,7 +616,7 @@ static void rna_FModifier_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Poin
FModifier *fcm = (FModifier *)ptr->data;
AnimData *adt = BKE_animdata_from_id(id);
- DEG_id_tag_update(id, (GS(id->name) == ID_OB) ? ID_RECALC_TRANSFORM : ID_RECALC_GEOMETRY);
+ DEG_id_tag_update(id, ID_RECALC_ANIMATION);
/* tag datablock for time update so that animation is recalculated,
* as FModifiers affect how animation plays...