Merge branch 'blender-v2.90-release'

This commit is contained in:
Hans Goudey
2020-08-03 18:18:02 -04:00
2 changed files with 21 additions and 24 deletions

View File

@@ -40,7 +40,7 @@ SessionUUID BLI_session_uuid_generate(void)
if (!BLI_session_uuid_is_generated(&result)) {
/* Happens when the UUID overflows.
*
* Just request the UUID once again, hoping that there are no a lot of high-priority threads
* Just request the UUID once again, hoping that there are not a lot of high-priority threads
* which will overflow the counter once again between the previous call and this one.
*
* NOTE: It is possible to have collisions after such overflow. */

View File

@@ -7155,31 +7155,9 @@ static void set_profile_spacing(BevelParams *bp, ProfileSpacing *pro_spacing, bo
return;
}
int seg_2 = power_of_2_max_i(bp->seg);
/* Sample the input number of segments. */
pro_spacing->xvals = (double *)BLI_memarena_alloc(bp->mem_arena, sizeof(double) * (seg + 1));
pro_spacing->yvals = (double *)BLI_memarena_alloc(bp->mem_arena, sizeof(double) * (seg + 1));
if (custom) {
/* Make sure the curve profile's sample table is full. */
if (bp->custom_profile->segments_len != seg || !bp->custom_profile->segments) {
BKE_curveprofile_init((CurveProfile *)bp->custom_profile, (short)seg);
}
/* Copy segment locations into the profile spacing struct. */
for (int i = 0; i < seg + 1; i++) {
pro_spacing->xvals[i] = (double)bp->custom_profile->segments[i].y;
pro_spacing->yvals[i] = (double)bp->custom_profile->segments[i].x;
}
}
else {
find_even_superellipse_chords(seg, bp->pro_super_r, pro_spacing->xvals, pro_spacing->yvals);
}
int seg_2 = max_ii(power_of_2_max_i(bp->seg), 4);
/* Sample the seg_2 segments used during vertex mesh subdivision. */
if (seg_2 == 2) {
seg_2 = 4;
}
bp->pro_spacing.seg_2 = seg_2;
if (seg_2 == seg) {
pro_spacing->xvals_2 = pro_spacing->xvals;
@@ -7205,6 +7183,25 @@ static void set_profile_spacing(BevelParams *bp, ProfileSpacing *pro_spacing, bo
seg_2, bp->pro_super_r, pro_spacing->xvals_2, pro_spacing->yvals_2);
}
}
/* Sample the input number of segments. */
pro_spacing->xvals = (double *)BLI_memarena_alloc(bp->mem_arena, sizeof(double) * (seg + 1));
pro_spacing->yvals = (double *)BLI_memarena_alloc(bp->mem_arena, sizeof(double) * (seg + 1));
if (custom) {
/* Make sure the curve profile's sample table is full. */
if (bp->custom_profile->segments_len != seg || !bp->custom_profile->segments) {
BKE_curveprofile_init((CurveProfile *)bp->custom_profile, (short)seg);
}
/* Copy segment locations into the profile spacing struct. */
for (int i = 0; i < seg + 1; i++) {
pro_spacing->xvals[i] = (double)bp->custom_profile->segments[i].y;
pro_spacing->yvals[i] = (double)bp->custom_profile->segments[i].x;
}
}
else {
find_even_superellipse_chords(seg, bp->pro_super_r, pro_spacing->xvals, pro_spacing->yvals);
}
}
/**