UDIM: Fix tile number calculation when adding a range of image tiles
When adding a range of tiles, the operator could incorrectly calculate the end_tile. It would not account for the start_tile itself and the IMA_UDIM_MAX value was 1 too small. This is most noticeable when attempting to fill the entire supported range of tiles. Differential Revision: https://developer.blender.org/D11857
This commit is contained in:
parent
4dba206011
commit
eaa1527385
|
@ -45,7 +45,7 @@ struct StampData;
|
|||
struct anim;
|
||||
|
||||
#define IMA_MAX_SPACE 64
|
||||
#define IMA_UDIM_MAX 1999
|
||||
#define IMA_UDIM_MAX 2000
|
||||
|
||||
void BKE_images_init(void);
|
||||
void BKE_images_exit(void);
|
||||
|
|
|
@ -3922,7 +3922,7 @@ static int tile_add_exec(bContext *C, wmOperator *op)
|
|||
Image *ima = CTX_data_edit_image(C);
|
||||
|
||||
int start_tile = RNA_int_get(op->ptr, "number");
|
||||
int end_tile = start_tile + RNA_int_get(op->ptr, "count");
|
||||
int end_tile = start_tile + RNA_int_get(op->ptr, "count") - 1;
|
||||
|
||||
if (start_tile < 1001 || end_tile > IMA_UDIM_MAX) {
|
||||
BKE_report(op->reports, RPT_ERROR, "Invalid UDIM index range was specified");
|
||||
|
@ -3933,7 +3933,7 @@ static int tile_add_exec(bContext *C, wmOperator *op)
|
|||
char *label = RNA_string_get_alloc(op->ptr, "label", NULL, 0);
|
||||
|
||||
bool created_tile = false;
|
||||
for (int tile_number = start_tile; tile_number < end_tile; tile_number++) {
|
||||
for (int tile_number = start_tile; tile_number <= end_tile; tile_number++) {
|
||||
ImageTile *tile = BKE_image_add_tile(ima, tile_number, label);
|
||||
|
||||
if (tile != NULL) {
|
||||
|
@ -3949,6 +3949,7 @@ static int tile_add_exec(bContext *C, wmOperator *op)
|
|||
MEM_freeN(label);
|
||||
|
||||
if (!created_tile) {
|
||||
BKE_report(op->reports, RPT_WARNING, "No UDIM tiles were created");
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue