@@ -253,40 +253,41 @@ class CBlitUtilities : public IBlitUtilities
253
253
SimpleWeightFunction1D ReconZA = ReconZR,
254
254
SimpleWeightFunction1D ResampZA = ResampZR>
255
255
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(),
266
267
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(),
275
276
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())
284
285
{
285
286
// Stretch and scale the resampling kernels.
286
287
// we'll need to stretch the kernel support to be relative to the output image but in the input image coordinate system
287
288
// (if support is 3 pixels, it needs to be 3 output texels, but measured in input texels)
288
289
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);
290
291
291
292
resampXR.stretchAndScale (rcp_c2.x );
292
293
resampXG.stretchAndScale (rcp_c2.x );
@@ -325,6 +326,15 @@ class CBlitUtilities : public IBlitUtilities
325
326
326
327
return result;
327
328
}
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
+ }
328
338
329
339
static inline core::vectorSIMDi32 getWindowSize (
330
340
const asset::IImage::E_TYPE inImageType,
0 commit comments