26 #include <sys/types.h>
87 const float location[2],
88 const bool zoom_to_pos)
93 float oldzoom = sc->
zoom;
98 if (sc->
zoom < 0.1f || sc->
zoom > 4.0f) {
116 if (zoom_to_pos && location) {
117 float aspx, aspy,
w, h, dx, dy;
125 dx = ((location[0] - 0.5f) *
w - sc->
xof) * (sc->
zoom - oldzoom) / sc->
zoom;
126 dy = ((location[1] - 0.5f) * h - sc->
yof) * (sc->
zoom - oldzoom) / sc->
zoom;
141 const float location[2],
142 const bool zoom_to_pos)
153 float location[2], *mpos =
NULL;
240 "Cannot read '%s': %s",
242 errno ? strerror(errno) :
TIP_(
"unsupported movie clip format"));
314 ot->
description =
"Load a sequence of frames or a movie file";
442 sc->
xof += offset[0];
443 sc->
yof += offset[1];
457 offset[0] = (
event->prevx -
event->x) / sc->
zoom;
458 offset[1] = (event->
prevy - event->
y) / sc->
zoom;
478 switch (event->
type) {
481 offset[0] = (vpd->
x -
event->x) / sc->
zoom;
482 offset[1] = (vpd->
y - event->
y) / sc->
zoom;
536 "Offset in floating-point units, 1.0 is the width and height of the image",
622 delta =
event->prevx -
event->x +
event->prevy -
event->y;
628 factor = 1.0f + delta / 300.0f;
649 delta = (
float)(event->
x - vpd->
x);
652 delta = (
float)(event->
y - vpd->
y);
656 delta =
event->x - vpd->
x +
event->y - vpd->
y;
659 delta /=
U.pixelsize;
671 zfac = 1.0f + ((delta / 20.0f) * time_step);
673 factor = (sclip->
zoom * zfac) / vpd->
zoom;
676 factor = 1.0f + delta / 300.0f;
688 switch (event->
type) {
740 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
786 ot->
idname =
"CLIP_OT_view_zoom_in";
805 "Cursor location in screen coordinates",
843 ot->
idname =
"CLIP_OT_view_zoom_out";
862 "Cursor location in normalized (0.0 to 1.0) coordinates",
892 ot->
name =
"View Zoom Ratio";
893 ot->
idname =
"CLIP_OT_view_zoom_ratio";
910 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
944 const int margin = 5;
1012 ot->
name =
"Center View to Cursor";
1013 ot->
description =
"Center the view so that the cursor is in the middle of the view";
1014 ot->
idname =
"CLIP_OT_view_center_cursor";
1044 ot->
name =
"Frame Selected";
1045 ot->
idname =
"CLIP_OT_view_selected";
1064 if (
G.is_rendering) {
1068 return space_clip !=
NULL;
1099 float sfra =
SFRA, efra =
EFRA, framelen = region->
winx / (efra - sfra + 1);
1101 framenr = sfra +
event->mval[0] / framelen;
1136 switch (event->
type) {
1159 ot->
name =
"Change Frame";
1160 ot->
idname =
"CLIP_OT_change_frame";
1161 ot->
description =
"Interactively change the current frame number";
1199 int build_count = 0;
1200 const int size_flags[2][4] = {
1206 int size_nr = undistort ? 1 : 0;
1208 if (size_flag & size_flags[size_nr][0]) {
1212 if (size_flag & size_flags[size_nr][1]) {
1216 if (size_flag & size_flags[size_nr][2]) {
1220 if (size_flag & size_flags[size_nr][3]) {
1229 int *
UNUSED(build_sizes),
1231 int *build_undistort_sizes,
1232 int build_undistort_count,
1241 int cfra, sfra =
SFRA, efra =
EFRA;
1247 if (!build_undistort_count) {
1258 if (build_undistort_count) {
1268 for (cfra = sfra; cfra <= efra; cfra++) {
1270 clip, pj->
clip_flag, distortion, cfra, build_undistort_sizes, build_undistort_count, 1);
1272 if (*stop ||
G.is_break) {
1277 *progress = ((
float)cfra - sfra) / (efra - sfra);
1354 *r_cfra =
queue->cfra;
1359 *
queue->do_update = 1;
1381 data->clip->colorspace_settings.name,
1385 data->clip, ibuf,
NULL, cfra,
data->build_sizes,
data->build_count,
false);
1391 data->build_undistort_sizes,
1392 data->build_undistort_count,
1404 int *build_undistort_sizes,
1405 int build_undistort_count,
1420 if (build_undistort_count) {
1431 queue.do_update = do_update;
1432 queue.progress = progress;
1436 for (
int i = 0; i < tot_thread; i++) {
1439 handle->
clip = clip;
1447 if (build_undistort_count) {
1457 if (build_undistort_count) {
1458 for (
int i = 0; i < tot_thread; i++) {
1468 static void proxy_startjob(
void *pjv,
short *stop,
short *do_update,
float *progress)
1474 int build_sizes[4], build_count = 0;
1475 int build_undistort_sizes[4], build_undistort_count = 0;
1486 build_undistort_sizes,
1487 build_undistort_count,
1496 build_undistort_sizes,
1497 build_undistort_count,
1578 ot->
name =
"Rebuild Proxy and Timecode Indices";
1579 ot->
idname =
"CLIP_OT_rebuild_proxy";
1580 ot->
description =
"Rebuild all selected proxies and timecode indices in the background";
1615 ot->
name =
"Set Clip Mode";
1628 #ifdef WITH_INPUT_NDOF
1652 const wmNDOFMotionData *ndof =
event->customdata;
1655 WM_event_ndof_pan_get(ndof, pan_vec,
true);
1658 pan_vec[2] *= -ndof->dt;
1661 sc->
xof += pan_vec[0];
1662 sc->
yof += pan_vec[1];
1672 ot->
name =
"NDOF Pan/Zoom";
1674 ot->
description =
"Use a 3D mouse device to pan/zoom the view";
1677 ot->
invoke = clip_view_ndof_invoke;
1700 switch (event->
type) {
1721 ot->
name =
"Prefetch Frames";
1723 ot->
description =
"Prefetch frames from disk for faster playback/tracking";
1761 ot->
name =
"Set Scene Frames";
1762 ot->
idname =
"CLIP_OT_set_scene_frames";
1763 ot->
description =
"Set scene's start and end frame to match clip's start frame and length";
1778 bool show_cursor =
false;
1809 ot->
name =
"Set 2D Cursor";
1829 "Cursor location in normalized clip coordinates",
1859 ot->
name =
"Toggle Lock Selection";
1860 ot->
description =
"Toggle Lock Selection option of the current clip editor";
1861 ot->
idname =
"CLIP_OT_lock_selection_toggle";
1883 "Add Marker and Move",
1884 "Add new marker and move it on movie",
1891 "CLIP_OT_add_marker_slide",
1892 "Add Marker and Slide",
1893 "Add new marker and slide it with mouse until mouse button release",
typedef float(TangentPoint)[2]
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct SpaceClip * CTX_wm_space_clip(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct MovieClip * CTX_data_edit_movieclip(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
void id_us_min(struct ID *id)
struct MovieClip * BKE_movieclip_file_add_exists(struct Main *bmain, const char *filepath)
void BKE_movieclip_reload(struct Main *bmain, struct MovieClip *clip)
int BKE_movieclip_get_duration(struct MovieClip *clip)
void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height)
void BKE_movieclip_filename_for_frame(struct MovieClip *clip, struct MovieClipUser *user, char *name)
void BKE_movieclip_clear_proxy_cache(struct MovieClip *clip)
void BKE_movieclip_build_proxy_frame_for_ibuf(struct MovieClip *clip, struct ImBuf *ibuf, struct MovieDistortion *distortion, int cfra, int *build_sizes, int build_count, bool undistorted)
void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, int cfra, int *build_sizes, int build_count, bool undistorted)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
struct MovieDistortion * BKE_tracking_distortion_new(struct MovieTracking *tracking, int calibration_width, int calibration_height)
void BKE_tracking_distortion_set_threads(struct MovieDistortion *distortion, int threads)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
File and directory operations.
int BLI_open(const char *filename, int oflag, int pmode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
size_t BLI_file_descriptor_size(int file) ATTR_WARN_UNUSED_RESULT
MINLINE int round_fl_to_int(float a)
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])
void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
void BLI_path_rel(char *file, const char *relfile) ATTR_NONNULL()
bool BLI_path_parent_dir(char *path) ATTR_NONNULL()
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
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, TaskPriority 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)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ MCLIP_PROXY_UNDISTORTED_SIZE_100
@ MCLIP_PROXY_UNDISTORTED_SIZE_75
@ MCLIP_PROXY_UNDISTORTED_SIZE_50
@ MCLIP_PROXY_UNDISTORTED_SIZE_25
@ MCLIP_PROXY_RENDER_SIZE_75
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_50
@ MCLIP_PROXY_RENDER_SIZE_25
#define FRAMENUMBER_MIN_CLAMP(cfra)
#define NDOF_PIXELS_PER_SECOND
bool ED_space_clip_poll(struct bContext *C)
bool ED_clip_view_selection(const struct bContext *C, struct ARegion *region, bool fit)
void ED_space_clip_set_clip(struct bContext *C, struct bScreen *screen, struct SpaceClip *sc, struct MovieClip *clip)
bool ED_space_clip_maskedit_poll(struct bContext *C)
void ED_space_clip_get_aspect(struct SpaceClip *sc, float *aspx, float *aspy)
void ED_clip_view_lock_state_restore_no_jump(const struct bContext *C, const ClipViewLockState *state)
void ED_space_clip_get_size(struct SpaceClip *sc, int *width, int *height)
bool ED_space_clip_view_clip_poll(struct bContext *C)
void ED_clip_mouse_pos(struct SpaceClip *sc, struct ARegion *region, const int mval[2], float co[2])
struct MovieClip * ED_space_clip_get_clip(struct SpaceClip *sc)
void ED_clip_view_lock_state_store(const struct bContext *C, ClipViewLockState *state)
void ED_area_tag_redraw(ScrArea *area)
void ED_region_tag_redraw(struct ARegion *region)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
void IMB_anim_index_rebuild(struct IndexBuildContext *context, short *stop, short *do_update, float *progress)
void IMB_close_anim_proxies(struct anim *anim)
struct IndexBuildContext * IMB_anim_index_rebuild_context(struct anim *anim, IMB_Timecode_Type tcs_in_use, IMB_Proxy_Size proxy_sizes_in_use, int quality, const bool overwrite, struct GSet *file_list)
void IMB_freeImBuf(struct ImBuf *ibuf)
void IMB_anim_index_rebuild_finish(struct IndexBuildContext *context, short stop)
struct ImBuf * IMB_ibImageFromMemory(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
Platform independent time functions.
void UI_context_active_but_prop_get_templateID(struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop)
void UI_view2d_region_to_view(const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
#define WM_FILESEL_DIRECTORY
@ WM_JOB_TYPE_CLIP_BUILD_PROXY
@ WM_JOB_TYPE_CLIP_PREFETCH
#define WM_FILESEL_RELPATH
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 struct bContext *C)
static int view_zoom_ratio_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_in(wmOperatorType *ot)
static int lock_selection_toggle_exec(bContext *C, wmOperator *UNUSED(op))
static void proxy_freejob(void *pjv)
static int open_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_ratio(wmOperatorType *ot)
struct ProxyThread ProxyThread
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 int open_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void view_pan_exit(bContext *C, wmOperator *op, bool cancel)
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)
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)
static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op))
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 do_sequence_proxy(void *pjv, int *build_sizes, int build_count, int *build_undistort_sizes, int build_undistort_count, short *stop, short *do_update, float *progress)
static void proxy_endjob(void *pjv)
static int clip_prefetch_modal(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
struct ProxyBuildJob ProxyJob
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)
void ED_operatormacros_clip(void)
static void open_init(bContext *C, wmOperator *op)
static int view_pan_exec(bContext *C, wmOperator *op)
static int view_zoom_in_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int frame_from_event(bContext *C, const wmEvent *event)
struct ViewZoomData ViewZoomData
static void proxy_task_func(TaskPool *__restrict pool, void *task_data)
static int change_frame_exec(bContext *C, wmOperator *op)
static int clip_set_scene_frames_exec(bContext *C, wmOperator *UNUSED(op))
struct ProxyQueue ProxyQueue
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)
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)
static int view_selected_exec(bContext *C, wmOperator *UNUSED(op))
void CLIP_OT_rebuild_proxy(wmOperatorType *ot)
void CLIP_OT_lock_selection_toggle(wmOperatorType *ot)
static int clip_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event)
struct ViewPanData ViewPanData
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_center_cursor_exec(bContext *C, wmOperator *UNUSED(op))
static int view_pan_modal(bContext *C, wmOperator *op, const wmEvent *event)
static int clip_prefetch_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(_event))
static void proxy_startjob(void *pjv, short *stop, short *do_update, float *progress)
static int reload_exec(bContext *C, wmOperator *UNUSED(op))
static int view_all_exec(bContext *C, wmOperator *op)
static void open_cancel(bContext *UNUSED(C), wmOperator *op)
static bool change_frame_poll(bContext *C)
static void clip_filesel(bContext *C, wmOperator *op, const char *path)
static void do_movie_proxy(void *pjv, int *UNUSED(build_sizes), int UNUSED(build_count), int *build_undistort_sizes, int build_undistort_count, short *stop, short *do_update, float *progress)
void CLIP_OT_view_pan(wmOperatorType *ot)
void CLIP_OT_view_all(wmOperatorType *ot)
static void view_zoom_init(bContext *C, wmOperator *op, const wmEvent *event)
static uchar * proxy_thread_next_frame(ProxyQueue *queue, MovieClip *clip, size_t *r_size, int *r_cfra)
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)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
ThreadQueue * queue
all scheduled work for the cpu
ListBase threads
list of all thread for every CPUDevice in cpudevices a thread exists.
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
int RNA_collection_length(PointerRNA *ptr, const char *name)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
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)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr)
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)
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)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem rna_enum_clip_editor_mode_items[]
struct MovieClipProxy proxy
struct MovieTracking tracking
struct PropertyRNA * prop
struct IndexBuildContext * index_context
struct MovieDistortion * distortion
int * build_undistort_sizes
int build_undistort_count
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
void(* cancel)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
double PIL_check_seconds_timer(void)
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)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_fileselect(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
bool WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type)
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *))
void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
void WM_operator_properties_use_cursor_init(wmOperatorType *ot)
void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, short action, short flag, short display, short sort)
wmOperatorType * WM_operatortype_append_macro(const char *idname, const char *name, const char *description, int flag)
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *timer)
wmTimer * WM_event_add_timer(wmWindowManager *wm, wmWindow *win, int event_type, double timestep)