47 ot->
description =
"Use mouse to sample color in current frame";
90 float pad_top, pad_bottom;
125 ot->
idname =
"SEQUENCER_OT_view_all";
153 ot->
name =
"Go to Current Frame";
154 ot->
idname =
"SEQUENCER_OT_view_frame";
189 int width, height, imgwidth, imgheight;
191 width = region->winx;
192 height = region->winy;
194 seq_reset_imageofs(sseq);
199 imgwidth =
int(imgwidth * (scene->r.xasp / scene->r.yasp));
201 if (((imgwidth >= width) || (imgheight >= height)) && ((width > 0) && (height > 0))) {
205 sseq->zoom = (zoomX < zoomY) ? zoomX : zoomY;
224 ot->
idname =
"SEQUENCER_OT_view_all_preview";
266 ot->
name =
"Sequencer View Zoom Ratio";
267 ot->
idname =
"SEQUENCER_OT_view_zoom_ratio";
281 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
296 float min[2], max[2];
307 if (minsize < 1.0f) {
330 ymin =
min_ii(ymin, seq->machine);
332 ymax =
max_ii(ymax, seq->machine + 1);
341 new_viewport.
xmin = xmin;
342 new_viewport.
xmax = xmax;
344 new_viewport.
ymin = ymin;
345 new_viewport.
ymax = ymax;
356 float timeline_ymin = box.ymin;
357 float timeline_ymax = box.ymax;
359 if (orig_height > timeline_ymax - timeline_ymin) {
369 new_viewport.
ymin = ymid - (orig_height / 2.0f);
370 new_viewport.
ymax = ymid + (orig_height / 2.0f);
372 if (new_viewport.
ymin < timeline_ymin) {
373 new_viewport.
ymin = timeline_ymin;
374 new_viewport.
ymax = new_viewport.
ymin + orig_height;
376 else if (new_viewport.
ymax > timeline_ymax) {
377 new_viewport.
ymax = timeline_ymax;
378 new_viewport.
ymin = new_viewport.
ymax - orig_height;
381 *rect = new_viewport;
416 ot->
name =
"Frame Selected";
417 ot->
idname =
"SEQUENCER_OT_view_selected";
418 ot->
description =
"Zoom the sequencer on the selected strips";
461 scene->ed->overlay_frame_rect = rect;
471 ot->
name =
"Border Offset View";
472 ot->
idname =
"SEQUENCER_OT_view_ghost_border";
473 ot->
description =
"Set the boundaries of the border used for offset view";
bScreen * CTX_wm_screen(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
SpaceSeq * CTX_wm_space_seq(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
void BKE_render_resolution(const RenderData *r, const bool use_crop, int *r_width, int *r_height)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE float power_of_2(float f)
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE float BLI_rctf_cent_y(const struct rctf *rct)
void BLI_rctf_pad_y(struct rctf *rect, float boundary_size, float pad_min, float pad_max)
void BLI_rctf_scale(rctf *rect, float scale)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
void BLI_rctf_pad(struct rctf *rect, float pad_x, float pad_y)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
void BLI_rctf_resize(struct rctf *rect, float x, float y)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
@ SEQ_CACHE_SHOW_FINAL_OUT
void ED_area_tag_redraw(ScrArea *area)
bool ED_operator_sequencer_active(bContext *C)
void ED_region_tag_redraw(ARegion *region)
blender::VectorSet< Sequence * > ED_sequencer_selected_strips_from_context(bContext *C)
void ED_imbuf_sample_cancel(bContext *C, wmOperator *op)
int ED_imbuf_sample_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_imbuf_sample_poll(bContext *C)
int ED_imbuf_sample_modal(bContext *C, wmOperator *op, const wmEvent *event)
constexpr int SEQ_MAX_CHANNELS
void UI_view2d_smooth_view(const bContext *C, ARegion *region, const rctf *cur, int smooth_viewtx)
void UI_view2d_sync(bScreen *screen, ScrArea *area, View2D *v2dcur, int flag)
#define UI_MARKER_MARGIN_Y
#define V2D_SCROLL_HANDLE_HEIGHT
#define UI_TIME_CACHE_MARGIN_Y
void UI_view2d_curRect_changed(const bContext *C, View2D *v2d)
#define UI_TIME_SCRUB_MARGIN_Y
View2D * UI_view2d_fromcontext(const bContext *C)
void UI_view2d_region_to_view_rctf(const View2D *v2d, const rctf *rect_src, rctf *rect_dst) ATTR_NONNULL()
void ANIM_center_frame(bContext *C, int smooth_viewtx)
ListBase * ED_context_get_markers(const bContext *C)
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
float RNA_float_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_subtype(PropertyRNA *prop, PropertySubType subtype)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
ListBase * SEQ_active_seqbase_get(const Editing *ed)
Editing * SEQ_editing_get(const Scene *scene)
MetaStack * SEQ_meta_stack_active_get(const Editing *ed)
bool sequencer_view_preview_only_poll(const bContext *C)
bool sequencer_view_has_preview_poll(bContext *C)
bool sequencer_editing_initialized_and_active(bContext *C)
void SEQ_get_timeline_region_padding(const bContext *C, float *r_pad_top, float *r_pad_bottom)
static int sequencer_view_frame_exec(bContext *C, wmOperator *op)
static int sequencer_view_all_exec(bContext *C, wmOperator *op)
static int sequencer_view_all_preview_exec(bContext *C, wmOperator *)
static int sequencer_view_zoom_ratio_exec(bContext *C, wmOperator *op)
static void seq_view_collection_rect_preview(Scene *scene, blender::Span< Sequence * > strips, rctf *rect)
void SEQUENCER_OT_sample(wmOperatorType *ot)
static void seq_view_collection_rect_timeline(const bContext *C, blender::Span< Sequence * > strips, rctf *rect)
void SEQUENCER_OT_view_all_preview(wmOperatorType *ot)
void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot)
void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot)
static int sequencer_view_selected_exec(bContext *C, wmOperator *op)
void SEQUENCER_OT_view_frame(wmOperatorType *ot)
void SEQUENCER_OT_view_selected(wmOperatorType *ot)
void SEQUENCER_OT_view_all(wmOperatorType *ot)
void SEQ_add_timeline_region_padding(const bContext *C, rctf *view_box)
static int view_ghost_border_exec(bContext *C, wmOperator *op)
int SEQ_time_left_handle_frame_get(const Scene *, const Sequence *seq)
void SEQ_timeline_expand_boundbox(const Scene *scene, const ListBase *seqbase, rctf *rect)
void SEQ_timeline_init_boundbox(const Scene *scene, rctf *r_rect)
void SEQ_timeline_boundbox(const Scene *scene, const ListBase *seqbase, rctf *r_rect)
int SEQ_time_right_handle_frame_get(const Scene *scene, const Sequence *seq)
struct SequencerCacheOverlay cache_overlay
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
void(* cancel)(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
int WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operator_properties_gesture_box(wmOperatorType *ot)
void WM_operator_properties_border_to_rctf(wmOperator *op, rctf *r_rect)
int WM_operator_smooth_viewtx_get(const wmOperator *op)