[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