65 #include "RNA_prototypes.h"
95 SpaceImage *sima,
ARegion *region,
float zoom,
const float location[2],
const bool zoom_to_pos)
97 float oldzoom = sima->
zoom;
102 if (sima->
zoom < 0.1f || sima->
zoom > 4.0f) {
110 sima->
zoom = oldzoom;
113 sima->
zoom = oldzoom;
116 sima->
zoom = oldzoom;
120 if (zoom_to_pos && location) {
121 float aspx, aspy,
w, h;
129 sima->
xof += ((location[0] - 0.5f) *
w - sima->
xof) * (sima->
zoom - oldzoom) / sima->
zoom;
130 sima->
yof += ((location[1] - 0.5f) * h - sima->
yof) * (sima->
zoom - oldzoom) / sima->
zoom;
137 const float location[2],
138 const bool zoom_to_pos)
154 image_size[0] = image_size[0] * aspx;
155 image_size[1] = image_size[1] * aspy;
161 float size_xy[2],
size;
207 iuser = *iuser_context;
233 const bool has_buffer = (ibuf && (ibuf->
rect || ibuf->
rect_float));
258 float aspx, aspy, zoomx, zoomy,
w, h;
268 float xof = 0.0f, yof = 0.0f;
271 int x_tiles, y_tiles;
277 x_tiles = y_tiles = 1;
279 int tile_x = (
tile->tile_number - 1001) % 10;
280 int tile_y = (
tile->tile_number - 1001) / 10;
281 x_tiles =
max_ii(x_tiles, tile_x + 1);
282 y_tiles =
max_ii(y_tiles, tile_y + 1);
285 xof = 0.5f * (x_tiles - 1.0f) *
w;
286 yof = 0.5f * (y_tiles - 1.0f) * h;
296 const int margin = 5;
372 vpd->
x =
event->xy[0];
373 vpd->
y =
event->xy[1];
418 offset[0] = (
event->prev_xy[0] -
event->xy[0]) / sima->
zoom;
436 switch (event->
type) {
486 "Offset in floating-point units, 1.0 is the width and height of the image",
528 vpd->
origx =
event->xy[0];
529 vpd->
origy =
event->xy[1];
591 float delta, factor, location[2];
594 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
596 delta =
event->prev_xy[0] -
event->xy[0] +
event->prev_xy[1] -
event->xy[1];
602 factor = 1.0f + delta / 300.0f;
623 const short viewzoom,
624 const short zoom_invert,
625 const bool zoom_to_pos)
642 delta /=
U.pixelsize;
652 zfac = 1.0f + ((delta / 20.0f) * time_step);
658 factor = 1.0f + delta / 300.0f;
732 "Zoom factor, values higher than 1.0 zoom in, lower values zoom out",
742 #ifdef WITH_INPUT_NDOF
764 const wmNDOFMotionData *ndof =
event->customdata;
767 WM_event_ndof_pan_get(ndof, pan_vec,
true);
770 pan_vec[2] *= -ndof->dt;
773 sima->
xof += pan_vec[0];
774 sima->
yof += pan_vec[1];
784 ot->
name =
"NDOF Pan/Zoom";
786 ot->
description =
"Use a 3D mouse device to pan/zoom the view";
789 ot->
invoke = image_view_ndof_invoke;
875 ot->
name =
"Cursor To Center View";
877 ot->
idname =
"IMAGE_OT_view_cursor_center";
909 ot->
name =
"Center View to Cursor";
910 ot->
description =
"Center the view so that the cursor is in the middle of the view";
911 ot->
idname =
"IMAGE_OT_view_center_cursor";
942 uint objects_len = 0;
982 ot->
idname =
"IMAGE_OT_view_selected";
1018 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
1030 ot->
idname =
"IMAGE_OT_view_zoom_in";
1031 ot->
description =
"Zoom in the image (centered around 2D cursor)";
1049 "Cursor location in screen coordinates",
1077 ®ion->
v2d, event->
mval[0], event->
mval[1], &location[0], &location[1]);
1089 ot->
idname =
"IMAGE_OT_view_zoom_out";
1090 ot->
description =
"Zoom out the image (centered around 2D cursor)";
1108 "Cursor location in screen coordinates",
1128 sima->
xof = (int)sima->
xof;
1129 sima->
yof = (
int)sima->
yof;
1139 ot->
name =
"View Zoom Ratio";
1140 ot->
idname =
"IMAGE_OT_view_zoom_ratio";
1157 "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out",
1183 } sima_view_prev = {
1193 sima->
xof = sima_view_prev.xof + (sima->
xof - sima_view_prev.xof);
1194 sima->
yof = sima_view_prev.yof + (sima->
yof - sima_view_prev.yof);
1195 sima->
zoom = sima_view_prev.zoom * (sima_view_prev.zoom / sima->
zoom);
1206 ot->
name =
"Zoom to Border";
1207 ot->
description =
"Zoom in the view to the nearest item contained in the border";
1208 ot->
idname =
"IMAGE_OT_view_zoom_border";
1258 const char *relbase,
1259 bool is_relative_path,
1262 bool exists =
false;
1274 "Cannot read '%s': %s",
1276 errno ? strerror(errno) :
TIP_(
"unsupported image format"));
1282 if (is_relative_path) {
1287 if (use_multiview) {
1309 else if (range->
length > 1) {
1325 int frame_seq_len = 0;
1342 if ((ima ==
NULL) && ima_range) {
1344 frame_seq_len = range->length;
1345 frame_ofs = range->offset;
1376 iuser = &sima->
iuser;
1384 if (iuser ==
NULL) {
1388 if (bgpic->ima == ima) {
1389 iuser = &bgpic->iuser;
1407 iuser->
offset = frame_ofs - 1;
1427 const char *path =
U.textudir;
1488 return !(
STR_ELEM(prop_id,
"filepath",
"directory",
"filename"));
1514 ot->
srna,
"allow_path_tokens",
true,
"",
"Allow the path to contain substitution tokens");
1547 "use_sequence_detection",
1550 "Automatically detect animated sequences in selected images (based on file names)");
1552 "use_udim_detecting",
1555 "Detect selected UDIM files and load all matching tiles");
1643 ot->
name =
"Browse Image";
1645 "Open an image file browser, hold Shift to open the file, Alt to browse containing "
1647 ot->
idname =
"IMAGE_OT_file_browse";
1679 if (!ima || !iuser) {
1705 ot->
name =
"Match Movie Length";
1706 ot->
description =
"Set image's user's length to the one of this video";
1707 ot->
idname =
"IMAGE_OT_match_movie_length";
1784 ot->
name =
"Replace Image";
1786 ot->
description =
"Replace current image by another one from disk";
1973 return !(
STREQ(prop_id,
"filepath") ||
STREQ(prop_id,
"directory") ||
1974 STREQ(prop_id,
"filename") ||
2000 if (!save_as_render) {
2004 uiItemR(
col, &linear_settings_ptr,
"name", 0,
IFACE_(
"Color Space"), ICON_NONE);
2019 if (
G.is_rendering) {
2035 ot->
name =
"Save As Image";
2037 ot->
description =
"Save the image with another name and/or settings";
2056 "Apply render part of display transform when saving byte image");
2062 "Create a new image file without modifying the current image in blender");
2175 ot->
description =
"Save the image with current name and settings";
2199 struct MovieCacheIter *iter;
2222 if (first_ibuf ==
NULL) {
2270 ot->
name =
"Save Sequence";
2271 ot->
idname =
"IMAGE_OT_save_sequence";
2332 int num_saveable_images = 0;
2335 bool is_format_writable;
2340 num_saveable_images++;
2345 "Packed library image can't be saved: \"%s\" from \"%s\"",
2347 ima->id.lib->filepath);
2350 else if (!is_format_writable) {
2353 "Image can't be saved, use a different file format: \"%s\"",
2358 num_saveable_images++;
2362 "Multiple images can't be saved to an identical path: \"%s\"",
2372 "Image can't be saved, no valid file path: \"%s\"",
2380 return num_saveable_images;
2392 bool is_format_writable;
2398 else if (is_format_writable) {
2404 ok = ok && saved_successfully;
2417 return num_files > 0;
2429 ot->
name =
"Save All Modified";
2430 ot->
idname =
"IMAGE_OT_save_all_modified";
2471 ot->
name =
"Reload Image";
2488 #define IMA_DEF_NAME N_("Untitled")
2537 name =
DATA_(name_buffer);
2575 if (
data->pprop.prop) {
2655 static float default_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
2673 prop =
RNA_def_int(
ot->
srna,
"width", 1024, 1, INT_MAX,
"Width",
"Image width", 1, 16384);
2675 prop =
RNA_def_int(
ot->
srna,
"height", 1024, 1, INT_MAX,
"Height",
"Image height", 1, 16384);
2678 ot->
srna,
"color", 4,
NULL, 0.0f, FLT_MAX,
"Color",
"Default fill color", 0.0f, 1.0f);
2687 "Fill the image with a grid for UV map testing");
2689 ot->
srna,
"float", 0,
"32-bit Float",
"Create image with 32-bit floating-point bit depth");
2692 ot->
srna,
"use_stereo_3d", 0,
"Stereo 3D",
"Create an image with left and right views");
2722 if (!use_flip_x && !use_flip_y) {
2733 const int size_x = ibuf->
x;
2734 const int size_y = ibuf->
y;
2737 float *float_pixels = (
float *)ibuf->
rect_float;
2740 for (
int x = 0;
x < size_x;
x++) {
2741 const int source_pixel_x = use_flip_x ? size_x -
x - 1 :
x;
2742 for (
int y = 0;
y < size_y;
y++) {
2743 const int source_pixel_y = use_flip_y ? size_y -
y - 1 :
y;
2745 const float *source_pixel =
2746 &orig_float_pixels[4 * (source_pixel_x + source_pixel_y * size_x)];
2747 float *target_pixel = &float_pixels[4 * (
x +
y * size_x)];
2758 else if (ibuf->
rect) {
2759 char *char_pixels = (
char *)ibuf->
rect;
2761 for (
int x = 0;
x < size_x;
x++) {
2762 const int source_pixel_x = use_flip_x ? size_x -
x - 1 :
x;
2763 for (
int y = 0;
y < size_y;
y++) {
2764 const int source_pixel_y = use_flip_y ? size_y -
y - 1 :
y;
2766 const char *source_pixel =
2767 &orig_char_pixels[4 * (source_pixel_x + source_pixel_y * size_x)];
2768 char *target_pixel = &char_pixels[4 * (
x +
y * size_x)];
2812 ot->
srna,
"use_flip_x",
false,
"Horizontal",
"Flip the image horizontally");
2858 for (i = ((
size_t)ibuf->
x) * ibuf->
y; i > 0; i--, fp += 4) {
2860 fp[0] = 1.0f - fp[0];
2863 fp[1] = 1.0f - fp[1];
2866 fp[2] = 1.0f - fp[2];
2869 fp[3] = 1.0f - fp[3];
2877 else if (ibuf->
rect) {
2879 char *cp = (
char *)ibuf->
rect;
2880 for (i = ((
size_t)ibuf->
x) * ibuf->
y; i > 0; i--, cp += 4) {
2882 cp[0] = 255 - cp[0];
2885 cp[1] = 255 - cp[1];
2888 cp[2] = 255 - cp[2];
2891 cp[3] = 255 - cp[3];
2923 ot->
name =
"Invert Channels";
2958 const int size[2] = {ibuf->
x, ibuf->
y};
3013 ot->
name =
"Resize Image";
3076 ot->
description =
"Pack an image as embedded data into the .blend file";
3120 "AutoPack is enabled, so image will be packed again on file save");
3153 "AutoPack is enabled, so image will be packed again on file save");
3171 ot->
name =
"Unpack Image";
3172 ot->
description =
"Save an image packed in the .blend file to disk";
3216 SpaceImage *sima,
ARegion *region,
const int mval[2],
float r_col[3],
bool *r_is_data)
3237 if (uv[0] >= 0.0f && uv[1] >= 0.0f && uv[0] < 1.0f && uv[1] < 1.0f) {
3240 int x = (int)(uv[0] * ibuf->
x),
y = (int)(uv[1] * ibuf->
y);
3250 else if (ibuf->
rect) {
3269 ot->
name =
"Sample Color";
3271 ot->
description =
"Use mouse to sample a color in current image";
3306 float uv1[2], uv2[2], ofs[2];
3363 ot->
name =
"Sample Line";
3364 ot->
idname =
"IMAGE_OT_sample_line";
3365 ot->
description =
"Sample a line and show it in Scope panels";
3389 {0,
"BLACK_POINT", 0,
"Black Point",
""},
3390 {1,
"WHITE_POINT", 0,
"White Point",
""},
3395 ot->
name =
"Set Curves Point";
3396 ot->
idname =
"IMAGE_OT_curves_point_set";
3397 ot->
description =
"Set black point or white point for curves";
3410 ot->
srna,
"point", point_items, 0,
"Point",
"Set black point or white point for curves");
3454 ot->
name =
"Cycle Render Slot";
3455 ot->
idname =
"IMAGE_OT_cycle_render_slot";
3456 ot->
description =
"Cycle through all non-void render slots";
3491 ot->
name =
"Clear Render Slot";
3492 ot->
idname =
"IMAGE_OT_clear_render_slot";
3493 ot->
description =
"Clear the currently selected render slot";
3524 ot->
name =
"Add Render Slot";
3525 ot->
idname =
"IMAGE_OT_add_render_slot";
3559 ot->
name =
"Remove Render Slot";
3560 ot->
idname =
"IMAGE_OT_remove_render_slot";
3580 if (
G.is_rendering) {
3617 framenr = sfra +
event->mval[0] / framelen;
3653 switch (event->
type) {
3676 ot->
name =
"Change Frame";
3677 ot->
idname =
"IMAGE_OT_change_frame";
3678 ot->
description =
"Interactively change the current frame number";
3715 ot->
name =
"Open Cached Render";
3716 ot->
idname =
"IMAGE_OT_read_viewlayers";
3717 ot->
description =
"Read all the current scene's view layers from cache, as needed";
3795 ot->
name =
"Render Region";
3796 ot->
description =
"Set the boundaries of the render region and enable render region";
3797 ot->
idname =
"IMAGE_OT_render_border";
3831 ot->
name =
"Clear Render Region";
3832 ot->
description =
"Clear the boundaries of the render region and disable render region";
3833 ot->
idname =
"IMAGE_OT_clear_render_border";
3906 static float default_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
3908 srna,
"color", 4,
NULL, 0.0f, FLT_MAX,
"Color",
"Default fill color", 0.0f, 1.0f);
3916 "Fill the image with a grid for UV map testing");
3917 prop =
RNA_def_int(srna,
"width", 1024, 1, INT_MAX,
"Width",
"Image width", 1, 16384);
3919 prop =
RNA_def_int(srna,
"height", 1024, 1, INT_MAX,
"Height",
"Image height", 1, 16384);
3924 srna,
"float", 0,
"32-bit Float",
"Create image with 32-bit floating-point bit depth");
3925 RNA_def_boolean(srna,
"alpha", 1,
"Alpha",
"Create an image with an alpha channel");
3954 for (
int tile_number = start_tile; tile_number <= end_tile; tile_number++) {
3962 last_tile_created =
tile;
3967 if (!last_tile_created) {
3984 int next_number = 0;
3986 next_number =
tile->tile_number + 1;
3987 if (
tile->next ==
NULL ||
tile->next->tile_number > next_number) {
4043 "UDIM number of the tile",
4046 RNA_def_int(
ot->
srna,
"count", 1, 1, INT_MAX,
"Count",
"How many tiles to add", 1, 1000);
4085 ot->
name =
"Remove Tile";
4087 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(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)
void BKE_image_sort_tiles(struct Image *ima)
void BKE_image_user_file_path(const struct ImageUser *iuser, const struct Image *ima, char *path)
bool BKE_image_has_ibuf(struct Image *ima, struct ImageUser *iuser)
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)
bool BKE_image_is_multiview(const struct Image *ima)
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], bool stereo3d, bool is_data, bool tiled)
void BKE_image_partial_update_mark_full_update(struct Image *image)
Mark the whole image to be updated.
bool BKE_image_has_filepath(const struct Image *ima)
void BKE_image_packfiles(struct ReportList *reports, struct Image *ima, const char *basepath)
bool BKE_image_is_dirty_writable(struct Image *image, bool *r_is_writable)
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)
void BKE_image_mark_dirty(struct Image *image, struct ImBuf *ibuf)
bool BKE_image_has_packedfile(const struct Image *image)
#define IMA_SIGNAL_SRC_CHANGE
bool BKE_image_has_anim(struct Image *image)
void BKE_image_ensure_tile_token(char *filename)
#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)
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)
bool BKE_image_save(struct ReportList *reports, struct Main *bmain, struct Image *ima, struct ImageUser *iuser, const struct ImageSaveOptions *opts)
void BKE_image_save_options_update(struct ImageSaveOptions *opts, const struct Image *ima)
bool BKE_image_save_options_init(ImageSaveOptions *opts, struct Main *bmain, struct Scene *scene, struct Image *ima, struct ImageUser *iuser, const bool guess_path, const bool save_as_render)
void BKE_image_save_options_free(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_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_reports_clear(ReportList *reports)
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_reports_init(ReportList *reports, int flag)
void BKE_render_resolution(const struct RenderData *r, const bool use_crop, int *r_width, int *r_height)
File and directory operations.
int BLI_exists(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BLI_file_is_writable(const char *filepath) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
GSet * BLI_gset_str_new(const char *info)
bool BLI_gset_haskey(const GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_gset_insert(GSet *gs, void *key)
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 void BLI_INLINE bool BLI_listbase_is_single(const struct ListBase *lb)
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)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) 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
void BLI_split_dir_part(const char *string, char *dir, size_t dirlen)
const char * BLI_path_basename(const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bool BLI_path_is_rel(const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void BLI_path_rel(char *file, const char *relfile) ATTR_NONNULL()
const char * BLI_path_slash_rfind(const char *string) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
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_scale(rctf *rect, float scale)
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)
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
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define POINTER_AS_INT(i)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
#define ID_BLEND_PATH(_bmain, _id)
Object is a sort of wrapper for general info.
#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)
bool ED_space_image_show_uvedit(const struct SpaceImage *sima, struct Object *obedit)
struct Image * ED_space_image(const struct SpaceImage *sima)
ListBase ED_image_filesel_detect_sequences(struct Main *bmain, struct wmOperator *op, bool detect_udim)
void ED_image_view_center_to_point(struct SpaceImage *sima, float x, float y)
bool ED_space_image_show_cache_and_mval_over(const struct SpaceImage *sima, struct ARegion *region, const int mval[2])
void ED_space_image_set(struct Main *bmain, struct SpaceImage *sima, struct Image *ima, bool automatic)
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_maskedit_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)
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 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
_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
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.
@ IMB_COLORMANAGE_IS_DATA
@ IB_DISPLAY_BUFFER_INVALID
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 Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block TEX_IMAGE
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
Platform independent time functions.
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)
void uiItemS(uiLayout *layout)
@ 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)
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, bool compact)
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 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 ListBase packedfiles
struct Stereo3dFormat * stereo3d_format
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
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 save_image_op(Main *bmain, Image *ima, ImageUser *iuser, wmOperator *op, const ImageSaveOptions *opts)
static bool image_has_valid_path(Image *ima)
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)
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 void image_save_options_from_op(Main *bmain, ImageSaveOptions *opts, wmOperator *op)
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 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 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)
bool ED_space_image_get_position(SpaceImage *sima, struct ARegion *region, int mval[2], float fpos[2])
static int image_view_zoom_out_exec(bContext *C, wmOperator *op)
void IMAGE_OT_remove_render_slot(wmOperatorType *ot)
static void image_save_as_draw(bContext *UNUSED(C), wmOperator *op)
static bool image_save_as_check(bContext *C, wmOperator *op)
static void image_view_all(struct SpaceImage *sima, struct ARegion *region, struct wmOperator *op)
static bool image_from_context_has_data_poll_active_tile(bContext *C)
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_file_browse_exec(bContext *C, wmOperator *op)
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))
@ GEN_CONTEXT_PAINT_CANVAS
@ GEN_CONTEXT_PAINT_STENCIL
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 void image_open_draw(bContext *UNUSED(C), wmOperator *op)
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 void image_operator_prop_allow_tokens(wmOperatorType *ot)
static bool image_save_as_poll(bContext *C)
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_file_browse_invoke(bContext *C, wmOperator *op, const wmEvent *event)
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 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)
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 void image_new_draw(bContext *UNUSED(C), wmOperator *op)
static int image_unpack_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void image_save_as_free(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 int image_view_all_exec(bContext *C, wmOperator *op)
void IMAGE_OT_file_browse(wmOperatorType *ot)
static void image_view_pan_init(bContext *C, wmOperator *op, const wmEvent *event)
static void image_view_zoom_exit(bContext *C, wmOperator *op, bool cancel)
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)
static int image_save_invoke(bContext *C, wmOperator *op, const wmEvent *event)
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 ImageSaveData * image_save_as_init(bContext *C, wmOperator *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))
static void tile_add_draw(bContext *UNUSED(C), wmOperator *op)
void IMAGE_OT_flip(wmOperatorType *ot)
static bool image_save_all_modified_poll(bContext *C)
static void tile_fill_draw(bContext *UNUSED(C), wmOperator *op)
static bool image_open_draw_check_prop(PointerRNA *UNUSED(ptr), PropertyRNA *prop, void *UNUSED(user_data))
static bool image_should_pack_during_save_all(const Image *ima)
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)
static ImageUser image_user_from_context_and_active_tile(const bContext *C, Image *ima)
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)
bool ED_space_image_color_sample(SpaceImage *sima, ARegion *region, const int mval[2], float r_col[3], bool *r_is_data)
static bool image_file_browse_poll(bContext *C)
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 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
ccl_global const KernelWorkTile * tile
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
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])
bool active
all scheduled work for the GPU.
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
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)
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
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)
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len)
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)
void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value)
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
char name[IMB_FILENAME_SIZE]
ImageFormatData im_format
struct ImageFormatData im_format
struct PropertyRNA * prop
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_ptr(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_operator_name_call(bContext *C, const char *opstring, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
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_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)
void WM_operator_properties_border_to_rctf(struct wmOperator *op, rctf *rect)
void WM_operator_properties_gesture_box_zoom(wmOperatorType *ot)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
bool WM_operator_filesel_ensure_ext_imtype(wmOperator *op, const struct ImageFormatData *im_format)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
int WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width)
void WM_operator_properties_free(PointerRNA *ptr)
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)