108 SpaceImage *sima,
ARegion *region,
float zoom,
const float location[2],
const bool zoom_to_pos)
110 float oldzoom = sima->
zoom;
115 if (sima->
zoom < 0.1f || sima->
zoom > 4.0f) {
123 sima->
zoom = oldzoom;
126 sima->
zoom = oldzoom;
129 sima->
zoom = oldzoom;
133 if (zoom_to_pos && location) {
134 float aspx, aspy,
w, h;
142 sima->
xof += ((location[0] - 0.5f) *
w - sima->
xof) * (sima->
zoom - oldzoom) / sima->
zoom;
143 sima->
yof += ((location[1] - 0.5f) * h - sima->
yof) * (sima->
zoom - oldzoom) / sima->
zoom;
150 const float location[2],
151 const bool zoom_to_pos)
167 image_size[0] = image_size[0] * aspx;
168 image_size[1] = image_size[1] * aspy;
174 float size_xy[2],
size;
225 const bool has_buffer = (ibuf && (ibuf->
rect || ibuf->
rect_float));
249 float aspx, aspy, zoomx, zoomy,
w, h;
259 float xof = 0.0f, yof = 0.0f;
262 int x_tiles, y_tiles;
268 x_tiles = y_tiles = 1;
270 int tile_x = (tile->tile_number - 1001) % 10;
271 int tile_y = (tile->tile_number - 1001) / 10;
272 x_tiles =
max_ii(x_tiles, tile_x + 1);
273 y_tiles =
max_ii(y_tiles, tile_y + 1);
276 xof = 0.5f * (x_tiles - 1.0f) *
w;
277 yof = 0.5f * (y_tiles - 1.0f) * h;
287 const int margin = 5;
395 sima->
xof += offset[0];
396 sima->
yof += offset[1];
409 offset[0] = (
event->prevx -
event->x) / sima->
zoom;
410 offset[1] = (event->
prevy - event->
y) / sima->
zoom;
427 switch (event->
type) {
431 offset[0] = (vpd->
x -
event->x) / sima->
zoom;
432 offset[1] = (vpd->
y - event->
y) / sima->
zoom;
477 "Offset in floating-point units, 1.0 is the width and height of the image",
519 vpd->
origx =
event->x;
520 vpd->
origy =
event->y;
582 float delta, factor, location[2];
585 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
587 delta =
event->prevx -
event->x +
event->prevy -
event->y;
593 factor = 1.0f + delta / 300.0f;
614 const short viewzoom,
615 const short zoom_invert,
616 const bool zoom_to_pos)
633 delta /=
U.pixelsize;
643 zfac = 1.0f + ((delta / 20.0f) * time_step);
649 factor = 1.0f + delta / 300.0f;
723 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
731 #ifdef WITH_INPUT_NDOF
755 const wmNDOFMotionData *ndof =
event->customdata;
758 WM_event_ndof_pan_get(ndof, pan_vec,
true);
761 pan_vec[2] *= -ndof->dt;
764 sima->
xof += pan_vec[0];
765 sima->
yof += pan_vec[1];
775 ot->
name =
"NDOF Pan/Zoom";
777 ot->
description =
"Use a 3D mouse device to pan/zoom the view";
780 ot->
invoke = image_view_ndof_invoke;
866 ot->
name =
"Cursor To Center View";
868 ot->
idname =
"IMAGE_OT_view_cursor_center";
900 ot->
name =
"Center View to Cursor";
901 ot->
description =
"Center the view so that the cursor is in the middle of the view";
902 ot->
idname =
"IMAGE_OT_view_center_cursor";
933 uint objects_len = 0;
973 ot->
idname =
"IMAGE_OT_view_selected";
1009 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
1021 ot->
idname =
"IMAGE_OT_view_zoom_in";
1022 ot->
description =
"Zoom in the image (centered around 2D cursor)";
1040 "Cursor location in screen coordinates",
1068 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
1080 ot->
idname =
"IMAGE_OT_view_zoom_out";
1081 ot->
description =
"Zoom out the image (centered around 2D cursor)";
1099 "Cursor location in screen coordinates",
1119 sima->
xof = (int)sima->
xof;
1120 sima->
yof = (
int)sima->
yof;
1130 ot->
name =
"View Zoom Ratio";
1131 ot->
idname =
"IMAGE_OT_view_zoom_ratio";
1148 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
1174 } sima_view_prev = {
1184 sima->
xof = sima_view_prev.xof + (sima->
xof - sima_view_prev.xof);
1185 sima->
yof = sima_view_prev.yof + (sima->
yof - sima_view_prev.yof);
1186 sima->
zoom = sima_view_prev.zoom * (sima_view_prev.zoom / sima->
zoom);
1197 ot->
name =
"Zoom to Border";
1198 ot->
description =
"Zoom in the view to the nearest item contained in the border";
1199 ot->
idname =
"IMAGE_OT_view_zoom_border";
1249 const char *relbase,
1250 bool is_relative_path,
1253 bool exists =
false;
1265 "Cannot read '%s': %s",
1267 errno ? strerror(errno) :
TIP_(
"unsupported image format"));
1273 if (is_relative_path) {
1278 if (use_multiview) {
1316 int frame_seq_len = 0;
1333 if ((ima ==
NULL) && ima_range) {
1335 frame_seq_len = range->length;
1336 frame_ofs = range->offset;
1367 iuser = &sima->
iuser;
1375 if (iuser ==
NULL) {
1379 if (bgpic->ima == ima) {
1380 iuser = &bgpic->iuser;
1398 iuser->
offset = frame_ofs - 1;
1418 const char *path =
U.textudir;
1479 return !(
STR_ELEM(prop_id,
"filepath",
"directory",
"filename"));
1533 "use_sequence_detection",
1536 "Automatically detect animated sequences in selected images (based on file names)");
1538 "use_udim_detecting",
1541 "Detect selected UDIM files and load all matching tiles");
1556 if (!ima || !iuser) {
1583 ot->
name =
"Match Movie Length";
1584 ot->
description =
"Set image's user's length to the one of this video";
1585 ot->
idname =
"IMAGE_OT_match_movie_length";
1662 ot->
name =
"Replace Image";
1664 ot->
description =
"Replace current image by another one from disk";
1738 const bool guess_path,
1739 const bool save_as_render)
1746 bool is_depth_set =
false;
1751 is_depth_set =
true;
1784 if (is_depth_set ==
false) {
1794 if (guess_path && opts->
filepath[0] == 0) {
1795 const bool is_prev_save = !
STREQ(
G.ima,
"//");
1796 if (save_as_render) {
1829 return (ibuf !=
NULL);
1998 return !(
STREQ(prop_id,
"filepath") ||
STREQ(prop_id,
"directory") ||
1999 STREQ(prop_id,
"filename") ||
2033 if (
G.is_rendering) {
2049 ot->
name =
"Save As Image";
2051 ot->
description =
"Save the image with another name and/or settings";
2069 "Apply render part of display transform when saving byte image");
2074 "Create a new image file without modifying the current image in blender");
2185 ot->
description =
"Save the image with current name and settings";
2209 struct MovieCacheIter *iter;
2211 if (image ==
NULL) {
2232 if (first_ibuf ==
NULL) {
2280 ot->
name =
"Save Sequence";
2281 ot->
idname =
"IMAGE_OT_save_sequence";
2334 int num_saveable_images = 0;
2337 bool is_format_writable;
2341 if (ima->id.lib ==
NULL) {
2342 num_saveable_images++;
2347 "Packed library image can't be saved: \"%s\" from \"%s\"",
2349 ima->id.lib->filepath);
2352 else if (!is_format_writable) {
2355 "Image can't be saved, use a different file format: \"%s\"",
2360 num_saveable_images++;
2364 "Multiple images can't be saved to an identical path: \"%s\"",
2374 "Image can't be saved, no valid file path: \"%s\"",
2382 return num_saveable_images;
2394 bool is_format_writable;
2400 else if (is_format_writable) {
2407 ok = ok && saved_successfully;
2419 return num_files > 0;
2431 ot->
name =
"Save All Modified";
2432 ot->
idname =
"IMAGE_OT_save_all_modified";
2473 ot->
name =
"Reload Image";
2490 #define IMA_DEF_NAME N_("Untitled")
2544 name =
DATA_(name_buffer);
2582 if (
data->pprop.prop) {
2661 static float default_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
2679 prop =
RNA_def_int(
ot->
srna,
"width", 1024, 1, INT_MAX,
"Width",
"Image width", 1, 16384);
2681 prop =
RNA_def_int(
ot->
srna,
"height", 1024, 1, INT_MAX,
"Height",
"Image height", 1, 16384);
2684 ot->
srna,
"color", 4,
NULL, 0.0f, FLT_MAX,
"Color",
"Default fill color", 0.0f, 1.0f);
2693 "Fill the image with a grid for UV map testing");
2695 ot->
srna,
"float", 0,
"32-bit Float",
"Create image with 32-bit floating-point bit depth");
2698 ot->
srna,
"use_stereo_3d", 0,
"Stereo 3D",
"Create an image with left and right views");
2727 if (!flip_horizontal && !flip_vertical) {
2738 const int size_x = ibuf->
x;
2739 const int size_y = ibuf->
y;
2742 float *float_pixels = (
float *)ibuf->
rect_float;
2745 for (
int x = 0;
x < size_x;
x++) {
2746 for (
int y = 0;
y < size_y;
y++) {
2747 const int source_pixel_x = flip_horizontal ? size_x -
x - 1 :
x;
2748 const int source_pixel_y = flip_vertical ? size_y -
y - 1 :
y;
2750 float *source_pixel = &orig_float_pixels[4 * (source_pixel_x + source_pixel_y * size_x)];
2751 float *target_pixel = &float_pixels[4 * (
x +
y * size_x)];
2762 else if (ibuf->
rect) {
2763 char *char_pixels = (
char *)ibuf->
rect;
2765 for (
int x = 0;
x < size_x;
x++) {
2766 for (
int y = 0;
y < size_y;
y++) {
2767 const int source_pixel_x = flip_horizontal ? size_x -
x - 1 :
x;
2768 const int source_pixel_y = flip_vertical ? size_y -
y - 1 :
y;
2770 char *source_pixel = &orig_char_pixels[4 * (source_pixel_x + source_pixel_y * size_x)];
2771 char *target_pixel = &char_pixels[4 * (
x +
y * size_x)];
2816 ot->
srna,
"use_flip_horizontal",
false,
"Horizontal",
"Flip the image horizontally");
2819 ot->
srna,
"use_flip_vertical",
false,
"Vertical",
"Flip the image vertically");
2862 for (i = ((
size_t)ibuf->
x) * ibuf->
y; i > 0; i--, fp += 4) {
2864 fp[0] = 1.0f - fp[0];
2867 fp[1] = 1.0f - fp[1];
2870 fp[2] = 1.0f - fp[2];
2873 fp[3] = 1.0f - fp[3];
2881 else if (ibuf->
rect) {
2883 char *cp = (
char *)ibuf->
rect;
2884 for (i = ((
size_t)ibuf->
x) * ibuf->
y; i > 0; i--, cp += 4) {
2886 cp[0] = 255 - cp[0];
2889 cp[1] = 255 - cp[1];
2892 cp[2] = 255 - cp[2];
2895 cp[3] = 255 - cp[3];
2928 ot->
name =
"Invert Channels";
2962 const int size[2] = {ibuf->
x, ibuf->
y};
3016 ot->
name =
"Resize Image";
3048 op->
reports,
RPT_ERROR,
"Packing movies, image sequences or tiled images not supported");
3080 ot->
description =
"Pack an image as embedded data into the .blend file";
3118 op->
reports,
RPT_ERROR,
"Unpacking movies, image sequences or tiled images not supported");
3125 "AutoPack is enabled, so image will be packed again on file save");
3152 op->
reports,
RPT_ERROR,
"Unpacking movies, image sequences or tiled images not supported");
3159 "AutoPack is enabled, so image will be packed again on file save");
3177 ot->
name =
"Unpack Image";
3178 ot->
description =
"Save an image packed in the .blend file to disk";
3221 SpaceImage *sima,
ARegion *region,
int mval[2],
float r_col[3],
bool *r_is_data)
3242 if (uv[0] >= 0.0f && uv[1] >= 0.0f && uv[0] < 1.0f && uv[1] < 1.0f) {
3245 int x = (int)(uv[0] * ibuf->
x),
y = (int)(uv[1] * ibuf->
y);
3255 else if (ibuf->
rect) {
3274 ot->
name =
"Sample Color";
3276 ot->
description =
"Use mouse to sample a color in current image";
3311 float uv1[2], uv2[2], ofs[2];
3368 ot->
name =
"Sample Line";
3369 ot->
idname =
"IMAGE_OT_sample_line";
3370 ot->
description =
"Sample a line and show it in Scope panels";
3394 {0,
"BLACK_POINT", 0,
"Black Point",
""},
3395 {1,
"WHITE_POINT", 0,
"White Point",
""},
3400 ot->
name =
"Set Curves Point";
3401 ot->
idname =
"IMAGE_OT_curves_point_set";
3402 ot->
description =
"Set black point or white point for curves";
3415 ot->
srna,
"point", point_items, 0,
"Point",
"Set black point or white point for curves");
3459 ot->
name =
"Cycle Render Slot";
3460 ot->
idname =
"IMAGE_OT_cycle_render_slot";
3461 ot->
description =
"Cycle through all non-void render slots";
3496 ot->
name =
"Clear Render Slot";
3497 ot->
idname =
"IMAGE_OT_clear_render_slot";
3498 ot->
description =
"Clear the currently selected render slot";
3529 ot->
name =
"Add Render Slot";
3530 ot->
idname =
"IMAGE_OT_add_render_slot";
3564 ot->
name =
"Remove Render Slot";
3565 ot->
idname =
"IMAGE_OT_remove_render_slot";
3585 if (
G.is_rendering) {
3620 float sfra =
SFRA, efra =
EFRA, framelen = region->
winx / (efra - sfra + 1);
3622 framenr = sfra +
event->mval[0] / framelen;
3644 const int region_bottom = rect_visible->
ymin;
3663 switch (event->
type) {
3686 ot->
name =
"Change Frame";
3687 ot->
idname =
"IMAGE_OT_change_frame";
3688 ot->
description =
"Interactively change the current frame number";
3725 ot->
name =
"Open Cached Render";
3726 ot->
idname =
"IMAGE_OT_read_viewlayers";
3727 ot->
description =
"Read all the current scene's view layers from cache, as needed";
3791 ot->
name =
"Render Region";
3792 ot->
description =
"Set the boundaries of the render region and enable render region";
3793 ot->
idname =
"IMAGE_OT_render_border";
3827 ot->
name =
"Clear Render Region";
3828 ot->
description =
"Clear the boundaries of the render region and disable render region";
3829 ot->
idname =
"IMAGE_OT_clear_render_border";
3902 static float default_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
3904 srna,
"color", 4,
NULL, 0.0f, FLT_MAX,
"Color",
"Default fill color", 0.0f, 1.0f);
3912 "Fill the image with a grid for UV map testing");
3913 prop =
RNA_def_int(srna,
"width", 1024, 1, INT_MAX,
"Width",
"Image width", 1, 16384);
3915 prop =
RNA_def_int(srna,
"height", 1024, 1, INT_MAX,
"Height",
"Image height", 1, 16384);
3920 srna,
"float", 0,
"32-bit Float",
"Create image with 32-bit floating-point bit depth");
3921 RNA_def_boolean(srna,
"alpha", 1,
"Alpha",
"Create an image with an alpha channel");
3946 bool created_tile =
false;
3947 for (
int tile_number = start_tile; tile_number < end_tile; tile_number++) {
3957 created_tile =
true;
3962 if (!created_tile) {
3976 int next_number = 0;
3978 next_number = tile->tile_number + 1;
3979 if (tile->next ==
NULL || tile->next->tile_number > next_number) {
4039 "UDIM number of the tile",
4042 RNA_def_int(
ot->
srna,
"count", 1, 1, INT_MAX,
"Count",
"How many tiles to add", 1, 1000);
4081 ot->
name =
"Remove Tile";
4083 ot->
idname =
"IMAGE_OT_tile_remove";
4144 ot->
description =
"Fill the current tile with a generated image";
typedef float(TangentPoint)[2]
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Image * CTX_data_edit_image(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg)
struct SpaceImage * CTX_wm_space_image(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
void BKE_icon_changed(const int icon_id)
int BKE_icon_id_ensure(struct ID *id)
bool BKE_image_remove_renderslot(struct Image *ima, struct ImageUser *iuser, int slot)
bool BKE_image_remove_tile(struct Image *ima, struct ImageTile *tile)
void BKE_image_release_ibuf(struct Image *ima, struct ImBuf *ibuf, void *lock)
bool BKE_image_has_filepath(struct Image *ima)
bool BKE_image_has_ibuf(struct Image *ima, struct ImageUser *iuser)
bool BKE_image_has_packedfile(struct Image *image)
struct ImBuf * BKE_image_acquire_ibuf(struct Image *ima, struct ImageUser *iuser, void **r_lock)
struct RenderSlot * BKE_image_add_renderslot(struct Image *ima, const char *name)
char BKE_imtype_valid_depths(const char imtype)
void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const struct ImBuf *imbuf)
bool BKE_image_is_multiview(struct Image *ima)
void BKE_image_packfiles(struct ReportList *reports, struct Image *ima, const char *basepath)
bool BKE_image_memorypack(struct Image *ima)
bool BKE_image_clear_renderslot(struct Image *ima, struct ImageUser *iuser, int slot)
struct Image * BKE_image_ensure_viewer(struct Main *bmain, int type, const char *name)
struct Image * BKE_image_add_generated(struct Main *bmain, unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short gen_type, const float color[4], const bool stereo3d, const bool is_data, const bool tiled)
void BKE_image_free_gputextures(struct Image *ima)
void BKE_image_mark_dirty(struct Image *image, struct ImBuf *ibuf)
#define IMA_SIGNAL_SRC_CHANGE
bool BKE_image_has_anim(struct Image *image)
#define IMA_SIGNAL_USER_NEW_IMAGE
bool BKE_image_is_dirty(struct Image *image)
#define IMA_SIGNAL_RELOAD
void BKE_image_signal(struct Main *bmain, struct Image *ima, struct ImageUser *iuser, int signal)
int BKE_image_get_tile_from_pos(struct Image *ima, const float uv[2], float r_uv[2], float r_ofs[2])
bool BKE_image_buffer_format_writable(struct ImBuf *ibuf)
void BKE_image_free_views(struct Image *image)
void BKE_image_init_imageuser(struct Image *ima, struct ImageUser *iuser)
bool BKE_image_is_dirty_writable(struct Image *image, bool *is_format_writable)
void BKE_image_free_packedfiles(struct Image *image)
bool BKE_image_fill_tile(struct Image *ima, struct ImageTile *tile, int width, int height, const float color[4], int gen_type, int planes, bool is_float)
struct ImageTile * BKE_image_add_tile(struct Image *ima, int tile_number, const char *label)
struct Image * BKE_image_load_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists)
void BKE_image_user_frame_calc(struct Image *ima, struct ImageUser *iuser, int cfra)
void BKE_imageuser_default(struct ImageUser *iuser)
struct RenderSlot * BKE_image_get_renderslot(struct Image *ima, int index)
void BKE_image_save_options_init(struct ImageSaveOptions *opts, struct Main *bmain, struct Scene *scene)
bool BKE_image_save(struct ReportList *reports, struct Main *bmain, struct Image *ima, struct ImageUser *iuser, struct ImageSaveOptions *opts)
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(view_layer, v3d, r_len)
void id_us_min(struct ID *id)
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
int BKE_packedfile_unpack_image(struct Main *bmain, struct ReportList *reports, struct Image *ima, enum ePF_FileStatus how)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reports_clear(ReportList *reports)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_reports_init(ReportList *reports, int flag)
File and directory operations.
int BLI_exists(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BLI_file_is_writable(const char *file) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
GSet * BLI_gset_str_new(const char *info)
void BLI_gset_insert(GSet *gs, void *key)
bool BLI_gset_haskey(GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void * BLI_findstring(const struct ListBase *listbase, const char *id, const int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int round_fl_to_int(float a)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE float power_of_2(float f)
void rgb_uchar_to_float(float r_col[3], const unsigned char col_ub[3])
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void sub_v2_v2(float r[2], const float a[2])
MINLINE void copy_v4_v4_char(char r[4], const char a[4])
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
bool BLI_path_extension_check_array(const char *str, const char **ext_array) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bool BLI_path_make_safe(char *path) ATTR_NONNULL(1)
bool BLI_path_is_rel(const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void BLI_split_dir_part(const char *string, char *dir, const size_t dirlen)
int BLI_path_sequence_decode(const char *string, char *head, char *tail, unsigned short *r_num_len)
void BLI_path_rel(char *file, const char *relfile) 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 float BLI_rctf_cent_y(const struct rctf *rct)
BLI_INLINE float BLI_rctf_cent_x(const struct rctf *rct)
void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
void BLI_rctf_scale(rctf *rect, const float scale)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
#define STR_CONCAT(dst, len, suffix)
#define POINTER_AS_INT(i)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_COPY_ON_WRITE
#define ID_BLEND_PATH(_bmain, _id)
Object is a sort of wrapper for general info.
#define R_IMF_PLANES_RGBA
#define FRAMENUMBER_MIN_CLAMP(cfra)
#define NDOF_PIXELS_PER_SECOND
void ED_space_image_release_buffer(struct SpaceImage *sima, struct ImBuf *ibuf, void *lock)
bool ED_space_image_check_show_maskedit(struct SpaceImage *sima, struct Object *obedit)
bool ED_space_image_has_buffer(struct SpaceImage *sima)
struct Image * ED_space_image(struct SpaceImage *sima)
void ED_image_view_center_to_point(struct SpaceImage *sima, float x, float y)
ListBase ED_image_filesel_detect_sequences(struct Main *bmain, struct wmOperator *op, const bool detect_udim)
void ED_space_image_set(struct Main *bmain, struct SpaceImage *sima, struct Object *obedit, struct Image *ima, bool automatic)
bool ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit)
bool ED_space_image_show_cache(struct SpaceImage *sima)
bool ED_image_slot_cycle(struct Image *image, int direction)
void ED_space_image_get_size(struct SpaceImage *sima, int *r_width, int *r_height)
void ED_space_image_get_aspect(struct SpaceImage *sima, float *r_aspx, float *r_aspy)
struct ImBuf * ED_space_image_acquire_buffer(struct SpaceImage *sima, void **r_lock, int tile)
bool ED_space_image_cursor_poll(struct bContext *C)
bool ED_mask_selected_minmax(const struct bContext *C, float min[2], float max[2], bool handles_as_control_point)
void ED_imapaint_clear_partial_redraw(void)
void ED_image_undo_push_end(void)
void ED_image_undo_push_begin_with_image(const char *name, struct Image *image, struct ImBuf *ibuf, struct ImageUser *iuser)
void ED_preview_kill_jobs(struct wmWindowManager *wm, struct Main *bmain)
void ED_area_tag_redraw(ScrArea *area)
void ED_region_tag_redraw(struct ARegion *region)
bool ED_operator_uvedit(struct bContext *C)
bool ED_operator_mask(struct bContext *C)
const rcti * ED_region_visible_rect(ARegion *region)
void unpack_menu(struct bContext *C, const char *opname, const char *id_name, const char *abs_name, const char *folder, struct PackedFile *pf)
int ED_imbuf_sample_invoke(struct bContext *C, struct wmOperator *op, const struct wmEvent *event)
bool ED_imbuf_sample_poll(struct bContext *C)
void ED_imbuf_sample_cancel(struct bContext *C, struct wmOperator *op)
int ED_imbuf_sample_modal(struct bContext *C, struct wmOperator *op, const struct wmEvent *event)
bool ED_uvedit_minmax_multi(const struct Scene *scene, struct Object **objects_edit, uint objects_len, float r_min[2], float r_max[2])
_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 GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_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
_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 y
void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], struct ColorSpace *colorspace)
bool IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
void IMB_rect_from_float(struct ImBuf *ibuf)
bool IMB_saveiff(struct ImBuf *ibuf, const char *filepath, int flags)
int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc)
Contains defines and structs used throughout the imbuf module.
@ IB_DISPLAY_BUFFER_INVALID
@ IMB_COLORMANAGE_IS_DATA
const char * imb_ext_movie[]
void IMB_moviecacheIter_free(struct MovieCacheIter *iter)
struct MovieCacheIter * IMB_moviecacheIter_new(struct MovieCache *cache)
bool IMB_moviecacheIter_done(struct MovieCacheIter *iter)
void IMB_moviecacheIter_step(struct MovieCacheIter *iter)
struct ImBuf * IMB_moviecacheIter_getImBuf(struct MovieCacheIter *iter)
Read Guarded memory(de)allocation.
Group RGB to Bright Vector Camera CLAMP
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume TEX_IMAGE
Platform independent time functions.
StructRNA RNA_ImageFormatSettings
eAutoPropButsReturn uiDefAutoButsRNA(uiLayout *layout, struct PointerRNA *ptr, bool(*check_prop)(struct PointerRNA *ptr, struct PropertyRNA *prop, void *user_data), void *user_data, struct PropertyRNA *prop_activate_init, eButLabelAlign label_align, const bool compact)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void uiItemL(uiLayout *layout, const char *name, int icon)
void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, bool color_management)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
@ UI_BUT_LABEL_ALIGN_NONE
void UI_context_active_but_prop_get_templateID(struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
void uiTemplateImageFormatViews(uiLayout *layout, struct PointerRNA *imfptr, struct PointerRNA *ptr)
void UI_view2d_region_to_view_rctf(const struct View2D *v2d, const struct rctf *rect_src, struct rctf *rect_dst) ATTR_NONNULL()
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
#define WM_FILESEL_SHOW_PROPS
#define WM_FILESEL_RELPATH
#define WM_FILESEL_FILEPATH
#define ND_RENDER_OPTIONS
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
struct MovieCache * cache
struct ListBase packedfiles
struct Stereo3dFormat * stereo3d_format
static CCL_NAMESPACE_BEGIN const double alpha
RenderData * RE_engine_get_render_data(Render *re)
static int image_save_as_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void IMAGE_OT_view_cursor_center(wmOperatorType *ot)
static bool tile_remove_poll(bContext *C)
void IMAGE_OT_change_frame(wmOperatorType *ot)
int ED_image_save_all_modified_info(const Main *bmain, ReportList *reports)
static void image_filesel(bContext *C, wmOperator *op, const char *path)
void IMAGE_OT_save_sequence(wmOperatorType *ot)
static bool image_has_valid_path(Image *ima)
static void image_new_draw(bContext *C, wmOperator *op)
static void image_save_options_to_op(ImageSaveOptions *opts, wmOperator *op)
void IMAGE_OT_view_zoom(wmOperatorType *ot)
static int tile_fill_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool image_should_be_saved(Image *ima, bool *is_format_writable)
static void tile_fill_draw(bContext *C, wmOperator *op)
static bool image_from_context_has_data_poll_no_image_user(bContext *C)
void IMAGE_OT_cycle_render_slot(wmOperatorType *ot)
static int image_scale_exec(bContext *C, wmOperator *op)
void IMAGE_OT_match_movie_length(wmOperatorType *ot)
static int image_open_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void IMAGE_OT_save_all_modified(wmOperatorType *ot)
void IMAGE_OT_save_as(wmOperatorType *ot)
static int image_sample_line_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool image_view_selected_poll(bContext *C)
void IMAGE_OT_sample(wmOperatorType *ot)
static int image_new_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int image_save_sequence_exec(bContext *C, wmOperator *op)
static bool image_save_as_check(bContext *UNUSED(C), wmOperator *op)
@ GEN_CONTEXT_PAINT_CANVAS
@ GEN_CONTEXT_PAINT_STENCIL
static void sima_zoom_set_factor(SpaceImage *sima, ARegion *region, float zoomfac, const float location[2], const bool zoom_to_pos)
static int change_frame_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void image_view_pan_exit(bContext *C, wmOperator *op, bool cancel)
static int image_view_zoom_in_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_image_should_save_modified(const Main *bmain)
static void image_view_zoom_cancel(bContext *C, wmOperator *op)
static bool save_image_op(Main *bmain, Image *ima, ImageUser *iuser, wmOperator *op, ImageSaveOptions *opts)
static void def_fill_tile(StructOrFunctionRNA *srna)
static Image * image_from_context(const bContext *C)
void IMAGE_OT_tile_fill(wmOperatorType *ot)
static bool tile_add_poll(bContext *C)
static int image_view_zoom_out_exec(bContext *C, wmOperator *op)
void IMAGE_OT_remove_render_slot(wmOperatorType *ot)
static void image_view_all(struct SpaceImage *sima, struct ARegion *region, struct wmOperator *op)
static bool do_fill_tile(PointerRNA *ptr, Image *ima, ImageTile *tile)
static bool image_save_as_draw_check_prop(PointerRNA *ptr, PropertyRNA *prop, void *UNUSED(user_data))
static int image_view_zoom_exec(bContext *C, wmOperator *op)
void IMAGE_OT_view_zoom_border(wmOperatorType *ot)
static int image_sample_line_exec(bContext *C, wmOperator *op)
static int image_view_zoom_in_exec(bContext *C, wmOperator *op)
static int image_replace_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int tile_remove_exec(bContext *C, wmOperator *UNUSED(op))
static int image_open_exec(bContext *C, wmOperator *op)
static bool image_from_context_has_data_poll(bContext *C)
static bool tile_fill_poll(bContext *C)
static void image_save_as_cancel(bContext *UNUSED(C), wmOperator *op)
static int image_match_len_exec(bContext *C, wmOperator *UNUSED(op))
void IMAGE_OT_reload(wmOperatorType *ot)
static int image_save_as_exec(bContext *C, wmOperator *op)
void IMAGE_OT_unpack(wmOperatorType *ot)
void IMAGE_OT_view_selected(wmOperatorType *ot)
void IMAGE_OT_tile_add(wmOperatorType *ot)
static char imtype_best_depth(ImBuf *ibuf, const char imtype)
void IMAGE_OT_pack(wmOperatorType *ot)
void IMAGE_OT_open(wmOperatorType *ot)
static int image_add_render_slot_exec(bContext *C, wmOperator *UNUSED(op))
void IMAGE_OT_read_viewlayers(wmOperatorType *ot)
static bool image_save_as_poll(bContext *C)
static int image_save_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int image_clear_render_slot_exec(bContext *C, wmOperator *UNUSED(op))
void IMAGE_OT_invert(wmOperatorType *ot)
void IMAGE_OT_resize(wmOperatorType *ot)
void IMAGE_OT_clear_render_slot(wmOperatorType *ot)
static int image_view_zoom_ratio_exec(bContext *C, wmOperator *op)
void IMAGE_OT_view_zoom_in(wmOperatorType *ot)
void IMAGE_OT_view_zoom_out(wmOperatorType *ot)
static int image_cycle_render_slot_exec(bContext *C, wmOperator *op)
void IMAGE_OT_view_all(wmOperatorType *ot)
void IMAGE_OT_render_border(wmOperatorType *ot)
void IMAGE_OT_view_pan(wmOperatorType *ot)
static void image_open_cancel(bContext *UNUSED(C), wmOperator *op)
static int image_invert_exec(bContext *C, wmOperator *op)
static int frame_from_event(bContext *C, const wmEvent *event)
struct ImageNewData ImageNewData
struct ViewZoomData ViewZoomData
static int image_save_options_init(Main *bmain, ImageSaveOptions *opts, Image *ima, ImageUser *iuser, const bool guess_path, const bool save_as_render)
static void draw_fill_tile(PointerRNA *ptr, uiLayout *layout)
static int image_reload_exec(bContext *C, wmOperator *UNUSED(op))
static int image_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
struct ImageSaveData ImageSaveData
static int image_view_zoom_out_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int image_view_zoom_border_exec(bContext *C, wmOperator *op)
static ImageNewData * image_new_init(bContext *C, wmOperator *op)
bool ED_space_image_get_position(SpaceImage *sima, struct ARegion *ar, int mval[2], float fpos[2])
static Image * image_open_single(Main *bmain, wmOperator *op, ImageFrameRange *range, const char *relbase, bool is_relative_path, bool use_multiview)
static void image_view_zoom_init(bContext *C, wmOperator *op, const wmEvent *event)
static bool image_not_packed_poll(bContext *C)
static int image_unpack_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void image_save_as_free(wmOperator *op)
static void image_open_draw(bContext *C, wmOperator *op)
static int change_frame_exec(bContext *C, wmOperator *op)
static bool image_file_format_writable(Image *ima, ImageUser *iuser)
static bool image_should_be_saved_when_modified(Image *ima)
void IMAGE_OT_save(wmOperatorType *ot)
static void image_save_as_draw(bContext *C, wmOperator *op)
static int image_view_all_exec(bContext *C, wmOperator *op)
static void image_view_pan_init(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_space_image_color_sample(SpaceImage *sima, ARegion *region, int mval[2], float r_col[3], bool *r_is_data)
static void image_view_zoom_exit(bContext *C, wmOperator *op, bool cancel)
static void image_save_options_from_op(Main *bmain, ImageSaveOptions *opts, wmOperator *op, ImageFormatData *imf)
static int tile_fill_exec(bContext *C, wmOperator *op)
static bool image_cycle_render_slot_poll(bContext *C)
static int image_view_pan_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void image_new_cancel(bContext *UNUSED(C), wmOperator *op)
void IMAGE_OT_add_render_slot(wmOperatorType *ot)
void IMAGE_OT_tile_remove(wmOperatorType *ot)
static int render_border_exec(bContext *C, wmOperator *op)
struct ViewPanData ViewPanData
static void image_open_init(bContext *C, wmOperator *op)
static void tile_fill_init(PointerRNA *ptr, Image *ima, ImageTile *tile)
static int image_view_pan_exec(bContext *C, wmOperator *op)
static int image_save_exec(bContext *C, wmOperator *op)
static int image_scale_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int change_frame_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool space_image_main_region_poll(bContext *C)
static int view_center_cursor_exec(bContext *C, wmOperator *UNUSED(op))
static int image_view_pan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int clear_render_border_exec(bContext *C, wmOperator *UNUSED(op))
static int tile_add_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void IMAGE_OT_flip(wmOperatorType *ot)
static bool image_save_all_modified_poll(bContext *C)
static bool image_open_draw_check_prop(PointerRNA *UNUSED(ptr), PropertyRNA *prop, void *UNUSED(user_data))
void IMAGE_OT_sample_line(wmOperatorType *ot)
void IMAGE_OT_replace(wmOperatorType *ot)
static void sima_zoom_set_from_bounds(SpaceImage *sima, ARegion *region, const rctf *bounds)
static int image_read_viewlayers_exec(bContext *C, wmOperator *UNUSED(op))
static int image_new_exec(bContext *C, wmOperator *op)
static bool change_frame_poll(bContext *C)
struct ImageOpenData ImageOpenData
static bool image_save_poll(bContext *C)
static void image_view_pan_cancel(bContext *C, wmOperator *op)
static void sima_zoom_set(SpaceImage *sima, ARegion *region, float zoom, const float location[2], const bool zoom_to_pos)
static int image_unpack_exec(bContext *C, wmOperator *op)
static int image_view_zoom_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int image_replace_exec(bContext *C, wmOperator *op)
void IMAGE_OT_view_center_cursor(wmOperatorType *ot)
bool ED_image_save_all_modified(const bContext *C, ReportList *reports)
void IMAGE_OT_view_zoom_ratio(wmOperatorType *ot)
static int image_save_all_modified_exec(bContext *C, wmOperator *op)
static int image_pack_exec(bContext *C, wmOperator *op)
void IMAGE_OT_new(wmOperatorType *ot)
static int image_view_zoom_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void change_frame_apply(bContext *C, wmOperator *op)
static int view_cursor_center_exec(bContext *C, wmOperator *op)
static void image_new_free(wmOperator *op)
void IMAGE_OT_clear_render_border(wmOperatorType *ot)
static bool space_image_main_area_not_uv_brush_poll(bContext *C)
static int tile_add_exec(bContext *C, wmOperator *op)
static bool image_pack_test(bContext *C, wmOperator *op)
void IMAGE_OT_curves_point_set(wmOperatorType *ot)
static void tile_add_draw(bContext *C, wmOperator *op)
static ImageUser * image_user_from_context(const bContext *C)
static int image_flip_exec(bContext *C, wmOperator *op)
static void image_zoom_apply(ViewZoomData *vpd, wmOperator *op, const int x, const int y, const short viewzoom, const short zoom_invert, const bool zoom_to_pos)
static int image_remove_render_slot_exec(bContext *C, wmOperator *UNUSED(op))
IconTextureDrawCall border
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
Render * RE_GetSceneRender(const Scene *scene)
bool RE_ReadRenderResult(Scene *scene, Scene *scenode)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
const char * RNA_property_identifier(const PropertyRNA *prop)
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)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
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)
void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values)
void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
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)
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen)
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)
PropertyRNA * RNA_def_int_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const int *default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_color(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)
void RNA_def_property_subtype(PropertyRNA *prop, PropertySubType subtype)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_float_array_default(PropertyRNA *prop, const float *array)
const EnumPropertyItem rna_enum_image_generated_type_items[]
const EnumPropertyItem rna_enum_unpack_method_items[]
struct ListBase bg_images
struct ImBuf * mipmap[IMB_MIPMAP_LEVELS]
struct ColorSpace * rect_colorspace
ImbFormatOptions foptions
char name[IMB_FILENAME_SIZE]
ImageFormatData im_format
ImageFormatData im_format
struct ImageFormatData im_format
struct PropertyRNA * prop
struct ImageFormatData im_format
struct RenderResult * render
struct ToolSettings * toolsettings
ColorManagedViewSettings view_settings
ColorManagedDisplaySettings display_settings
struct Histogram sample_line_hist
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 *)
void(* ui)(struct bContext *, struct wmOperator *)
bool(* check)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
double PIL_check_seconds_timer(void)
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
void WM_cursor_wait(bool val)
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)
int WM_operator_name_call(bContext *C, const char *opstring, short context, PointerRNA *properties)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
int WM_gesture_straightline_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_straightline_cancel(bContext *C, wmOperator *op)
int WM_gesture_straightline_modal(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operator_properties_gesture_straightline(wmOperatorType *ot, int cursor)
void WM_operator_properties_border(wmOperatorType *ot)
void WM_operator_properties_use_cursor_init(wmOperatorType *ot)
void WM_operator_properties_border_to_rctf(struct wmOperator *op, rctf *rect)
void WM_operator_properties_gesture_box_zoom(wmOperatorType *ot)
void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, short action, short flag, short display, short sort)
bool WM_operator_filesel_ensure_ext_imtype(wmOperator *op, const struct ImageFormatData *im_format)
int WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width)
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)