75 const float location[2],
76 const bool zoom_to_pos)
81 float oldzoom = sc->
zoom;
86 if (sc->
zoom < 0.1f || sc->
zoom > 4.0f) {
93 if ((width < 4) && (height < 4) && sc->
zoom < oldzoom) {
104 if (zoom_to_pos && location) {
105 float aspx, aspy,
w, h, dx, dy;
113 dx = ((location[0] - 0.5f) *
w - sc->
xof) * (sc->
zoom - oldzoom) / sc->
zoom;
114 dy = ((location[1] - 0.5f) * h - sc->
yof) * (sc->
zoom - oldzoom) / sc->
zoom;
129 const float location[2],
130 const bool zoom_to_pos)
141 float location[2], *mpos =
nullptr;
172 op->
customdata = pprop = MEM_new<PropertyPointerRNA>(
"OpenPropertyPointerRNA");
209 BLI_path_join(filepath,
sizeof(filepath), dir_only, file_only);
232 "Cannot read '%s': %s",
234 errno ? strerror(errno) :
RPT_(
"unsupported movie clip format"));
306 ot->name =
"Open Clip";
307 ot->description =
"Load a sequence of frames or a movie file";
308 ot->idname =
"CLIP_OT_open";
353 ot->name =
"Reload Clip";
354 ot->description =
"Reload clip";
355 ot->idname =
"CLIP_OT_reload";
371 float xof, yof, xorig, yorig;
389 if (vpd->own_cursor) {
393 vpd->x =
event->xy[0];
394 vpd->y =
event->xy[1];
413 ViewPanData *vpd =
static_cast<ViewPanData *
>(op->
customdata);
421 if (vpd->own_cursor) {
439 sc->
xof += offset[0];
440 sc->
yof += offset[1];
454 offset[0] = (
event->prev_xy[0] -
event->xy[0]) / sc->
zoom;
455 offset[1] = (
event->prev_xy[1] -
event->xy[1]) / sc->
zoom;
472 ViewPanData *vpd =
static_cast<ViewPanData *
>(op->
customdata);
475 switch (event->
type) {
478 offset[0] = (vpd->x -
event->xy[0]) / sc->
zoom;
479 offset[1] = (vpd->y -
event->xy[1]) / sc->
zoom;
511 ot->name =
"Pan View";
512 ot->idname =
"CLIP_OT_view_pan";
513 ot->description =
"Pan the view";
533 "Offset in floating-point units, 1.0 is the width and height of the image",
552 double timer_lastdraw;
569 if (vpd->own_cursor) {
579 vpd->x =
event->xy[0];
580 vpd->y =
event->xy[1];
581 vpd->zoom = sc->
zoom;
592 ViewZoomData *vpd =
static_cast<ViewZoomData *
>(op->
customdata);
595 sc->
zoom = vpd->zoom;
603 if (vpd->own_cursor) {
623 delta =
event->prev_xy[0] -
event->xy[0] +
event->prev_xy[1] -
event->xy[1];
629 factor = 1.0f + delta / 300.0f;
650 delta =
float(event->
xy[0] - vpd->x);
653 delta =
float(event->
xy[1] - vpd->y);
657 delta =
event->xy[0] - vpd->x +
event->xy[1] - vpd->y;
660 delta /=
U.pixelsize;
669 float time_step =
float(time - vpd->timer_lastdraw);
672 zfac = 1.0f + ((delta / 20.0f) * time_step);
673 vpd->timer_lastdraw = time;
674 factor = (sclip->
zoom * zfac) / vpd->zoom;
677 factor = 1.0f + delta / 300.0f;
687 ViewZoomData *vpd =
static_cast<ViewZoomData *
>(op->
customdata);
689 switch (event->
type) {
720 ot->name =
"View Zoom";
721 ot->idname =
"CLIP_OT_view_zoom";
722 ot->description =
"Zoom in/out the view";
741 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
786 ot->name =
"Zoom In";
787 ot->idname =
"CLIP_OT_view_zoom_in";
788 ot->description =
"Zoom in the view";
806 "Cursor location in screen coordinates",
843 ot->name =
"Zoom Out";
844 ot->idname =
"CLIP_OT_view_zoom_out";
845 ot->description =
"Zoom out the view";
863 "Cursor location in normalized (0.0 to 1.0) coordinates",
893 ot->name =
"View Zoom Ratio";
894 ot->idname =
"CLIP_OT_view_zoom_ratio";
895 ot->description =
"Set the zoom ratio (based on clip size)";
911 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
926 int w, h, width, height;
946 const int margin = 5;
948 zoomx =
float(width) / (
w + 2 * margin);
949 zoomy =
float(height) / (h + 2 * margin);
954 if ((
w >= width || h >= height) && (width > 0 && height > 0)) {
956 zoomy =
float(height) / h;
978 ot->name =
"Frame All";
979 ot->idname =
"CLIP_OT_view_all";
980 ot->description =
"View whole image with markers";
990 prop =
RNA_def_boolean(
ot->srna,
"fit_view",
false,
"Fit View",
"Fit frame to the viewport");
1015 ot->name =
"Center View to Cursor";
1016 ot->description =
"Center the view so that the cursor is in the middle of the view";
1017 ot->idname =
"CLIP_OT_view_center_cursor";
1047 ot->name =
"Frame Selected";
1048 ot->idname =
"CLIP_OT_view_selected";
1049 ot->description =
"View all selected elements";
1068 if (
G.is_rendering) {
1072 return space_clip !=
nullptr;
1103 float sfra = scene->
r.
sfra, efra = scene->
r.
efra, framelen = region->
winx / (efra - sfra + 1);
1105 framenr = sfra +
event->mval[0] / framelen;
1140 switch (event->
type) {
1166 ot->name =
"Change Frame";
1167 ot->idname =
"CLIP_OT_change_frame";
1168 ot->description =
"Interactively change the current frame number";
1207 int build_count = 0;
1208 const int size_flags[2][4] = {
1214 int size_nr = undistort ? 1 : 0;
1216 if (size_flag & size_flags[size_nr][0]) {
1220 if (size_flag & size_flags[size_nr][1]) {
1224 if (size_flag & size_flags[size_nr][2]) {
1228 if (size_flag & size_flags[size_nr][3]) {
1239 const int *build_undistort_sizes,
1240 int build_undistort_count,
1253 if (!build_undistort_count) {
1262 const int efra = clip->
len;
1264 if (build_undistort_count) {
1272 for (
int cfra = sfra; cfra <= efra; cfra++) {
1274 clip, pj->
clip_flag, distortion, cfra, build_undistort_sizes, build_undistort_count,
true);
1276 if (*stop ||
G.is_break) {
1281 *progress = (
float(cfra) - sfra) / (efra - sfra);
1322 uchar *mem =
nullptr;
1354 *r_cfra = queue->
cfra;
1381 data->clip->colorspace_settings.name);
1384 data->clip, ibuf,
nullptr, cfra,
data->build_sizes,
data->build_count,
false);
1390 data->build_undistort_sizes,
1391 data->build_undistort_count,
1403 int *build_undistort_sizes,
1404 int build_undistort_count,
1414 int sfra = scene->
r.
sfra, efra = scene->
r.
efra;
1419 if (build_undistort_count) {
1433 for (
int i = 0;
i < tot_thread;
i++) {
1436 handle->
clip = clip;
1444 if (build_undistort_count) {
1454 if (build_undistort_count) {
1455 for (
int i = 0;
i < tot_thread;
i++) {
1470 int build_sizes[4], build_count = 0;
1471 int build_undistort_sizes[4], build_undistort_count = 0;
1482 build_undistort_sizes,
1483 build_undistort_count,
1484 &worker_status->
stop,
1492 build_undistort_sizes,
1493 build_undistort_count,
1494 &worker_status->
stop,
1540 "Building proxies...",
1575 ot->name =
"Rebuild Proxy and Timecode Indices";
1576 ot->idname =
"CLIP_OT_rebuild_proxy";
1577 ot->description =
"Rebuild all selected proxies and timecode indices in the background";
1613 ot->name =
"Set Clip Mode";
1614 ot->description =
"Set the clip interaction mode";
1615 ot->idname =
"CLIP_OT_mode_set";
1630#ifdef WITH_INPUT_NDOF
1653 const wmNDOFMotionData &ndof = *
static_cast<wmNDOFMotionData *
>(
event->customdata);
1656 blender::float3 pan_vec = ndof.time_delta * WM_event_ndof_translation_get_for_navigation(ndof);
1660 sc->
xof += pan_vec[0];
1661 sc->
yof += pan_vec[1];
1671 ot->name =
"NDOF Pan/Zoom";
1672 ot->idname =
"CLIP_OT_view_ndof";
1673 ot->description =
"Use a 3D mouse device to pan/zoom the view";
1676 ot->invoke = clip_view_ndof_invoke;
1699 switch (event->
type) {
1725 ot->name =
"Prefetch Frames";
1726 ot->idname =
"CLIP_OT_prefetch";
1727 ot->description =
"Prefetch frames from disk for faster playback/tracking";
1747 if (
ELEM(
nullptr, scene, clip)) {
1754 scene->
r.
efra = scene->
r.
sfra + clip_length - 1;
1766 ot->name =
"Set Scene Frames";
1767 ot->idname =
"CLIP_OT_set_scene_frames";
1768 ot->description =
"Set scene's start and end frame to match clip's start frame and length";
1784 bool show_cursor =
false;
1818 ot->name =
"Set 2D Cursor";
1819 ot->description =
"Set 2D cursor location";
1820 ot->idname =
"CLIP_OT_cursor_set";
1838 "Cursor location in normalized clip coordinates",
1868 ot->name =
"Toggle Lock Selection";
1869 ot->description =
"Toggle Lock Selection option of the current clip editor";
1870 ot->idname =
"CLIP_OT_lock_selection_toggle";
1892 "Add Marker and Move",
1893 "Add new marker and move it on movie",
1900 "CLIP_OT_add_marker_slide",
1901 "Add Marker and Slide",
1902 "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_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])
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)
char * STRNCPY(char(&dst)[N], const char *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)
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 ID_BLEND_PATH_FROM_GLOBAL(_id)
#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)
ImBuf * IMB_load_image_from_memory(const unsigned char *mem, const size_t size, const int flags, const char *descr, const char *filepath=nullptr, char r_colorspace[IM_MAX_SPACE]=nullptr)
void IMB_freeImBuf(ImBuf *ibuf)
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 wmOperatorStatus change_frame_exec(bContext *C, wmOperator *op)
static wmOperatorStatus change_frame_modal(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus change_frame_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static float frame_from_event(bContext *C, const wmEvent *event)
static bool change_frame_poll(bContext *C)
BMesh const char void * data
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)
static wmOperatorStatus view_all_exec(bContext *C, wmOperator *)
void clip_view_center_to_point(SpaceClip *sc, float x, float y)
bool clip_view_has_locked_selection(const bContext *C)
static wmOperatorStatus view_zoom_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus clip_set_2d_cursor_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_in(wmOperatorType *ot)
static void proxy_freejob(void *pjv)
void CLIP_OT_view_zoom_ratio(wmOperatorType *ot)
static void sclip_zoom_set_factor_exec(bContext *C, const wmEvent *event, float factor)
static wmOperatorStatus view_selected_exec(bContext *C, wmOperator *)
void CLIP_OT_cursor_set(wmOperatorType *ot)
static wmOperatorStatus clip_prefetch_modal(bContext *C, wmOperator *, const wmEvent *event)
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 void view_pan_cancel(bContext *C, wmOperator *op)
static void view_zoom_exit(bContext *C, wmOperator *op, bool cancel)
static void proxy_startjob(void *pjv, wmJobWorkerStatus *worker_status)
static wmOperatorStatus view_zoom_out_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 wmOperatorStatus view_zoom_out_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom(wmOperatorType *ot)
static wmOperatorStatus view_zoom_ratio_exec(bContext *C, wmOperator *op)
void CLIP_OT_view_zoom_out(wmOperatorType *ot)
static wmOperatorStatus view_zoom_in_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void CLIP_OT_open(wmOperatorType *ot)
void CLIP_OT_set_scene_frames(wmOperatorType *ot)
void CLIP_OT_change_frame(wmOperatorType *ot)
static wmOperatorStatus view_zoom_in_exec(bContext *C, wmOperator *op)
static wmOperatorStatus reload_exec(bContext *C, wmOperator *)
static wmOperatorStatus change_frame_exec(bContext *C, wmOperator *op)
static void proxy_endjob(void *pjv)
static wmOperatorStatus view_pan_exec(bContext *C, wmOperator *op)
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 void clip_filesel(bContext *C, wmOperator *op, const char *dirpath)
static int frame_from_event(bContext *C, const wmEvent *event)
static wmOperatorStatus clip_rebuild_proxy_exec(bContext *C, wmOperator *)
static wmOperatorStatus view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void ED_operatormacros_clip()
static void proxy_task_func(TaskPool *__restrict pool, void *task_data)
static wmOperatorStatus change_frame_modal(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus view_all_exec(bContext *C, wmOperator *op)
void CLIP_OT_prefetch(wmOperatorType *ot)
static wmOperatorStatus clip_prefetch_invoke(bContext *C, wmOperator *op, const wmEvent *)
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 wmOperatorStatus change_frame_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus clip_set_scene_frames_exec(bContext *C, wmOperator *)
void CLIP_OT_rebuild_proxy(wmOperatorType *ot)
static wmOperatorStatus view_pan_modal(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus view_zoom_modal(bContext *C, wmOperator *op, const wmEvent *event)
void CLIP_OT_lock_selection_toggle(wmOperatorType *ot)
static wmOperatorStatus mode_set_exec(bContext *C, wmOperator *op)
static wmOperatorStatus open_exec(bContext *C, wmOperator *op)
static wmOperatorStatus lock_selection_toggle_exec(bContext *C, wmOperator *)
static bool change_frame_poll(bContext *C)
static wmOperatorStatus view_center_cursor_exec(bContext *C, wmOperator *)
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 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 wmOperatorStatus view_zoom_exec(bContext *C, wmOperator *op)
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 wmOperatorStatus open_invoke(bContext *C, wmOperator *op, const wmEvent *)
static int proxy_bitflag_to_array(int size_flag, int build_sizes[4], int undistort)
static wmOperatorStatus clip_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus open_invoke(bContext *C, wmOperator *op, const wmEvent *)
static void open_cancel(bContext *, wmOperator *op)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
MovieProxyBuilder * MOV_proxy_builder_start(MovieReader *anim, IMB_Timecode_Type tcs_in_use, int proxy_sizes_in_use, int quality, const bool overwrite, blender::Set< std::string > *processed_paths, bool build_only_on_bad_performance)
void MOV_proxy_builder_process(MovieProxyBuilder *context, bool *stop, bool *do_update, float *progress)
void MOV_close_proxies(MovieReader *anim)
void MOV_proxy_builder_finish(MovieProxyBuilder *context, const bool stop)
VecBase< float, 3 > float3
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
bool RNA_struct_system_idprops_unset(PointerRNA *ptr, const char *identifier)
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)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
std::string RNA_string_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_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 MovieReader * anim
struct MovieClipProxy proxy
struct MovieTracking tracking
MovieProxyBuilder * proxy_builder
MovieDistortion * distortion
int * build_undistort_sizes
int build_undistort_count
struct ReportList * reports
static wmOperatorStatus view_pan_exec(bContext *C, wmOperator *op)
static wmOperatorStatus view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void view_pan_cancel(bContext *, wmOperator *op)
static wmOperatorStatus view_pan_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
bool WM_cursor_modal_is_set_ok(const 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)
wmTimer * WM_event_timer_add(wmWindowManager *wm, wmWindow *win, const wmEventType event_type, const double time_step)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)