diff options
Diffstat (limited to 'source/blender/editors/space_nla')
-rw-r--r-- | source/blender/editors/space_nla/nla_channels.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_nla/nla_draw.c | 12 | ||||
-rw-r--r-- | source/blender/editors/space_nla/nla_edit.c | 15 | ||||
-rw-r--r-- | source/blender/editors/space_nla/nla_intern.h | 18 | ||||
-rw-r--r-- | source/blender/editors/space_nla/nla_ops.c | 3 | ||||
-rw-r--r-- | source/blender/editors/space_nla/space_nla.c | 1 |
6 files changed, 37 insertions, 14 deletions
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c index 1b87a8c6b9d..47af7a66f6f 100644 --- a/source/blender/editors/space_nla/nla_channels.c +++ b/source/blender/editors/space_nla/nla_channels.c @@ -629,7 +629,6 @@ void NLA_OT_action_unlink(wmOperatorType *ot) /* ******************** Add Tracks Operator ***************************** */ /* Add NLA Tracks to the same AnimData block as a selected track, or above the selected tracks */ -/* helper - add NLA Tracks alongside existing ones */ bool nlaedit_add_tracks_existing(bAnimContext *ac, bool above_sel) { ListBase anim_data = {NULL, NULL}; @@ -678,7 +677,6 @@ bool nlaedit_add_tracks_existing(bAnimContext *ac, bool above_sel) return added; } -/* helper - add NLA Tracks to empty (and selected) AnimData blocks */ bool nlaedit_add_tracks_empty(bAnimContext *ac) { ListBase anim_data = {NULL, NULL}; diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index bf2d20cf4c9..12f0011b499 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -65,9 +65,6 @@ /* Action-Line ---------------------- */ -/* get colors for drawing Action-Line - * NOTE: color returned includes fine-tuned alpha! - */ void nla_action_get_color(AnimData *adt, bAction *act, float color[4]) { if (adt && (adt->flag & ADT_NLA_EDIT_ON)) { @@ -111,11 +108,11 @@ static void nla_action_draw_keyframes( /* draw a darkened region behind the strips * - get and reset the background color, this time without the alpha to stand out better - * (amplified alpha is used instead) + * (amplified alpha is used instead, but clamped to avoid 100% opacity) */ float color[4]; nla_action_get_color(adt, act, color); - color[3] *= 2.5f; + color[3] = min_ff(0.7f, color[3] * 2.5f); GPUVertFormat *format = immVertexFormat(); uint pos_id = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); @@ -786,6 +783,11 @@ void draw_nla_main_data(bAnimContext *ac, SpaceNla *snla, ARegion *region) case ANIMTYPE_NLAACTION: { AnimData *adt = ale->adt; + /* Draw the manually set intended playback frame range highlight. */ + if (ale->data) { + ANIM_draw_action_framerange(adt, ale->data, v2d, ymin, ymax); + } + uint pos = GPU_vertformat_attr_add( immVertexFormat(), "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR); diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 62f8906d136..1376dade659 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -71,7 +71,6 @@ /** \name Public Utilities * \{ */ -/* Perform validation for blending/extend settings */ void ED_nla_postop_refresh(bAnimContext *ac) { ListBase anim_data = {NULL, NULL}; @@ -205,7 +204,6 @@ void NLA_OT_tweakmode_enter(wmOperatorType *ot) /** \name Disable Tweak-Mode Operator * \{ */ -/* NLA Editor internal API function for exiting tweak-mode. */ bool nlaedit_disable_tweakmode(bAnimContext *ac, bool do_solo) { ListBase anim_data = {NULL, NULL}; @@ -2193,8 +2191,19 @@ static int nlaedit_apply_scale_exec(bContext *C, wmOperator *UNUSED(op)) * and recalculate the extents of the action now that it has been scaled * but leave everything else alone */ + const float start = nlastrip_get_frame(strip, strip->actstart, NLATIME_CONVERT_MAP); + const float end = nlastrip_get_frame(strip, strip->actend, NLATIME_CONVERT_MAP); + + if (strip->act->flag & ACT_FRAME_RANGE) { + strip->act->frame_start = nlastrip_get_frame( + strip, strip->act->frame_start, NLATIME_CONVERT_MAP); + strip->act->frame_end = nlastrip_get_frame( + strip, strip->act->frame_end, NLATIME_CONVERT_MAP); + } + strip->scale = 1.0f; - calc_action_range(strip->act, &strip->actstart, &strip->actend, 0); + strip->actstart = start; + strip->actend = end; ale->update |= ANIM_UPDATE_DEPS; } diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h index 9a9ea161f56..dd322dd2ad1 100644 --- a/source/blender/editors/space_nla/nla_intern.h +++ b/source/blender/editors/space_nla/nla_intern.h @@ -75,6 +75,9 @@ enum eNlaEdit_Snap_Mode { /* --- */ +/** + * NLA Editor internal API function for exiting tweak-mode. + */ bool nlaedit_disable_tweakmode(bAnimContext *ac, bool do_solo); void NLA_OT_tweakmode_enter(wmOperatorType *ot); @@ -121,7 +124,13 @@ void NLA_OT_fmodifier_paste(wmOperatorType *ot); /* **************************************** */ /* nla_channels.c */ +/** + * Helper - add NLA Tracks alongside existing ones. + */ bool nlaedit_add_tracks_existing(bAnimContext *ac, bool above_sel); +/** + * helper - add NLA Tracks to empty (and selected) AnimData blocks. + */ bool nlaedit_add_tracks_empty(bAnimContext *ac); /* --- */ @@ -139,9 +148,18 @@ void NLA_OT_selected_objects_add(wmOperatorType *ot); /* **************************************** */ /* nla_ops.c */ +/** + * Tweak-mode is NOT enabled. + */ bool nlaop_poll_tweakmode_off(bContext *C); +/** + * Tweak-mode IS enabled. + */ bool nlaop_poll_tweakmode_on(bContext *C); +/** + * Is tweak-mode enabled - for use in NLA operator code. + */ bool nlaedit_is_tweakmode_on(bAnimContext *ac); /* --- */ diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index 28f194877fa..33449bed798 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -39,7 +39,6 @@ /* ************************** poll callbacks for operators **********************************/ -/* Tweak-mode is NOT enabled. */ bool nlaop_poll_tweakmode_off(bContext *C) { Scene *scene; @@ -62,7 +61,6 @@ bool nlaop_poll_tweakmode_off(bContext *C) return 1; } -/* Tweak-mode IS enabled. */ bool nlaop_poll_tweakmode_on(bContext *C) { Scene *scene; @@ -85,7 +83,6 @@ bool nlaop_poll_tweakmode_on(bContext *C) return 1; } -/* is tweak-mode enabled - for use in NLA operator code */ bool nlaedit_is_tweakmode_on(bAnimContext *ac) { if (ac && ac->scene) { diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index 8b44c26f07c..0771153c5f5 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -591,7 +591,6 @@ static void nla_id_remap(ScrArea *UNUSED(area), SpaceLink *slink, ID *old_id, ID } } -/* only called once, from space/spacetypes.c */ void ED_spacetype_nla(void) { SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype nla"); |