72 const float location[2],
73 const bool zoom_to_pos)
78 float oldzoom = sc->
zoom;
83 if (sc->
zoom < 0.1f || sc->
zoom > 4.0f) {
90 if ((width < 4) && (height < 4) && sc->
zoom < oldzoom) {
101 if (zoom_to_pos && location) {
102 float aspx, aspy,
w, h, dx, dy;
110 dx = ((location[0] - 0.5f) *
w - sc->
xof) * (sc->
zoom - oldzoom) / sc->
zoom;
111 dy = ((location[1] - 0.5f) * h - sc->
yof) * (sc->
zoom - oldzoom) / sc->
zoom;
126 const float location[2],
127 const bool zoom_to_pos)
138 float location[2], *mpos =
nullptr;
169 op->
customdata = pprop = MEM_new<PropertyPointerRNA>(
"OpenPropertyPointerRNA");
206 BLI_path_join(filepath,
sizeof(filepath), dir_only, file_only);
229 "Cannot read '%s': %s",
231 errno ? strerror(errno) :
RPT_(
"unsupported movie clip format"));
276 STRNCPY(dirpath, clip->filepath);
304 ot->
description =
"Load a sequence of frames or a movie file";
378 op->
customdata = vpd = MEM_cnew<ViewPanData>(
"ClipViewPanData");
386 vpd->
x =
event->xy[0];
387 vpd->
y =
event->xy[1];
432 sc->
xof += offset[0];
433 sc->
yof += offset[1];
447 offset[0] = (
event->prev_xy[0] -
event->xy[0]) / sc->
zoom;
448 offset[1] = (
event->prev_xy[1] -
event->xy[1]) / sc->
zoom;
468 switch (event->
type) {
471 offset[0] = (vpd->
x -
event->xy[0]) / sc->
zoom;
472 offset[1] = (vpd->
y -
event->xy[1]) / sc->
zoom;
526 "Offset in floating-point units, 1.0 is the width and height of the image",
554 op->
customdata = vpd = MEM_cnew<ViewZoomData>(
"ClipViewZoomData");
568 vpd->
x =
event->xy[0];
569 vpd->
y =
event->xy[1];
612 delta =
event->prev_xy[0] -
event->xy[0] +
event->prev_xy[1] -
event->xy[1];
618 factor = 1.0f + delta / 300.0f;
639 delta =
float(event->
xy[0] - vpd->
x);
642 delta =
float(event->
xy[1] - vpd->
y);
646 delta =
event->xy[0] - vpd->
x +
event->xy[1] - vpd->
y;
649 delta /=
U.pixelsize;
661 zfac = 1.0f + ((delta / 20.0f) * time_step);
663 factor = (sclip->
zoom * zfac) / vpd->
zoom;
666 factor = 1.0f + delta / 300.0f;
678 switch (event->
type) {
730 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
776 ot->
idname =
"CLIP_OT_view_zoom_in";
795 "Cursor location in screen coordinates",
833 ot->
idname =
"CLIP_OT_view_zoom_out";
852 "Cursor location in normalized (0.0 to 1.0) coordinates",
882 ot->
name =
"View Zoom Ratio";
883 ot->
idname =
"CLIP_OT_view_zoom_ratio";
900 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
915 int w, h, width, height;
935 const int margin = 5;
937 zoomx =
float(width) / (
w + 2 * margin);
938 zoomy =
float(height) / (h + 2 * margin);
943 if ((
w >= width || h >= height) && (width > 0 && height > 0)) {
945 zoomy =
float(height) / h;
1004 ot->
name =
"Center View to Cursor";
1005 ot->
description =
"Center the view so that the cursor is in the middle of the view";
1006 ot->
idname =
"CLIP_OT_view_center_cursor";
1036 ot->
name =
"Frame Selected";
1037 ot->
idname =
"CLIP_OT_view_selected";
1057 if (
G.is_rendering) {
1061 return space_clip !=
nullptr;
1071 scene->r.subframe = 0.0f;
1092 float sfra = scene->r.sfra, efra = scene->r.efra, framelen = region->winx / (efra - sfra + 1);
1094 framenr = sfra +
event->mval[0] / framelen;
1129 switch (event->
type) {
1152 ot->
name =
"Change Frame";
1153 ot->
idname =
"CLIP_OT_change_frame";
1154 ot->
description =
"Interactively change the current frame number";
1193 int build_count = 0;
1194 const int size_flags[2][4] = {
1200 int size_nr = undistort ? 1 : 0;
1202 if (size_flag & size_flags[size_nr][0]) {
1206 if (size_flag & size_flags[size_nr][1]) {
1210 if (size_flag & size_flags[size_nr][2]) {
1214 if (size_flag & size_flags[size_nr][3]) {
1225 const int *build_undistort_sizes,
1226 int build_undistort_count,
1239 if (!build_undistort_count) {
1248 const int efra = clip->len;
1250 if (build_undistort_count) {
1260 for (
int cfra = sfra; cfra <= efra; cfra++) {
1262 clip, pj->
clip_flag, distortion, cfra, build_undistort_sizes, build_undistort_count,
true);
1264 if (*stop ||
G.is_break) {
1269 *progress = (
float(cfra) - sfra) / (efra - sfra);
1310 uchar *mem =
nullptr;
1313 if (!*queue->stop && queue->cfra <= queue->efra) {
1335 mem = MEM_cnew_array<uchar>(size,
"movieclip proxy memory file");
1337 if (
BLI_read(file, mem, size) != size) {
1345 *r_cfra = queue->cfra;
1350 *queue->do_update =
true;
1351 *queue->progress =
float(queue->cfra - queue->sfra) / (queue->efra - queue->sfra);
1372 data->clip->colorspace_settings.name,
1376 data->clip, ibuf,
nullptr, cfra, data->build_sizes, data->build_count,
false);
1382 data->build_undistort_sizes,
1383 data->build_undistort_count,
1395 int *build_undistort_sizes,
1396 int build_undistort_count,
1406 int sfra = scene->
r.
sfra, efra = scene->r.efra;
1411 if (build_undistort_count) {
1422 queue.do_update = do_update;
1423 queue.progress = progress;
1426 handles = MEM_cnew_array<ProxyThread>(tot_thread,
"proxy threaded handles");
1427 for (
int i = 0; i < tot_thread; i++) {
1430 handle->
clip = clip;
1432 handle->build_count = build_count;
1433 handle->build_sizes = build_sizes;
1435 handle->build_undistort_count = build_undistort_count;
1436 handle->build_undistort_sizes = build_undistort_sizes;
1438 if (build_undistort_count) {
1448 if (build_undistort_count) {
1449 for (
int i = 0; i < tot_thread; i++) {
1465 int build_sizes[4], build_count = 0;
1466 int build_undistort_sizes[4], build_undistort_count = 0;
1477 build_undistort_sizes,
1478 build_undistort_count,
1479 &worker_status->
stop,
1487 build_undistort_sizes,
1488 build_undistort_count,
1489 &worker_status->
stop,
1539 pj = MEM_cnew<ProxyJob>(
"proxy rebuild job");
1550 clip->proxy.quality,
1571 ot->
name =
"Rebuild Proxy and Timecode Indices";
1572 ot->
idname =
"CLIP_OT_rebuild_proxy";
1573 ot->
description =
"Rebuild all selected proxies and timecode indices in the background";
1609 ot->
name =
"Set Clip Mode";
1626#ifdef WITH_INPUT_NDOF
1648 const wmNDOFMotionData *ndof =
static_cast<wmNDOFMotionData *
>(
event->customdata);
1651 WM_event_ndof_pan_get(ndof, pan_vec,
true);
1657 sc->
xof += pan_vec[0];
1658 sc->
yof += pan_vec[1];
1668 ot->
name =
"NDOF Pan/Zoom";
1670 ot->
description =
"Use a 3D mouse device to pan/zoom the view";
1673 ot->
invoke = clip_view_ndof_invoke;
1696 switch (event->
type) {
1717 ot->
name =
"Prefetch Frames";
1719 ot->
description =
"Prefetch frames from disk for faster playback/tracking";
1739 if (
ELEM(
nullptr, scene, clip)) {
1745 scene->r.sfra = clip->start_frame;
1746 scene->r.efra = scene->r.sfra + clip_length - 1;
1748 scene->r.efra =
max_ii(scene->r.sfra, scene->r.efra);
1758 ot->
name =
"Set Scene Frames";
1759 ot->
idname =
"CLIP_OT_set_scene_frames";
1760 ot->
description =
"Set scene's start and end frame to match clip's start frame and length";
1776 bool show_cursor =
false;
1808 ot->
name =
"Set 2D Cursor";
1828 "Cursor location in normalized clip coordinates",
1858 ot->
name =
"Toggle Lock Selection";
1859 ot->
description =
"Toggle Lock Selection option of the current clip editor";
1860 ot->
idname =
"CLIP_OT_lock_selection_toggle";
1882 "Add Marker and Move",
1883 "Add new marker and move it on movie",
1890 "CLIP_OT_add_marker_slide",
1891 "Add Marker and Slide",
1892 "Add new marker and slide it with mouse until mouse button release",
bScreen * CTX_wm_screen(const bContext *C)
MovieClip * CTX_data_edit_movieclip(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
SpaceClip * CTX_wm_space_clip(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, int cfra, const int *build_sizes, int build_count, bool undistorted)
void BKE_movieclip_reload(struct Main *bmain, struct MovieClip *clip)
void BKE_movieclip_build_proxy_frame_for_ibuf(struct MovieClip *clip, struct ImBuf *ibuf, struct MovieDistortion *distortion, int cfra, const int *build_sizes, int build_count, bool undistorted)
struct MovieClip * BKE_movieclip_file_add_exists(struct Main *bmain, const char *filepath)
int BKE_movieclip_get_duration(struct MovieClip *clip)
void BKE_movieclip_get_size(struct MovieClip *clip, const struct MovieClipUser *user, int *r_width, int *r_height)
void BKE_movieclip_filepath_for_frame(struct MovieClip *clip, const struct MovieClipUser *user, char *filepath)
void BKE_movieclip_clear_proxy_cache(struct MovieClip *clip)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_tracking_distortion_set_threads(struct MovieDistortion *distortion, int threads)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
struct MovieDistortion * BKE_tracking_distortion_new(struct MovieTracking *tracking, int calibration_width, int calibration_height)
File and directory operations.
size_t BLI_file_descriptor_size(int file) ATTR_WARN_UNUSED_RESULT
int BLI_open(const char *filepath, int oflag, int pmode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int64_t BLI_read(int fd, void *buf, size_t nbytes)
MINLINE int round_fl_to_int(float a)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE float power_of_2(float f)
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
bool BLI_path_parent_dir(char *path) ATTR_NONNULL(1)
bool BLI_path_abs(char path[FILE_MAX], const char *basepath) ATTR_NONNULL(1
#define BLI_path_join(...)
bool void BLI_path_rel(char path[FILE_MAX], const char *basepath) ATTR_NONNULL(1)
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
#define STRNCPY(dst, src)
int BLI_task_scheduler_num_threads(void)
void * BLI_task_pool_user_data(TaskPool *pool)
void BLI_task_pool_work_and_wait(TaskPool *pool)
TaskPool * BLI_task_pool_create(void *userdata, eTaskPriority priority)
void BLI_task_pool_free(TaskPool *pool)
void BLI_task_pool_push(TaskPool *pool, TaskRunFunction run, void *taskdata, bool free_taskdata, TaskFreeFunction freedata)
pthread_spinlock_t SpinLock
int BLI_system_thread_count(void)
void BLI_spin_init(SpinLock *spin)
void BLI_spin_unlock(SpinLock *spin)
void BLI_spin_lock(SpinLock *spin)
void BLI_spin_end(SpinLock *spin)
Platform independent time functions.
double BLI_time_now_seconds(void)
#define BLT_I18NCONTEXT_ID_MOVIECLIP
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
#define DNA_struct_default_get(struct_name)
@ MCLIP_PROXY_RENDER_SIZE_75
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_50
@ MCLIP_PROXY_RENDER_SIZE_25
@ MCLIP_PROXY_UNDISTORTED_SIZE_100
@ MCLIP_PROXY_UNDISTORTED_SIZE_75
@ MCLIP_PROXY_UNDISTORTED_SIZE_50
@ MCLIP_PROXY_UNDISTORTED_SIZE_25
#define FRAMENUMBER_MIN_CLAMP(cfra)
#define NDOF_PIXELS_PER_SECOND
void ED_space_clip_set_clip(bContext *C, bScreen *screen, SpaceClip *sc, MovieClip *clip)
void ED_clip_view_lock_state_restore_no_jump(const bContext *C, const ClipViewLockState *state)
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
void ED_clip_mouse_pos(const SpaceClip *sc, const ARegion *region, const int mval[2], float r_co[2])
void ED_space_clip_get_size(const SpaceClip *sc, int *r_width, int *r_height)
bool ED_space_clip_maskedit_poll(bContext *C)
bool ED_space_clip_view_clip_poll(bContext *C)
void ED_space_clip_get_aspect(const SpaceClip *sc, float *r_aspx, float *r_aspy)
bool ED_space_clip_poll(bContext *C)
void ED_clip_view_lock_state_store(const bContext *C, ClipViewLockState *state)
bool ED_clip_view_selection(const bContext *C, const ARegion *region, bool fit)
void ED_area_tag_redraw(ScrArea *area)
void ED_region_tag_redraw(ARegion *region)
void IMB_anim_index_rebuild(IndexBuildContext *context, bool *stop, bool *do_update, float *progress)
void IMB_anim_index_rebuild_finish(IndexBuildContext *context, bool stop)
IndexBuildContext * IMB_anim_index_rebuild_context(ImBufAnim *anim, IMB_Timecode_Type tcs_in_use, int proxy_sizes_in_use, int quality, const bool overwrite, GSet *file_list, bool build_only_on_bad_performance)
void IMB_close_anim_proxies(ImBufAnim *anim)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
void UI_context_active_but_prop_get_templateID(const bContext *C, PointerRNA *r_ptr, PropertyRNA **r_prop)
void UI_view2d_region_to_view(const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
@ WM_JOB_TYPE_CLIP_BUILD_PROXY
@ WM_JOB_TYPE_CLIP_PREFETCH
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
void clip_start_prefetch_job(const bContext *C)
void clip_view_center_to_point(SpaceClip *sc, float x, float y)
bool clip_view_has_locked_selection(const bContext *C)
static int view_zoom_ratio_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_in(wmOperatorType *ot)
static void proxy_freejob(void *pjv)
static int open_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_ratio(wmOperatorType *ot)
static int clip_prefetch_invoke(bContext *C, wmOperator *op, const wmEvent *)
static void sclip_zoom_set_factor_exec(bContext *C, const wmEvent *event, float factor)
void CLIP_OT_cursor_set(wmOperatorType *ot)
static void sclip_zoom_set_factor(const bContext *C, float zoomfac, const float location[2], const bool zoom_to_pos)
static void view_pan_exit(bContext *C, wmOperator *op, bool cancel)
static void open_cancel(bContext *, wmOperator *op)
static void view_zoom_cancel(bContext *C, wmOperator *op)
static int change_frame_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void view_pan_cancel(bContext *C, wmOperator *op)
static void view_zoom_exit(bContext *C, wmOperator *op, bool cancel)
static int view_zoom_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void proxy_startjob(void *pjv, wmJobWorkerStatus *worker_status)
void CLIP_OT_mode_set(wmOperatorType *ot)
static void view_pan_init(bContext *C, wmOperator *op, const wmEvent *event)
static int view_zoom_in_exec(bContext *C, wmOperator *op)
static int view_zoom_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom(wmOperatorType *ot)
void CLIP_OT_view_zoom_out(wmOperatorType *ot)
void CLIP_OT_open(wmOperatorType *ot)
void CLIP_OT_set_scene_frames(wmOperatorType *ot)
void CLIP_OT_change_frame(wmOperatorType *ot)
static void proxy_endjob(void *pjv)
void CLIP_OT_view_selected(wmOperatorType *ot)
static void sclip_zoom_set(const bContext *C, float zoom, const float location[2], const bool zoom_to_pos)
static void open_init(bContext *C, wmOperator *op)
static int view_pan_exec(bContext *C, wmOperator *op)
static void clip_filesel(bContext *C, wmOperator *op, const char *dirpath)
static int view_zoom_in_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int frame_from_event(bContext *C, const wmEvent *event)
static int clip_rebuild_proxy_exec(bContext *C, wmOperator *)
static int lock_selection_toggle_exec(bContext *C, wmOperator *)
void ED_operatormacros_clip()
static void proxy_task_func(TaskPool *__restrict pool, void *task_data)
static int change_frame_exec(bContext *C, wmOperator *op)
void CLIP_OT_prefetch(wmOperatorType *ot)
static int view_zoom_out_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int clip_set_2d_cursor_exec(bContext *C, wmOperator *op)
static uchar * proxy_thread_next_frame(ProxyQueue *queue, MovieClip *clip, size_t *r_size, int *r_cfra)
void CLIP_OT_view_center_cursor(wmOperatorType *ot)
static int view_zoom_out_exec(bContext *C, wmOperator *op)
static int mode_set_exec(bContext *C, wmOperator *op)
void CLIP_OT_rebuild_proxy(wmOperatorType *ot)
void CLIP_OT_lock_selection_toggle(wmOperatorType *ot)
static int view_selected_exec(bContext *C, wmOperator *)
static int clip_prefetch_modal(bContext *C, wmOperator *, const wmEvent *event)
static int clip_set_scene_frames_exec(bContext *C, wmOperator *)
static int clip_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int change_frame_modal(bContext *C, wmOperator *op, const wmEvent *event)
static int view_zoom_modal(bContext *C, wmOperator *op, const wmEvent *event)
static int view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int view_pan_modal(bContext *C, wmOperator *op, const wmEvent *event)
static int view_center_cursor_exec(bContext *C, wmOperator *)
static int view_all_exec(bContext *C, wmOperator *op)
static bool change_frame_poll(bContext *C)
void CLIP_OT_view_pan(wmOperatorType *ot)
void CLIP_OT_view_all(wmOperatorType *ot)
static void do_movie_proxy(void *pjv, int *, int, const int *build_undistort_sizes, int build_undistort_count, bool *stop, bool *do_update, float *progress)
static int reload_exec(bContext *C, wmOperator *)
static int open_invoke(bContext *C, wmOperator *op, const wmEvent *)
static void do_sequence_proxy(void *pjv, int *build_sizes, int build_count, int *build_undistort_sizes, int build_undistort_count, bool *stop, bool *do_update, float *progress)
static void view_zoom_init(bContext *C, wmOperator *op, const wmEvent *event)
static void change_frame_apply(bContext *C, wmOperator *op)
void CLIP_OT_reload(wmOperatorType *ot)
static void view_zoom_apply(bContext *C, ViewZoomData *vpd, wmOperator *op, const wmEvent *event, const bool zoom_to_pos)
static int proxy_bitflag_to_array(int size_flag, int build_sizes[4], int undistort)
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
struct ImBuf * IMB_ibImageFromMemory(const unsigned char *, size_t, int, char[IM_MAX_SPACE], const char *)
void IMB_freeImBuf(ImBuf *)
void MEM_freeN(void *vmemh)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_collection_is_empty(PointerRNA *ptr, const char *name)
void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value, ReportList *reports)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
bool RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PointerRNA RNA_id_pointer_create(ID *id)
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)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
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)
const EnumPropertyItem rna_enum_clip_editor_mode_items[]
struct MovieClipProxy proxy
IndexBuildContext * index_context
MovieDistortion * distortion
int * build_undistort_sizes
int build_undistort_count
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)
struct ReportList * reports
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
int WM_userdef_event_type_from_keymap_type(int kmitype)
void WM_event_add_fileselect(bContext *C, wmOperator *op)
void WM_main_add_notifier(uint type, void *reference)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_jobs_timer(wmJob *wm_job, double time_step, uint note, uint endnote)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
void WM_jobs_kill_type(wmWindowManager *wm, const void *owner, int job_type)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, const eWM_JobFlag flag, const eWM_JobType job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type)
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *customdata))
void WM_operator_properties_filesel(wmOperatorType *ot, const int filter, const short type, const eFileSel_Action action, const eFileSel_Flag flag, const short display, const short sort)
void WM_operator_properties_use_cursor_init(wmOperatorType *ot)
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
wmOperatorType * WM_operatortype_append_macro(const char *idname, const char *name, const char *description, int flag)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)
wmTimer * WM_event_timer_add(wmWindowManager *wm, wmWindow *win, const int event_type, const double time_step)