[Bf-blender-cvs] [6dbb3ae99ef] temp-vse-preview-transform2: Address inlines
Richard Antalik
noreply at git.blender.org
Fri Sep 17 10:06:14 CEST 2021
Commit: 6dbb3ae99efabfeec847e74aeb2ba330608e9cba
Author: Richard Antalik
Date: Thu Sep 16 04:16:21 2021 +0200
Branches: temp-vse-preview-transform2
https://developer.blender.org/rB6dbb3ae99efabfeec847e74aeb2ba330608e9cba
Address inlines
===================================================================
M source/blender/editors/space_sequencer/sequencer_draw.c
M source/blender/editors/transform/transform_convert_sequencer_image.c
M source/blender/editors/transform/transform_draw_cursors.c
M source/blender/editors/transform/transform_gizmo_2d.c
M source/blender/makesdna/DNA_sequence_types.h
M source/blender/sequencer/SEQ_transform.h
M source/blender/sequencer/intern/render.c
M source/blender/sequencer/intern/strip_transform.c
===================================================================
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index c26757716d0..85c8a183aae 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -2064,7 +2064,7 @@ static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq)
const StripTransform *transform = seq->strip->transform;
float origin[2];
- SEQ_image_transform_origin_offset_get(CTX_data_scene(C), seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(CTX_data_scene(C), seq, origin);
/* Origin. */
float x = transform->xofs + origin[0];
@@ -2083,7 +2083,6 @@ static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq)
immUnbindProgram();
/* Outline. */
- StripElem *strip_elem = seq->strip->stripdata;
float transform_matrix[3][3];
loc_rot_size_to_mat3(transform_matrix,
(const float[]){transform->xofs, transform->yofs},
diff --git a/source/blender/editors/transform/transform_convert_sequencer_image.c b/source/blender/editors/transform/transform_convert_sequencer_image.c
index af1c0f13c8c..833267f6d3a 100644
--- a/source/blender/editors/transform/transform_convert_sequencer_image.c
+++ b/source/blender/editors/transform/transform_convert_sequencer_image.c
@@ -60,7 +60,7 @@ static TransData *SeqToTransData(const Scene *scene,
{
const StripTransform *transform = seq->strip->transform;
float origin[2];
- SEQ_image_transform_origin_offset_get(scene, seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(scene, seq, origin);
float vertex[2] = {transform->xofs + origin[0], transform->yofs + origin[1]};
/* Add control vertex, so rotation and scale can be calculated. */
@@ -120,6 +120,9 @@ void createTransSeqImageData(TransInfo *t)
Sequence *seq;
SEQ_ITERATOR_FOREACH (seq, strips) {
+ /* One `Sequence` needs 3 `TransData` entries - center point placed in image origin, then 2
+ * points offset by 1 in X and Y direction respectively, so rotation and scale can be
+ * calculated from these points. */
SeqToTransData(t->scene, seq, td++, td2d++, tdseq++, 0);
SeqToTransData(t->scene, seq, td++, td2d++, tdseq++, 1);
SeqToTransData(t->scene, seq, td++, td2d++, tdseq++, 2);
@@ -154,7 +157,7 @@ void recalcData_sequencer_image(TransInfo *t)
Sequence *seq = tdseq->seq;
StripTransform *transform = seq->strip->transform;
float origin[2];
- SEQ_image_transform_origin_offset_get(t->scene, seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(t->scene, seq, origin);
transform->xofs = round_fl_to_int(loc[0] - origin[0]);
transform->yofs = round_fl_to_int(loc[1] - origin[1]);
transform->scale_x = tdseq->orig_scale_x * fabs(len_v2(handle_x));
diff --git a/source/blender/editors/transform/transform_draw_cursors.c b/source/blender/editors/transform/transform_draw_cursors.c
index 0ad96c2ea92..af1f3cb72a4 100644
--- a/source/blender/editors/transform/transform_draw_cursors.c
+++ b/source/blender/editors/transform/transform_draw_cursors.c
@@ -95,7 +95,7 @@ static void drawArrow(const uint pos_id, const enum eArrowDirection dir)
bool transform_draw_cursor_poll(bContext *C)
{
ARegion *region = CTX_wm_region(C);
- return (region && (region->regiontype == RGN_TYPE_WINDOW || region->regiontype == RGN_TYPE_PREVIEW) ) ? 1 : 0;
+ return (region && ELEM(region->regiontype, RGN_TYPE_WINDOW, RGN_TYPE_PREVIEW)) ? 1 : 0;
}
/**
diff --git a/source/blender/editors/transform/transform_gizmo_2d.c b/source/blender/editors/transform/transform_gizmo_2d.c
index 5be294990d3..92a1b95e17a 100644
--- a/source/blender/editors/transform/transform_gizmo_2d.c
+++ b/source/blender/editors/transform/transform_gizmo_2d.c
@@ -268,16 +268,15 @@ static float gizmo2d_calc_rotation(const bContext *C)
static bool gizmo2d_calc_center(const bContext *C, float r_center[2])
{
ScrArea *area = CTX_wm_area(C);
+ Scene *scene = CTX_data_scene(C);
bool has_select = false;
zero_v2(r_center);
if (area->spacetype == SPACE_IMAGE) {
SpaceImage *sima = area->spacedata.first;
- Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
ED_uvedit_center_from_pivot_ex(sima, scene, view_layer, r_center, sima->around, &has_select);
}
else if (area->spacetype == SPACE_SEQ) {
- Scene *scene = CTX_data_scene(C);
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
SeqCollection *strips = SEQ_query_rendered_strips(seqbase, scene->r.cfra, 0);
SEQ_filter_selected_strips(strips);
@@ -292,7 +291,7 @@ static bool gizmo2d_calc_center(const bContext *C, float r_center[2])
SEQ_ITERATOR_FOREACH (seq, strips) {
StripTransform *transform = seq->strip->transform;
float origin[2];
- SEQ_image_transform_origin_offset_get(CTX_data_scene(C), seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(scene, seq, origin);
r_center[0] += transform->xofs + origin[0];
r_center[1] += transform->yofs + origin[1];
}
@@ -332,7 +331,7 @@ static int gizmo2d_modal(bContext *C,
return OPERATOR_RUNNING_MODAL;
}
-static void gizmo2d_xform_setup(const bContext *C, wmGizmoGroup *gzgroup)
+static void gizmo2d_xform_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup)
{
wmOperatorType *ot_translate = WM_operatortype_find("TRANSFORM_OT_translate", true);
GizmoGroup2D *ggd = gizmogroup2d_init(gzgroup);
@@ -663,7 +662,7 @@ static void gizmo2d_resize_draw_prepare(const bContext *C, wmGizmoGroup *gzgroup
}
}
-static void gizmo2d_resize_setup(const bContext *C, wmGizmoGroup *gzgroup)
+static void gizmo2d_resize_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup)
{
wmOperatorType *ot_resize = WM_operatortype_find("TRANSFORM_OT_resize", true);
@@ -806,7 +805,7 @@ static void gizmo2d_rotate_draw_prepare(const bContext *C, wmGizmoGroup *gzgroup
WM_gizmo_set_matrix_location(gz, origin);
}
-static void gizmo2d_rotate_setup(const bContext *C, wmGizmoGroup *gzgroup)
+static void gizmo2d_rotate_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup)
{
wmOperatorType *ot_resize = WM_operatortype_find("TRANSFORM_OT_rotate", true);
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index 8c4436ee968..782b4ac34aa 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -74,6 +74,7 @@ typedef struct StripTransform {
float scale_x;
float scale_y;
float rotation;
+ /** 0-1 range, use SEQ_image_transform_origin_offset_pixelspace_get to convert to pixel space. */
float origin[2];
} StripTransform;
diff --git a/source/blender/sequencer/SEQ_transform.h b/source/blender/sequencer/SEQ_transform.h
index 2a5f1d613ee..146edd7cb40 100644
--- a/source/blender/sequencer/SEQ_transform.h
+++ b/source/blender/sequencer/SEQ_transform.h
@@ -60,9 +60,9 @@ void SEQ_transform_offset_after_frame(struct Scene *scene,
struct ListBase *seqbase,
const int delta,
const int timeline_frame);
-void SEQ_image_transform_origin_offset_get(const struct Scene *scene,
- const struct Sequence *seq,
- float r_origin[2]);
+void SEQ_image_transform_origin_offset_pixelspace_get(const struct Scene *scene,
+ const struct Sequence *seq,
+ float r_origin[2]);
void SEQ_image_transform_final_quad_get(const struct Scene *scene,
const struct Sequence *seq,
float r_quad[4][2]);
diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c
index 2081b308f6d..c0d0dad534c 100644
--- a/source/blender/sequencer/intern/render.c
+++ b/source/blender/sequencer/intern/render.c
@@ -413,7 +413,7 @@ static void sequencer_image_crop_transform_matrix(const Scene *scene,
const float translate_x = transform->xofs * preview_scale_factor + image_center_offs_x;
const float translate_y = transform->yofs * preview_scale_factor + image_center_offs_y;
float origin[2];
- SEQ_image_transform_origin_offset_get(scene, seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(scene, seq, origin);
const float pivot[2] = {(in->x / 2) + origin[0], (in->y / 2) + origin[1]};
loc_rot_size_to_mat3(r_transform_matrix,
(const float[]){translate_x, translate_y},
diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c
index 2df6972b6bd..8ef73f1028f 100644
--- a/source/blender/sequencer/intern/strip_transform.c
+++ b/source/blender/sequencer/intern/strip_transform.c
@@ -429,9 +429,9 @@ void SEQ_transform_offset_after_frame(Scene *scene,
* \param seq: Sequence to calculate image transform origin
* \param r_origin: return value
*/
-void SEQ_image_transform_origin_offset_get(const Scene *scene,
- const Sequence *seq,
- float r_origin[2])
+void SEQ_image_transform_origin_offset_pixelspace_get(const Scene *scene,
+ const Sequence *seq,
+ float r_origin[2])
{
float image_size[2];
StripElem *strip_elem = seq->strip->stripdata;
@@ -469,7 +469,7 @@ void SEQ_image_transform_final_quad_get(const Scene *scene,
transform->rotation,
(const float[]){transform->scale_x, transform->scale_y});
float origin[2];
- SEQ_image_transform_origin_offset_get(scene, seq, origin);
+ SEQ_image_transform_origin_offset_pixelspace_get(scene, seq, origin);
transform_pivot_set_m3(transform_matrix, origin);
r_quad[0][0] = (img_x / 2) - crop->right;
More information about the Bf-blender-cvs
mailing list