Fix T76267: Stencil texture with negative scale dissapears after

clicking Image Aspect

Calculate with positive areas here and ensure stencil_dimension stays
positive.

Maniphest Tasks: T76267

Differential Revision: https://developer.blender.org/D7821
This commit is contained in:
Philipp Oeser
2020-05-22 16:09:22 +02:00
parent ce0db0d329
commit f53ae843b3

View File

@@ -1147,24 +1147,24 @@ static int stencil_fit_image_aspect_exec(bContext *C, wmOperator *op)
aspy *= tex->yrepeat;
}
orig_area = aspx * aspy;
orig_area = fabsf(aspx * aspy);
if (do_mask) {
stencil_area = br->mask_stencil_dimension[0] * br->mask_stencil_dimension[1];
stencil_area = fabsf(br->mask_stencil_dimension[0] * br->mask_stencil_dimension[1]);
}
else {
stencil_area = br->stencil_dimension[0] * br->stencil_dimension[1];
stencil_area = fabsf(br->stencil_dimension[0] * br->stencil_dimension[1]);
}
factor = sqrtf(stencil_area / orig_area);
if (do_mask) {
br->mask_stencil_dimension[0] = factor * aspx;
br->mask_stencil_dimension[1] = factor * aspy;
br->mask_stencil_dimension[0] = fabsf(factor * aspx);
br->mask_stencil_dimension[1] = fabsf(factor * aspy);
}
else {
br->stencil_dimension[0] = factor * aspx;
br->stencil_dimension[1] = factor * aspy;
br->stencil_dimension[0] = fabsf(factor * aspx);
br->stencil_dimension[1] = fabsf(factor * aspy);
}
}