49 *r_image_user =
nullptr;
51 switch (settings->canvas_source) {
56 *r_image = settings->canvas_image;
57 *r_image_user = &settings->image_user;
62 if (slot ==
nullptr) {
71 return *r_image !=
nullptr;
76 switch (settings->canvas_source) {
91 if (slot ==
nullptr) {
99 if (slot->
uvname ==
nullptr) {
112 std::stringstream ss;
114 ss <<
"UV_MAP:" << active_uv_map_layer_index;
119 ss <<
",SEAM_MARGIN:" << image->seam_margin;
122 tile_user.
tile = image_tile->tile_number;
127 ss <<
",TILE_" << image_tile->tile_number;
128 ss <<
"(" << image_buffer->
x <<
"," << image_buffer->
y <<
")";
CustomData interface, see also DNA_customdata_types.h.
int CustomData_get_named_layer_index(const CustomData *data, eCustomDataType type, blender::StringRef name)
int CustomData_get_active_layer_index(const CustomData *data, eCustomDataType type)
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
General operations, lookup, etc. for materials.
struct Material * BKE_object_material_get(struct Object *ob, short act)
#define LISTBASE_FOREACH(type, var, list)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC
@ PAINT_CANVAS_SOURCE_COLOR_ATTRIBUTE
@ PAINT_CANVAS_SOURCE_IMAGE
@ PAINT_CANVAS_SOURCE_MATERIAL
Contains defines and structs used throughout the imbuf module.
bool BKE_paint_canvas_image_get(PaintModeSettings *settings, Object *ob, Image **r_image, ImageUser **r_image_user)
int BKE_paint_canvas_uvmap_layer_index_get(const PaintModeSettings *settings, Object *ob)
char * BKE_paint_canvas_key_get(PaintModeSettings *settings, Object *ob)
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
static TexPaintSlot * get_active_slot(Object *ob)
struct TexPaintSlot * texpaintslot
struct ImageUser * image_user