10 #include <sys/types.h>
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) {
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 =
NULL;
225 "Cannot read '%s': %s",
227 errno ? strerror(errno) :
TIP_(
"unsupported movie clip format"));
299 ot->
description =
"Load a sequence of frames or a movie file";
381 vpd->
x =
event->xy[0];
382 vpd->
y =
event->xy[1];
442 offset[0] = (
event->prev_xy[0] -
event->xy[0]) / sc->
zoom;
463 switch (event->
type) {
521 "Offset in floating-point units, 1.0 is the width and height of the image",
563 vpd->
x =
event->xy[0];
564 vpd->
y =
event->xy[1];
607 delta =
event->prev_xy[0] -
event->xy[0] +
event->prev_xy[1] -
event->xy[1];
613 factor = 1.0f + delta / 300.0f;
634 delta = (
float)(event->
xy[0] - vpd->
x);
637 delta = (
float)(event->
xy[1] - vpd->
y);
641 delta =
event->xy[0] - vpd->
x +
event->xy[1] - vpd->
y;
644 delta /=
U.pixelsize;
656 zfac = 1.0f + ((delta / 20.0f) * time_step);
658 factor = (sclip->
zoom * zfac) / vpd->
zoom;
661 factor = 1.0f + delta / 300.0f;
673 switch (event->
type) {
725 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
771 ot->
idname =
"CLIP_OT_view_zoom_in";
790 "Cursor location in screen coordinates",
828 ot->
idname =
"CLIP_OT_view_zoom_out";
847 "Cursor location in normalized (0.0 to 1.0) coordinates",
877 ot->
name =
"View Zoom Ratio";
878 ot->
idname =
"CLIP_OT_view_zoom_ratio";
895 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
930 const int margin = 5;
999 ot->
name =
"Center View to Cursor";
1000 ot->
description =
"Center the view so that the cursor is in the middle of the view";
1001 ot->
idname =
"CLIP_OT_view_center_cursor";
1031 ot->
name =
"Frame Selected";
1032 ot->
idname =
"CLIP_OT_view_selected";
1052 if (
G.is_rendering) {
1056 return space_clip !=
NULL;
1089 framenr = sfra +
event->mval[0] / framelen;
1124 switch (event->
type) {
1147 ot->
name =
"Change Frame";
1148 ot->
idname =
"CLIP_OT_change_frame";
1149 ot->
description =
"Interactively change the current frame number";
1188 int build_count = 0;
1189 const int size_flags[2][4] = {
1195 int size_nr = undistort ? 1 : 0;
1197 if (size_flag & size_flags[size_nr][0]) {
1201 if (size_flag & size_flags[size_nr][1]) {
1205 if (size_flag & size_flags[size_nr][2]) {
1209 if (size_flag & size_flags[size_nr][3]) {
1218 int *
UNUSED(build_sizes),
1220 int *build_undistort_sizes,
1221 int build_undistort_count,
1234 if (!build_undistort_count) {
1243 const int efra = clip->
len;
1245 if (build_undistort_count) {
1255 for (
int cfra = sfra; cfra <= efra; cfra++) {
1257 clip, pj->
clip_flag, distortion, cfra, build_undistort_sizes, build_undistort_count, 1);
1259 if (*stop ||
G.is_break) {
1264 *progress = ((
float)cfra - sfra) / (efra - sfra);
1341 *r_cfra =
queue->cfra;
1346 *
queue->do_update = 1;
1368 data->clip->colorspace_settings.name,
1372 data->clip, ibuf,
NULL, cfra,
data->build_sizes,
data->build_count,
false);
1378 data->build_undistort_sizes,
1379 data->build_undistort_count,
1391 int *build_undistort_sizes,
1392 int build_undistort_count,
1407 if (build_undistort_count) {
1418 queue.do_update = do_update;
1419 queue.progress = progress;
1423 for (
int i = 0; i < tot_thread; i++) {
1426 handle->
clip = clip;
1434 if (build_undistort_count) {
1444 if (build_undistort_count) {
1445 for (
int i = 0; i < tot_thread; i++) {
1455 static void proxy_startjob(
void *pjv,
short *stop,
short *do_update,
float *progress)
1461 int build_sizes[4], build_count = 0;
1462 int build_undistort_sizes[4], build_undistort_count = 0;
1473 build_undistort_sizes,
1474 build_undistort_count,
1483 build_undistort_sizes,
1484 build_undistort_count,
1566 ot->
name =
"Rebuild Proxy and Timecode Indices";
1567 ot->
idname =
"CLIP_OT_rebuild_proxy";
1568 ot->
description =
"Rebuild all selected proxies and timecode indices in the background";
1604 ot->
name =
"Set Clip Mode";
1619 #ifdef WITH_INPUT_NDOF
1641 const wmNDOFMotionData *ndof =
event->customdata;
1644 WM_event_ndof_pan_get(ndof, pan_vec,
true);
1647 pan_vec[2] *= -ndof->dt;
1650 sc->
xof += pan_vec[0];
1651 sc->
yof += pan_vec[1];
1661 ot->
name =
"NDOF Pan/Zoom";
1663 ot->
description =
"Use a 3D mouse device to pan/zoom the view";
1666 ot->
invoke = clip_view_ndof_invoke;
1689 switch (event->
type) {
1710 ot->
name =
"Prefetch Frames";
1712 ot->
description =
"Prefetch frames from disk for faster playback/tracking";
1751 ot->
name =
"Set Scene Frames";
1752 ot->
idname =
"CLIP_OT_set_scene_frames";
1753 ot->
description =
"Set scene's start and end frame to match clip's start frame and length";
1769 bool show_cursor =
false;
1801 ot->
name =
"Set 2D Cursor";
1821 "Cursor location in normalized clip coordinates",
1851 ot->
name =
"Toggle Lock Selection";
1852 ot->
description =
"Toggle Lock Selection option of the current clip editor";
1853 ot->
idname =
"CLIP_OT_lock_selection_toggle";
1875 "Add Marker and Move",
1876 "Add new marker and move it on movie",
1883 "CLIP_OT_add_marker_slide",
1884 "Add Marker and Slide",
1885 "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_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
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.
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()
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_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()
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) 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, 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, 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)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
#define DNA_struct_default_get(struct_name)
@ 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 height
_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
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, bool build_only_on_bad_performance)
void IMB_anim_index_rebuild(struct IndexBuildContext *context, short *stop, short *do_update, float *progress)
void IMB_close_anim_proxies(struct anim *anim)
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()
@ 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 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 IMB_freeImBuf(ImBuf *UNUSED(ibuf))
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
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])
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)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
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)
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)
void WM_jobs_kill_type(struct wmWindowManager *wm, const 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 *))
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 *))
void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, int flag, int job_type)
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)
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)