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:
authorPhilipp Oeser <info@graphics-engineer.com>2020-10-05 16:40:37 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-10-05 19:37:59 +0300
commitca38bce46aa292654451fa34fc33b88fc5ca72f0 (patch)
tree3e0df334f3a5469b37096a6b366c818a374adbff /source/blender
parent8bce181b715456b3b612be3ba3637f065679d97b (diff)
Fix T81380: Playback set start/endframe operators can set negative
rendering range The Allow Negative Frames option, introduced in rB21a2350248fd, allows for negative frames, but this should only apply for playback and animations, the rendering range should still be clamped to MINFRAME / MAXFRAME, because rendering does not allow for negative frames. Preview range should not be affected afaict (I am not aware of operators that allow for rendering this range). Maniphest Tasks: T81380 Differential Revision: https://developer.blender.org/D9112
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/animation/anim_ops.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index 40cd368e02b..b52ff131b43 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -35,6 +35,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_main.h"
+#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_sequencer.h"
@@ -299,7 +300,7 @@ static bool anim_set_end_frames_poll(bContext *C)
return false;
}
-static int anim_set_sfra_exec(bContext *C, wmOperator *UNUSED(op))
+static int anim_set_sfra_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
int frame;
@@ -315,6 +316,13 @@ static int anim_set_sfra_exec(bContext *C, wmOperator *UNUSED(op))
scene->r.psfra = frame;
}
else {
+ /* Clamping should be in sync with 'rna_Scene_start_frame_set()'. */
+ int frame_clamped = frame;
+ CLAMP(frame_clamped, MINFRAME, MAXFRAME);
+ if (frame_clamped != frame) {
+ BKE_report(op->reports, RPT_WARNING, "Start frame clamped to valid rendering range");
+ }
+ frame = frame_clamped;
scene->r.sfra = frame;
}
@@ -347,7 +355,7 @@ static void ANIM_OT_start_frame_set(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-static int anim_set_efra_exec(bContext *C, wmOperator *UNUSED(op))
+static int anim_set_efra_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
int frame;
@@ -363,6 +371,13 @@ static int anim_set_efra_exec(bContext *C, wmOperator *UNUSED(op))
scene->r.pefra = frame;
}
else {
+ /* Clamping should be in sync with 'rna_Scene_end_frame_set()'. */
+ int frame_clamped = frame;
+ CLAMP(frame_clamped, MINFRAME, MAXFRAME);
+ if (frame_clamped != frame) {
+ BKE_report(op->reports, RPT_WARNING, "End frame clamped to valid rendering range");
+ }
+ frame = frame_clamped;
scene->r.efra = frame;
}