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];
       }
     }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to