Commit: a27bc7c372c9f1b59f3940f820b82822e7bc2f60 Author: Jeroen Bakker Date: Mon Dec 13 08:21:41 2021 +0100 Branches: temp-gpu-image-engine https://developer.blender.org/rBa27bc7c372c9f1b59f3940f820b82822e7bc2f60
Fix crash in sequencer tests. =================================================================== M source/blender/imbuf/intern/transform.cc =================================================================== diff --git a/source/blender/imbuf/intern/transform.cc b/source/blender/imbuf/intern/transform.cc index a0b39cd5b7c..814e21e730c 100644 --- a/source/blender/imbuf/intern/transform.cc +++ b/source/blender/imbuf/intern/transform.cc @@ -162,7 +162,9 @@ class TexelPointer { pointer = image_buffer->rect_float + offset; } else if constexpr (std::is_same_v<ImBufStorageType, unsigned char>) { - pointer = image_buffer->rect + offset; + pointer = const_cast<unsigned char *>( + static_cast<const unsigned char *>(static_cast<const void *>(image_buffer->rect)) + + offset); } else { pointer = nullptr; @@ -316,7 +318,7 @@ template<typename Processor> void transform_scanline_function(void *custom_data, processor.process(user_data, scanline); } -template<InterpolationColorFunction InterpolationFunction> +template<InterpolationColorFunction InterpolationFunction, typename StorageType> ScanlineThreadFunc get_scanline_function(const eIMBTransformMode mode) { @@ -324,17 +326,17 @@ ScanlineThreadFunc get_scanline_function(const eIMBTransformMode mode) case IMB_TRANSFORM_MODE_REGULAR: return transform_scanline_function<ScanlineProcessor<NoDiscard, InterpolationFunction, - TexelPointer<float, 4>, + TexelPointer<StorageType, 4>, PassThroughUV>>; case IMB_TRANSFORM_MODE_CROP_SRC: return transform_scanline_function<ScanlineProcessor<CropSource, InterpolationFunction, - TexelPointer<float, 4>, + TexelPointer<StorageType, 4>, PassThroughUV>>; case IMB_TRANSFORM_MODE_WRAP_REPEAT: return transform_scanline_function<ScanlineProcessor<NoDiscard, InterpolationFunction, - TexelPointer<float, 4>, + TexelPointer<StorageType, 4>, WrapRepeatUV>>; } @@ -351,13 +353,13 @@ static void transform(TransformUserData *user_data, const eIMBTransformMode mode constexpr InterpolationColorFunction interpolation_function = Filter == IMB_FILTER_NEAREST ? nearest_interpolation_color_fl : bilinear_interpolation_color_fl; - scanline_func = get_scanline_function<interpolation_function>(mode); + scanline_func = get_scanline_function<interpolation_function, float>(mode); } else if (user_data->dst->rect) { constexpr InterpolationColorFunction interpolation_function = Filter == IMB_FILTER_NEAREST ? nearest_interpolation_color_char : bilinear_interpolation_color_char; - scanline_func = get_scanline_function<interpolation_function>(mode); + scanline_func = get_scanline_function<interpolation_function, unsigned char>(mode); } if (scanline_func != nullptr) { _______________________________________________ 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