[Bf-blender-cvs] [c412c38f0de] master: Fix missing code-paths in previous sequence/imbuf commits.

Jeroen Bakker noreply at git.blender.org
Thu Jan 26 15:16:17 CET 2023


Commit: c412c38f0de3fef5496637336576ca15d23ec658
Author: Jeroen Bakker
Date:   Thu Jan 26 15:15:21 2023 +0100
Branches: master
https://developer.blender.org/rBc412c38f0de3fef5496637336576ca15d23ec658

Fix missing code-paths in previous sequence/imbuf commits.

===================================================================

M	source/blender/imbuf/intern/transform.cc

===================================================================

diff --git a/source/blender/imbuf/intern/transform.cc b/source/blender/imbuf/intern/transform.cc
index 23aad5edf1d..fc4d1c3a9e3 100644
--- a/source/blender/imbuf/intern/transform.cc
+++ b/source/blender/imbuf/intern/transform.cc
@@ -474,6 +474,11 @@ class ChannelConverter {
       blend_color_interpolate_byte(
           pixel_pointer.get_pointer(), pixel_pointer.get_pointer(), sample.data(), mix_factor);
     }
+    else if constexpr (std::is_same_v<StorageType, float> && SourceNumChannels == 4 &&
+                       DestinationNumChannels == 4) {
+      blend_color_interpolate_float(
+          pixel_pointer.get_pointer(), pixel_pointer.get_pointer(), sample.data(), mix_factor);
+    }
     else {
       BLI_assert_unreachable();
     }
@@ -547,20 +552,12 @@ class ScanlineProcessor {
       xi += 1;
     }
 
-    /*
-     * Draw until we didn't draw for at least 4 pixels.
-     */
-    int num_output_pixels_skipped = 0;
-    const int num_missing_output_pixels_allowed = 4;
-    for (; xi < width && num_output_pixels_skipped < num_missing_output_pixels_allowed; xi++) {
+    for (; xi < width; xi++) {
       if (!discarder.should_discard(*user_data, uv)) {
         typename Sampler::SampleType sample;
         sampler.sample(user_data->src, uv, sample);
         channel_converter.convert_and_store(sample, output);
       }
-      else {
-        num_output_pixels_skipped += 1;
-      }
 
       uv += user_data->add_x;
       output.increase_pixel_pointer();
@@ -593,12 +590,7 @@ class ScanlineProcessor {
       xi += 1;
     }
 
-    /*
-     * Draw until we didn't draw for at least 4 pixels.
-     */
-    int num_output_pixels_skipped = 0;
-    const int num_missing_output_pixels_allowed = 4;
-    for (; xi < width && num_output_pixels_skipped < num_missing_output_pixels_allowed; xi++) {
+    for (; xi < width; xi++) {
       typename Sampler::SampleType sample;
       sample.clear();
       int num_subsamples_added = 0;
@@ -625,9 +617,6 @@ class ScanlineProcessor {
                            (user_data->subsampling.num * user_data->subsampling.num);
         channel_converter.mix_and_store(sample, output, mix_weight);
       }
-      else {
-        num_output_pixels_skipped += 1;
-      }
       uv += user_data->add_x;
       output.increase_pixel_pointer();
     }



More information about the Bf-blender-cvs mailing list