[Bf-blender-cvs] [c89e73209aa] temp-T97352-3d-texturing-seam-bleeding: Fix crash painting on byte textures.
Jeroen Bakker
noreply at git.blender.org
Wed Apr 20 13:23:57 CEST 2022
Commit: c89e73209aa175d18aeb9eee8db7d67a6e6467c0
Author: Jeroen Bakker
Date: Wed Apr 20 10:42:59 2022 +0200
Branches: temp-T97352-3d-texturing-seam-bleeding
https://developer.blender.org/rBc89e73209aa175d18aeb9eee8db7d67a6e6467c0
Fix crash painting on byte textures.
===================================================================
M source/blender/blenkernel/intern/pbvh_pixels_seams.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/pbvh_pixels_seams.cc b/source/blender/blenkernel/intern/pbvh_pixels_seams.cc
index 247c6a6c38b..d70bdd0767b 100644
--- a/source/blender/blenkernel/intern/pbvh_pixels_seams.cc
+++ b/source/blender/blenkernel/intern/pbvh_pixels_seams.cc
@@ -395,15 +395,19 @@ void BKE_pbvh_pixels_fix_seams(PBVHNode *node, Image *image, ImageUser *image_us
continue;
}
- for (SeamFix &fix : fixes.pixels) {
- int src_offset = fix.src_pixel.y * src_image_buffer->x + fix.src_pixel.x;
- int dst_offset = fix.dst_pixel.y * dst_image_buffer->x + fix.dst_pixel.x;
- if (src_image_buffer->rect_float != nullptr && dst_image_buffer->rect_float != nullptr) {
+ if (src_image_buffer->rect_float != nullptr && dst_image_buffer->rect_float != nullptr) {
+ for (SeamFix &fix : fixes.pixels) {
+ int src_offset = fix.src_pixel.y * src_image_buffer->x + fix.src_pixel.x;
+ int dst_offset = fix.dst_pixel.y * dst_image_buffer->x + fix.dst_pixel.x;
copy_v4_v4(&dst_image_buffer->rect_float[dst_offset * 4],
&src_image_buffer->rect_float[src_offset * 4]);
}
- else if (src_image_buffer->rect != nullptr && dst_image_buffer->rect != nullptr) {
- dst_image_buffer->rect_float[dst_offset] = src_image_buffer->rect_float[src_offset];
+ }
+ else if (src_image_buffer->rect != nullptr && dst_image_buffer->rect != nullptr) {
+ for (SeamFix &fix : fixes.pixels) {
+ int src_offset = fix.src_pixel.y * src_image_buffer->x + fix.src_pixel.x;
+ int dst_offset = fix.dst_pixel.y * dst_image_buffer->x + fix.dst_pixel.x;
+ dst_image_buffer->rect[dst_offset] = src_image_buffer->rect[src_offset];
}
}
More information about the Bf-blender-cvs
mailing list