Blender V5.0
ED_image.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_listBase.h"
12#include "DNA_space_types.h"
13
14#include "BLI_string_ref.hh"
15
16struct ARegion;
17struct ImBuf;
18struct Image;
19struct ImageUser;
20struct Main;
21struct ReportList;
22struct Scene;
23struct SpaceImage;
24struct View2D;
25struct bContext;
26struct Paint;
27struct wmOperator;
28struct wmWindowManager;
29
30/* `image_draw.cc` */
31
32float ED_space_image_zoom_level(const View2D *v2d, int grid_dimension);
34 float grid_steps_x[SI_GRID_STEPS_LEN],
35 float grid_steps_y[SI_GRID_STEPS_LEN],
36 int grid_dimension);
42float ED_space_image_increment_snap_value(int grid_dimensions,
43 const float grid_steps[SI_GRID_STEPS_LEN],
44 float zoom_factor);
45
46/* `image_edit.cc`, exported for transform. */
47
48Image *ED_space_image(const SpaceImage *sima);
49void ED_space_image_set(Main *bmain, SpaceImage *sima, Image *ima, bool automatic);
50void ED_space_image_sync(Main *bmain, Image *image, bool ignore_render_viewer);
54
59 ARegion *region,
60 const int mval[2],
61 float r_fpos[2]);
66 SpaceImage *sima, ARegion *region, const int mval[2], float r_col[3], bool *r_is_data);
67ImBuf *ED_space_image_acquire_buffer(SpaceImage *sima, void **r_lock, int tile);
72void ED_space_image_release_buffer(SpaceImage *sima, ImBuf *ibuf, void *lock);
74
75void ED_space_image_get_size(SpaceImage *sima, int *r_width, int *r_height);
76void ED_space_image_get_size_fl(SpaceImage *sima, float r_size[2]);
77void ED_space_image_get_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy);
79 const ARegion *region,
80 float *r_zoomx,
81 float *r_zoomy);
82void ED_space_image_get_uv_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy);
83
85 SpaceImage *sima,
86 ImBuf *ibuf,
87 bool use_view_settings);
88
96
97void ED_image_get_uv_aspect(Image *ima, ImageUser *iuser, float *r_aspx, float *r_aspy);
99void ED_image_mouse_pos(SpaceImage *sima, const ARegion *region, const int mval[2], float co[2]);
100void ED_image_view_center_to_point(SpaceImage *sima, float x, float y);
102 SpaceImage *sima, const ARegion *region, float x, float y, float *r_x, float *r_y);
104 const ARegion *region,
105 const float co[2],
106 float r_co[2]);
111bool ED_image_slot_cycle(Image *image, int direction);
112
113bool ED_space_image_show_render(const SpaceImage *sima);
114bool ED_space_image_show_paint(const SpaceImage *sima);
115bool ED_space_image_show_mask(const SpaceImage *sima);
116bool ED_space_image_show_uvedit(const SpaceImage *sima, Object *obedit);
117
119
124
134
145
154
164
166
170void ED_image_draw_info(Scene *scene,
171 ARegion *region,
172 bool color_manage,
173 bool use_default_view,
174 int channels,
175 int x,
176 int y,
177 const unsigned char cp[4],
178 const float fp[4],
179 const float linearcol[4]);
180
181bool ED_space_image_show_cache(const SpaceImage *sima);
183 ARegion *region,
184 const int mval[2]);
185
186bool ED_image_should_save_modified(const Main *bmain);
187int ED_image_save_all_modified_info(const Main *bmain, ReportList *reports);
188bool ED_image_save_all_modified(const bContext *C, ReportList *reports);
189
190/* `image_sequence.cc` */
191
194
201 /* Sequence parameters. */
202 int length; /* Does not include placeholders, stops at gaps in sequence. */
204 int max_framenr; /* Allows for calculating length including placeholders. */
205
206 /* UDIM tiles. */
209
210 /* Temporary data. */
211 ListBase frames; /* ImageFrame. */
212};
213
218
229 blender::StringRefNull root_path,
230 wmOperator *op,
231 bool detect_udim);
232
234void ED_paint_cursor_start(Paint *paint, bool (*poll)(bContext *C));
#define FILE_MAX
These structs are the foundation for all linked lists in the library system.
#define SI_GRID_STEPS_LEN
void ED_space_image_release_buffer(SpaceImage *sima, ImBuf *ibuf, void *lock)
int ED_image_save_all_modified_info(const Main *bmain, ReportList *reports)
bool ED_space_image_show_cache(const SpaceImage *sima)
void ED_space_image_auto_set(const bContext *C, SpaceImage *sima)
Definition image_edit.cc:95
void ED_space_image_sync(Main *bmain, Image *image, bool ignore_render_viewer)
Definition image_edit.cc:70
void ED_space_image_get_size(SpaceImage *sima, int *r_width, int *r_height)
bool ED_space_image_maskedit_visible_splines_poll(bContext *C)
bool ED_space_image_maskedit_mask_visible_splines_poll(bContext *C)
bool ED_image_tools_paint_poll(bContext *C)
int ED_space_image_get_display_channel_mask(ImBuf *ibuf)
ImBuf * ED_space_image_acquire_buffer(SpaceImage *sima, void **r_lock, int tile)
bool ED_space_image_maskedit_mask_poll(bContext *C)
bool ED_space_image_show_paint(const SpaceImage *sima)
bool ED_image_should_save_modified(const Main *bmain)
float ED_space_image_zoom_level(const View2D *v2d, int grid_dimension)
void ED_image_mouse_pos(SpaceImage *sima, const ARegion *region, const int mval[2], float co[2])
void ED_space_image_get_uv_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy)
bool ED_space_image_paint_curve(const bContext *C)
bool ED_space_image_check_show_maskedit(SpaceImage *sima, Object *obedit)
bool ED_space_image_show_render(const SpaceImage *sima)
void ED_image_point_pos(SpaceImage *sima, const ARegion *region, float x, float y, float *r_x, float *r_y)
ListBase ED_image_filesel_detect_sequences(blender::StringRefNull blendfile_path, blender::StringRefNull root_path, wmOperator *op, bool detect_udim)
void ED_space_image_paint_update(Main *bmain, wmWindowManager *wm, Scene *scene)
void ED_space_image_set(Main *bmain, SpaceImage *sima, Image *ima, bool automatic)
Definition image_edit.cc:46
void ED_image_get_uv_aspect(Image *ima, ImageUser *iuser, float *r_aspx, float *r_aspy)
bool ED_space_image_has_buffer(SpaceImage *sima)
bool ED_space_image_show_uvedit(const SpaceImage *sima, Object *obedit)
bool ED_space_image_show_mask(const SpaceImage *sima)
bool ED_space_image_maskedit_poll(bContext *C)
float ED_space_image_increment_snap_value(int grid_dimensions, const float grid_steps[SI_GRID_STEPS_LEN], float zoom_factor)
bool ED_image_slot_cycle(Image *image, int direction)
void ED_space_image_get_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy)
void ED_image_draw_info(Scene *scene, ARegion *region, bool color_manage, bool use_default_view, int channels, int x, int y, const unsigned char cp[4], const float fp[4], const float linearcol[4])
bool ED_space_image_get_position(SpaceImage *sima, ARegion *region, const int mval[2], float r_fpos[2])
void ED_space_image_scopes_update(const bContext *C, SpaceImage *sima, ImBuf *ibuf, bool use_view_settings)
void ED_space_image_get_size_fl(SpaceImage *sima, float r_size[2])
void ED_space_image_get_zoom(SpaceImage *sima, const ARegion *region, float *r_zoomx, float *r_zoomy)
void ED_space_image_set_mask(bContext *C, SpaceImage *sima, Mask *mask)
void ED_image_point_pos__reverse(SpaceImage *sima, const ARegion *region, const float co[2], float r_co[2])
bool ED_space_image_cursor_poll(bContext *C)
Image * ED_space_image(const SpaceImage *sima)
Definition image_edit.cc:40
void ED_image_view_center_to_point(SpaceImage *sima, float x, float y)
bool ED_image_save_all_modified(const bContext *C, ReportList *reports)
void ED_paint_cursor_start(Paint *paint, bool(*poll)(bContext *C))
bool ED_space_image_show_cache_and_mval_over(const SpaceImage *sima, ARegion *region, const int mval[2])
void ED_space_image_grid_steps(SpaceImage *sima, float grid_steps_x[SI_GRID_STEPS_LEN], float grid_steps_y[SI_GRID_STEPS_LEN], int grid_dimension)
bool ED_space_image_color_sample(SpaceImage *sima, ARegion *region, const int mval[2], float r_col[3], bool *r_is_data)
Mask * ED_space_image_get_mask(const SpaceImage *sima)
#define C
Definition RandGen.cpp:29
volatile int lock
const ccl_global KernelWorkTile * tile
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
ListBase frames
Definition ED_image.hh:211
ImageFrameRange * next
Definition ED_image.hh:193
ImageFrameRange * prev
Definition ED_image.hh:193
char filepath[FILE_MAX]
Definition ED_image.hh:200
ListBase udim_tiles
Definition ED_image.hh:208
ImageFrame * next
Definition ED_image.hh:215
ImageFrame * prev
Definition ED_image.hh:215