80SpaceSeq_Runtime::~SpaceSeq_Runtime() =
default;
163 region->
v2d.
min[0] = 0.0f;
164 region->
v2d.
min[1] = 0.0f;
165 region->
v2d.
max[0] = 12000.0f;
166 region->
v2d.
max[1] = 12000.0f;
185 region->
v2d.
min[0] = 10.0f;
186 region->
v2d.
min[1] = 1.0f;
222 if (sseq->
runtime ==
nullptr) {
223 sseq->
runtime = MEM_new<SpaceSeq_Runtime>(__func__);
233 bool view_changed =
false;
235 switch (sseq->
view) {
257 region_main->
sizey = int(height - region_preview->
sizey);
258 region_preview->
sizey = int(height - region_main->
sizey);
266 if (region_preview->
sizey < 10 || region_main->
sizey < 10 ||
267 region_preview->
sizey + region_main->
sizey > height)
270 region_main->
sizey = int(height - region_preview->
sizey);
288 sseqn->
runtime = MEM_new<SpaceSeq_Runtime>(__func__);
366 gzgt->
name =
"Sequencer Transform Gizmo";
367 gzgt->
idname =
"SEQUENCER_GGT_gizmo2d";
380 gzgt->
name =
"Sequencer Translate Gizmo";
381 gzgt->
idname =
"SEQUENCER_GGT_gizmo2d_translate";
394 gzgt->
name =
"Sequencer Transform Gizmo Resize";
395 gzgt->
idname =
"SEQUENCER_GGT_gizmo2d_resize";
408 gzgt->
name =
"Sequencer Transform Gizmo Resize";
409 gzgt->
idname =
"SEQUENCER_GGT_gizmo2d_rotate";
511 float pad_top, pad_bottom;
517 bottom_channel_padding = std::max(bottom_channel_padding, 1.0f);
519 strip_boundbox.
ymax += 1.0f + pad_top * pixel_view_size_y;
520 strip_boundbox.
ymin -= bottom_channel_padding;
528 if (view_clamped.
ymax > strip_boundbox.
ymax) {
529 view_clamped.
ymax = strip_boundbox.
ymax;
532 else if (view_clamped.
ymin < strip_boundbox.
ymin) {
533 view_clamped.
ymin = strip_boundbox.
ymin;
537 v2d->
cur = view_clamped;
616 msg_sub_value_region_tag_redraw.
owner = region;
617 msg_sub_value_region_tag_redraw.
user_data = region;
624 use_preview ? &rna_Scene_frame_preview_start : &rna_Scene_frame_start,
625 use_preview ? &rna_Scene_frame_preview_end : &rna_Scene_frame_end,
626 &rna_Scene_use_preview_range,
627 &rna_Scene_frame_current,
646 &RNA_StripColorBalanceData,
650 msg_key_params.
ptr.
type = type_array[
i];
652 mbus, &msg_key_params, &msg_sub_value_region_tag_redraw, __func__);
661 float mouse_co_region[2])
682 if (tref ==
nullptr || scene ==
nullptr ||
ed ==
nullptr) {
702 float mouse_co_view[2];
704 ®ion->
v2d, mouse_co_region[0], mouse_co_region[1], &mouse_co_view[0], &mouse_co_view[1]);
707 int mval[2] = {int(mouse_co_region[0]), int(mouse_co_region[1])};
709 if (strip !=
nullptr) {
736 if (selection.
strip1 ==
nullptr) {
751 if (selection.
strip1 !=
nullptr && selection.
strip2 !=
nullptr) {
1013 switch (wmn->
data) {
1059 switch (wmn->
data) {
1148 std::unique_ptr<SpaceType> st = std::make_unique<SpaceType>();
1168 st->blend_read_after_liblink =
nullptr;
1283 if (
G.background == 0) {
void CTX_data_dir_set(bContextDataResult *result, const char **dir)
bool CTX_data_equals(const char *member, const char *str)
void CTX_data_pointer_set(bContextDataResult *result, ID *id, StructRNA *type, void *data)
bool CTX_data_dir(const char *member)
void CTX_data_id_pointer_set(bContextDataResult *result, ID *id)
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
@ CTX_RESULT_MEMBER_NOT_FOUND
SpaceSeq * CTX_wm_space_seq(const bContext *C)
Scene * CTX_data_sequencer_scene(const bContext *C)
void BKE_gpencil_free_data(struct bGPdata *gpd, bool free_all)
void BKE_gpencil_blend_read_data(struct BlendDataReader *reader, struct bGPdata *gpd)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_)
@ IDWALK_CB_DIRECT_WEAK_LINK
void BKE_spacetype_register(std::unique_ptr< SpaceType > st)
ARegion * BKE_area_region_new()
ARegion * BKE_area_find_region_type(const ScrArea *area, int region_type)
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_addhead(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE int round_fl_to_int(float a)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
bool BLI_rcti_isect_pt_v(const struct rcti *rect, const int xy[2])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
bool BLI_rctf_isect_pt_v(const struct rctf *rect, const float xy[2])
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
#define STRNCPY_UTF8(dst, src)
#define BLO_write_struct(writer, struct_name, data_ptr)
@ RGN_FLAG_HIDDEN_BY_USER
@ SEQ_TIMELINE_SHOW_FCURVES
@ SEQ_TIMELINE_SHOW_STRIP_DURATION
@ SEQ_TIMELINE_SHOW_THUMBNAILS
@ SEQ_TIMELINE_SHOW_STRIP_RETIMING
@ SEQ_TIMELINE_WAVEFORMS_HALF
@ SEQ_TIMELINE_SHOW_STRIP_SOURCE
@ SEQ_TIMELINE_SHOW_STRIP_NAME
@ SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG
@ SEQ_VIEW_SEQUENCE_PREVIEW
@ SEQ_PREVIEW_SHOW_GPENCIL
@ SEQ_PREVIEW_SHOW_OUTLINE_SELECTED
@ SEQ_DRAW_TRANSFORM_PREVIEW
@ SEQ_CACHE_SHOW_FINAL_OUT
@ V2D_ZOOM_IGNORE_KEEPOFS
@ V2D_VIEWSYNC_AREA_VERTICAL
@ V2D_SCROLL_VERTICAL_HIDE
@ V2D_SCROLL_VERTICAL_HANDLES
@ V2D_SCROLL_HORIZONTAL_HANDLES
void ED_area_do_mgs_subscribe_for_tool_header(const wmRegionMessageSubscribeParams *params)
void ED_area_tag_redraw(ScrArea *area)
ARegionType * ED_area_type_hud(int space_type)
void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area)
void ED_area_do_mgs_subscribe_for_tool_ui(const wmRegionMessageSubscribeParams *params)
void ED_region_panels(const bContext *C, ARegion *region)
void ED_region_header(const bContext *C, ARegion *region)
void ED_region_header_init(ARegion *region)
void ED_region_panels_ex(const bContext *C, ARegion *region, blender::wm::OpCallContext op_context, const char *contexts[])
int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis)
void ED_region_generic_tools_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
int ED_region_generic_panel_region_snap_size(const ARegion *region, int size, int axis)
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
void ED_region_tag_redraw(ARegion *region)
void ED_region_do_msg_notify_tag_redraw(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
ImBuf * ED_view3d_draw_offscreen_imbuf_simple(Depsgraph *depsgraph, Scene *scene, View3DShading *shading_override, eDrawType drawtype, Object *camera, int width, int height, eImBufFlags imbuf_flags, eV3DOffscreenDrawFlag draw_flags, int alpha_mode, const char *viewname, GPUOffScreen *ofs, GPUViewport *viewport, char err_out[256])
Read Guarded memory(de)allocation.
#define UI_SIDEBAR_PANEL_WIDTH
#define UI_COMPACT_PANEL_WIDTH
#define UI_MARKER_MARGIN_Y
char char UI_view2d_mouse_in_scrollers(const ARegion *region, const View2D *v2d, const int xy[2]) ATTR_NONNULL(1
void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy)
void VIEW2D_GGT_navigate_impl(wmGizmoGroupType *gzgt, const char *idname)
#define UI_TIME_SCRUB_MARGIN_Y
void UI_view2d_region_to_view(const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
@ WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP
@ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK
#define ND_SPACE_SEQUENCER
#define ND_GPENCIL_EDITMODE
#define ND_RENDER_OPTIONS
#define ND_BONE_COLLECTION
#define ND_DRAW_RENDER_VIEWPORT
BMesh const char void * data
IDRemapperApplyResult apply(ID **r_id_ptr, IDRemapperApplyOptions options, ID *id_self=nullptr) const
void * MEM_callocN(size_t len, const char *str)
void * MEM_dupallocN(const void *vmemh)
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static void sequencer_main_region_clamp_custom_set(const bContext *C, ARegion *region)
static bool sequencer_main_region_poll(const RegionPollParams *params)
static void sequencer_main_region_layout(const bContext *C, ARegion *region)
static void sequencer_channel_region_init(wmWindowManager *wm, ARegion *region)
static int sequencer_context(const bContext *C, const char *member, bContextDataResult *result)
static void sequencer_header_region_draw(const bContext *C, ARegion *region)
static SpaceLink * sequencer_duplicate(SpaceLink *sl)
static void sequencer_preview_region_init(wmWindowManager *wm, ARegion *region)
static bool is_mouse_over_retiming_key(const Scene *scene, const Strip *strip, const View2D *v2d, const ScrArea *area, float mouse_co_region[2])
StripSelection pick_strip_and_handle(const struct Scene *scene, const View2D *v2d, float mouse_co[2])
static void sequencer_foreach_id(SpaceLink *space_link, LibraryForeachIDData *data)
static void sequencer_init(wmWindowManager *, ScrArea *area)
void sequencer_dropboxes()
static void sequencer_tools_region_draw(const bContext *C, ARegion *region)
static void SEQUENCER_GGT_gizmo2d(wmGizmoGroupType *gzgt)
static void sequencer_main_region_init(wmWindowManager *wm, ARegion *region)
static void sequencer_main_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
static void sequencer_main_clamp_view(const bContext *C, ARegion *region)
static void sequencer_buttons_region_listener(const wmRegionListenerParams *params)
static void sequencer_scopes_tag_refresh(ScrArea *area, const Scene *scene)
static void sequencer_main_region_draw(const bContext *C, ARegion *region)
void draw_timeline_seq(const bContext *C, ARegion *region)
void SEQ_get_timeline_region_padding(const bContext *C, float *r_pad_top, float *r_pad_bottom)
static void sequencer_space_blend_write(BlendWriter *writer, SpaceLink *sl)
void sequencer_preview_region_draw(const bContext *C, ARegion *region)
static void sequencer_footer_region_listener(const wmRegionListenerParams *params)
static bool sequencer_preview_region_poll(const RegionPollParams *params)
const char * sequencer_context_dir[]
static bool sequencer_channel_region_poll(const RegionPollParams *params)
MenuType add_scene_menu_type()
static void sequencer_space_blend_read_data(BlendDataReader *, SpaceLink *sl)
static SpaceLink * sequencer_create(const ScrArea *, const Scene *scene)
static void sequencer_main_region_listener(const wmRegionListenerParams *params)
Strip * strip_under_mouse_get(const Scene *scene, const View2D *v2d, const int mval[2])
static void sequencer_refresh(const bContext *C, ScrArea *area)
bool can_select_handle(const Scene *scene, const Strip *strip, const View2D *v2d)
MenuType add_unassigned_assets_menu_type()
rctf strip_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Strip *strip)
bool retiming_keys_can_be_displayed(const SpaceSeq *sseq)
static void sequencer_listener(const wmSpaceTypeListenerParams *params)
static void SEQUENCER_GGT_gizmo2d_translate(wmGizmoGroupType *gzgt)
static void sequencer_id_remap(ScrArea *, SpaceLink *slink, const blender::bke::id::IDRemapper &mappings)
void sequencer_operatortypes()
static void SEQUENCER_GGT_gizmo2d_resize(wmGizmoGroupType *gzgt)
static void sequencer_gizmos()
MenuType add_catalog_assets_menu_type()
void draw_timeline_seq_display(const bContext *C, ARegion *region)
static void sequencer_channel_region_draw(const bContext *C, ARegion *region)
static void SEQUENCER_GGT_navigate(wmGizmoGroupType *gzgt)
static void sequencer_header_region_init(wmWindowManager *, ARegion *region)
static void sequencer_preview_region_layout(const bContext *C, ARegion *region)
static void sequencer_free(SpaceLink *sl)
void draw_channels(const bContext *C, ARegion *region)
static void sequencer_main_cursor(wmWindow *win, ScrArea *area, ARegion *region)
static void sequencer_buttons_region_init(wmWindowManager *wm, ARegion *region)
void sequencer_buttons_register(ARegionType *art)
static void sequencer_tools_region_init(wmWindowManager *wm, ARegion *region)
void ED_spacetype_sequencer()
static void sequencer_buttons_region_draw(const bContext *C, ARegion *region)
static void SEQUENCER_GGT_gizmo2d_rotate(wmGizmoGroupType *gzgt)
static void sequencer_preview_region_listener(const wmRegionListenerParams *params)
static void sequencer_main_region_draw_overlay(const bContext *C, ARegion *region)
static void sequencer_preview_region_view2d_changed(const bContext *C, ARegion *)
void sequencer_keymap(wmKeyConfig *keyconf)
static void sequencer_main_region_view2d_changed(const bContext *C, ARegion *region)
int time_right_handle_frame_get(const Scene *scene, const Strip *strip)
struct ImBuf *(*)(struct Depsgraph *, struct Scene *, struct View3DShading *, eDrawType, struct Object *, int, int, enum eImBufFlags, eV3DOffscreenDrawFlag, int, const char *, struct GPUOffScreen *, struct GPUViewport *, char *) DrawViewFn
ListBase * channels_displayed_get(const Editing *ed)
Editing * editing_get(const Scene *scene)
int time_left_handle_frame_get(const Scene *, const Strip *strip)
bool transform_single_image_check(const Strip *strip)
constexpr int MAX_CHANNELS
void timeline_expand_boundbox(const Scene *scene, const ListBase *seqbase, rctf *rect)
bool retiming_data_is_editable(const Strip *strip)
void timeline_init_boundbox(const Scene *scene, rctf *r_rect)
bool transform_is_locked(ListBase *channels, const Strip *strip)
void preview_cache_invalidate(Scene *scene)
Mask * active_mask_get(Scene *scene)
static void * newdataadr(FileData *fd, const void *adr)
PointerRNA RNA_id_pointer_create(ID *id)
bool(* poll)(const RegionPollParams *params)
bool clip_gizmo_events_by_ui
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
void(* cursor)(wmWindow *win, ScrArea *area, ARegion *region)
void(* listener)(const wmRegionListenerParams *params)
void(* on_view2d_changed)(const bContext *C, ARegion *region)
void(* draw)(const bContext *C, ARegion *region)
void(* layout)(const bContext *C, ARegion *region)
void(* draw_overlay)(const bContext *C, ARegion *region)
int(* snap_size)(const ARegion *region, int size, int axis)
void(* init)(wmWindowManager *wm, ARegion *region)
ARegionRuntimeHandle * runtime
struct ToolSettings * toolsettings
struct SequencerCacheOverlay cache_overlay
struct SequencerTimelineOverlay timeline_overlay
SpaceSeq_Runtime * runtime
struct SequencerPreviewOverlay preview_overlay
struct wmTimer * smooth_timer
struct Scene * sequencer_scene
float timeline_clamp_custom_range
wmGizmoMapType_Params gzmap_params
eWM_GizmoFlagGroupTypeFlag flag
struct wmEvent * eventstate
void WM_cursor_set(wmWindow *win, int curs)
ListBase * WM_dropboxmap_find(const char *idname, int spaceid, int regionid)
wmEventHandler_Dropbox * WM_event_add_dropbox_handler(ListBase *handlers, ListBase *dropboxes)
wmEventHandler_Keymap * WM_event_add_keymap_handler_poll(ListBase *handlers, wmKeyMap *keymap, EventHandlerPoll poll)
wmEventHandler_Keymap * WM_event_add_keymap_handler_v2d_mask(ListBase *handlers, wmKeyMap *keymap)
bool WM_event_handler_region_v2d_mask_no_marker_poll(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
wmGizmoGroupType * WM_gizmogrouptype_append(void(*wtfunc)(wmGizmoGroupType *))
wmGizmoGroupTypeRef * WM_gizmogrouptype_append_and_link(wmGizmoMapType *gzmap_type, void(*wtfunc)(wmGizmoGroupType *))
void WM_gizmomap_tag_refresh(wmGizmoMap *gzmap)
wmGizmoMapType * WM_gizmomaptype_ensure(const wmGizmoMapType_Params *gzmap_params)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
void WM_msg_subscribe_rna_params(wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void WM_msg_subscribe_rna(wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
WorkSpace * WM_window_get_active_workspace(const wmWindow *win)