@@ -253,40 +253,41 @@ class CBlitUtilities : public IBlitUtilities
253253 SimpleWeightFunction1D ReconZA = ReconZR,
254254 SimpleWeightFunction1D ResampZA = ResampZR>
255255 static inline convolution_kernels_t getConvolutionKernels (
256- const core::vectorSIMDu32& inExtent,
257- const core::vectorSIMDu32& outExtent,
258- ReconXR&& reconXR = ReconXR(),
259- ResampXR&& resampXR = ResampXR(),
260- ReconXG&& reconXG = ReconXG(),
261- ResampXG&& resampXG = ResampXG(),
262- ReconXB&& reconXB = ReconXB(),
263- ResampXB&& resampXB = ResampXB(),
264- ReconXA&& reconXA = ReconXA(),
265- ResampXA&& resampXA = ResampXA(),
256+ const hlsl::uint32_t3& inExtent,
257+ const hlsl::uint32_t3& outExtent,
258+
259+ ReconXR&& reconXR = ReconXR(),
260+ ResampXR&& resampXR = ResampXR(),
261+ ReconXG&& reconXG = ReconXG(),
262+ ResampXG&& resampXG = ResampXG(),
263+ ReconXB&& reconXB = ReconXB(),
264+ ResampXB&& resampXB = ResampXB(),
265+ ReconXA&& reconXA = ReconXA(),
266+ ResampXA&& resampXA = ResampXA(),
266267
267- ReconYR&& reconYR = ReconYR(),
268- ResampYR&& resampYR = ResampYR(),
269- ReconYG&& reconYG = ReconYG(),
270- ResampYG&& resampYG = ResampYG(),
271- ReconYB&& reconYB = ReconYB(),
272- ResampYB&& resampYB = ResampYB(),
273- ReconYA&& reconYA = ReconYA(),
274- ResampYA&& resampYA = ResampYA(),
268+ ReconYR&& reconYR = ReconYR(),
269+ ResampYR&& resampYR = ResampYR(),
270+ ReconYG&& reconYG = ReconYG(),
271+ ResampYG&& resampYG = ResampYG(),
272+ ReconYB&& reconYB = ReconYB(),
273+ ResampYB&& resampYB = ResampYB(),
274+ ReconYA&& reconYA = ReconYA(),
275+ ResampYA&& resampYA = ResampYA(),
275276
276- ReconZR&& reconZR = ReconZR(),
277- ResampZR&& resampZR = ResampZR(),
278- ReconZG&& reconZG = ReconZG(),
279- ResampZG&& resampZG = ResampZG(),
280- ReconZB&& reconZB = ReconZB(),
281- ResampZB&& resampZB = ResampZB(),
282- ReconZA&& reconZA = ReconZA(),
283- ResampZA&& resampZA = ResampZA())
277+ ReconZR&& reconZR = ReconZR(),
278+ ResampZR&& resampZR = ResampZR(),
279+ ReconZG&& reconZG = ReconZG(),
280+ ResampZG&& resampZG = ResampZG(),
281+ ReconZB&& reconZB = ReconZB(),
282+ ResampZB&& resampZB = ResampZB(),
283+ ReconZA&& reconZA = ReconZA(),
284+ ResampZA&& resampZA = ResampZA())
284285 {
285286 // Stretch and scale the resampling kernels.
286287 // we'll need to stretch the kernel support to be relative to the output image but in the input image coordinate system
287288 // (if support is 3 pixels, it needs to be 3 output texels, but measured in input texels)
288289
289- const auto rcp_c2 = core::vectorSIMDf (inExtent). preciseDivision ( core::vectorSIMDf (outExtent) );
290+ const auto rcp_c2 = hlsl::float64_t3 (inExtent)/ hlsl::float64_t3 (outExtent);
290291
291292 resampXR.stretchAndScale (rcp_c2.x );
292293 resampXG.stretchAndScale (rcp_c2.x );
@@ -325,6 +326,15 @@ class CBlitUtilities : public IBlitUtilities
325326
326327 return result;
327328 }
329+ template <typename ... Args>
330+ [[deprecated]] static inline convolution_kernels_t getConvolutionKernels (const core::vectorSIMDu32& inExtent, const core::vectorSIMDu32& outExtent, Args&&... args)
331+ {
332+ return getConvolutionKernels (
333+ hlsl::uint32_t3 (inExtent[0 ],inExtent[1 ],inExtent[2 ]),
334+ hlsl::uint32_t3 (outExtent[0 ],outExtent[1 ],outExtent[2 ]),
335+ std::forward<Args>(args)...
336+ );
337+ }
328338
329339 static inline core::vectorSIMDi32 getWindowSize (
330340 const asset::IImage::E_TYPE inImageType,
0 commit comments