Merge branch 'master' into blender2.8
This commit is contained in:
commit
0d69a5aa34
Notes:
blender-bot
2023-02-14 08:10:10 +01:00
Referenced by issue #57606, Simple sculpting changes in Solid ( and Wireframe ) are not reflected in LookDev or Rendered mode
|
@ -277,6 +277,7 @@ MINLINE bool compare_v4v4_relative(const float a[4], const float b[4], const flo
|
|||
|
||||
MINLINE bool compare_len_v3v3(const float a[3], const float b[3], const float limit) ATTR_WARN_UNUSED_RESULT;
|
||||
MINLINE bool compare_len_squared_v3v3(const float a[3], const float b[3], const float limit) ATTR_WARN_UNUSED_RESULT;
|
||||
MINLINE bool compare_len_squared_v4v4(const float a[4], const float b[4], const float limit) ATTR_WARN_UNUSED_RESULT;
|
||||
|
||||
MINLINE float line_point_side_v2(const float l1[2], const float l2[2], const float pt[2]) ATTR_WARN_UNUSED_RESULT;
|
||||
|
||||
|
|
|
@ -47,17 +47,25 @@
|
|||
/** \name Generic Key Hash & Comparison Functions
|
||||
* \{ */
|
||||
|
||||
|
||||
/* based python3.3's pointer hashing function */
|
||||
#if 0
|
||||
/* works but slower */
|
||||
uint BLI_ghashutil_ptrhash(const void *key)
|
||||
{
|
||||
return (uint)(intptr_t)key;
|
||||
}
|
||||
#else
|
||||
/* Based Python3.7's pointer hashing function. */
|
||||
uint BLI_ghashutil_ptrhash(const void *key)
|
||||
{
|
||||
size_t y = (size_t)key;
|
||||
/* bottom 3 or 4 bits are likely to be 0; rotate y by 4 to avoid
|
||||
* excessive hash collisions for dicts and sets */
|
||||
y = (y >> 4) | (y << (8 * sizeof(void *) - 4));
|
||||
return (uint)y;
|
||||
}
|
||||
|
||||
/* Note: Unlike Python 'sizeof(uint)' is used instead of 'sizeof(void *)',
|
||||
* Otherwise casting to 'uint' ignores the upper bits on 64bit platforms. */
|
||||
return (uint)(y >> 4) | ((uint)y << (8 * sizeof(uint) - 4));
|
||||
}
|
||||
#endif
|
||||
bool BLI_ghashutil_ptrcmp(const void *a, const void *b)
|
||||
{
|
||||
return (a != b);
|
||||
|
|
|
@ -1114,24 +1114,23 @@ MINLINE bool compare_v4v4_relative(const float v1[4], const float v2[4], const f
|
|||
|
||||
MINLINE bool compare_len_v3v3(const float v1[3], const float v2[3], const float limit)
|
||||
{
|
||||
float x, y, z;
|
||||
|
||||
x = v1[0] - v2[0];
|
||||
y = v1[1] - v2[1];
|
||||
z = v1[2] - v2[2];
|
||||
|
||||
return ((x * x + y * y + z * z) <= (limit * limit));
|
||||
float d[3];
|
||||
sub_v3_v3v3(d, v1, v2);
|
||||
return (dot_v3v3(d, d) <= (limit * limit));
|
||||
}
|
||||
|
||||
MINLINE bool compare_len_squared_v3v3(const float v1[3], const float v2[3], const float limit_sq)
|
||||
{
|
||||
float x, y, z;
|
||||
float d[3];
|
||||
sub_v3_v3v3(d, v1, v2);
|
||||
return (dot_v3v3(d, d) <= limit_sq);
|
||||
}
|
||||
|
||||
x = v1[0] - v2[0];
|
||||
y = v1[1] - v2[1];
|
||||
z = v1[2] - v2[2];
|
||||
|
||||
return ((x * x + y * y + z * z) <= limit_sq);
|
||||
MINLINE bool compare_len_squared_v4v4(const float v1[4], const float v2[4], const float limit_sq)
|
||||
{
|
||||
float d[4];
|
||||
sub_v4_v4v4(d, v1, v2);
|
||||
return (dot_v4v4(d, d) <= limit_sq);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1421,8 +1421,9 @@ static void paint_2d_fill_add_pixel_byte(
|
|||
float color_f[4];
|
||||
unsigned char *color_b = (unsigned char *)(ibuf->rect + coordinate);
|
||||
rgba_uchar_to_float(color_f, color_b);
|
||||
straight_to_premul_v4(color_f);
|
||||
|
||||
if (compare_len_squared_v3v3(color_f, color, threshold_sq)) {
|
||||
if (compare_len_squared_v4v4(color_f, color, threshold_sq)) {
|
||||
BLI_stack_push(stack, &coordinate);
|
||||
}
|
||||
BLI_BITMAP_SET(touched, coordinate, true);
|
||||
|
@ -1441,7 +1442,7 @@ static void paint_2d_fill_add_pixel_float(
|
|||
coordinate = ((size_t)y_px) * ibuf->x + x_px;
|
||||
|
||||
if (!BLI_BITMAP_TEST(touched, coordinate)) {
|
||||
if (compare_len_squared_v3v3(ibuf->rect_float + 4 * coordinate, color, threshold_sq)) {
|
||||
if (compare_len_squared_v4v4(ibuf->rect_float + 4 * coordinate, color, threshold_sq)) {
|
||||
BLI_stack_push(stack, &coordinate);
|
||||
}
|
||||
BLI_BITMAP_SET(touched, coordinate, true);
|
||||
|
@ -1548,6 +1549,7 @@ void paint_2d_bucket_fill(
|
|||
else {
|
||||
int pixel_color_b = *(ibuf->rect + coordinate);
|
||||
rgba_uchar_to_float(pixel_color, (unsigned char *)&pixel_color_b);
|
||||
straight_to_premul_v4(pixel_color);
|
||||
}
|
||||
|
||||
BLI_stack_push(stack, &coordinate);
|
||||
|
|
Loading…
Reference in New Issue