@@ -229,24 +229,31 @@ HRESULT DirectX::StandardSwizzle(
229
229
return E_FAIL;
230
230
}
231
231
232
+ const auto dstImage = result.GetImage (0 , 0 , 0 );
233
+ if (!dstImage)
234
+ {
235
+ result.Release ();
236
+ return E_POINTER;
237
+ }
238
+
232
239
if (toSwizzle)
233
240
{
234
241
switch (bytesPerPixel)
235
242
{
236
243
case 1 :
237
- hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_8, 1 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
244
+ hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_8, 1 >(srcImage, *dstImage , false );
238
245
break ;
239
246
case 2 :
240
- hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_16, 2 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
247
+ hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_16, 2 >(srcImage, *dstImage , false );
241
248
break ;
242
249
case 8 :
243
- hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_64, 8 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , isCompressed);
250
+ hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_64, 8 >(srcImage, *dstImage , isCompressed);
244
251
break ;
245
252
case 16 :
246
- hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_128, 16 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , isCompressed);
253
+ hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_128, 16 >(srcImage, *dstImage , isCompressed);
247
254
break ;
248
255
default :
249
- hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_32, 4 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
256
+ hr = LinearToStandardSwizzle2D<STANDARD_SWIZZLE_MASK_32, 4 >(srcImage, *dstImage , false );
250
257
break ;
251
258
}
252
259
}
@@ -255,19 +262,19 @@ HRESULT DirectX::StandardSwizzle(
255
262
switch (bytesPerPixel)
256
263
{
257
264
case 1 :
258
- hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_8, 1 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
265
+ hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_8, 1 >(srcImage, *dstImage , false );
259
266
break ;
260
267
case 2 :
261
- hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_16, 2 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
268
+ hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_16, 2 >(srcImage, *dstImage , false );
262
269
break ;
263
270
case 8 :
264
- hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_64, 8 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , isCompressed);
271
+ hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_64, 8 >(srcImage, *dstImage , isCompressed);
265
272
break ;
266
273
case 16 :
267
- hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_128, 16 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , isCompressed);
274
+ hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_128, 16 >(srcImage, *dstImage , isCompressed);
268
275
break ;
269
276
default :
270
- hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_32, 4 >(srcImage, *result. GetImage ( 0 , 0 , 0 ) , false );
277
+ hr = StandardSwizzleToLinear2D<STANDARD_SWIZZLE_MASK_32, 4 >(srcImage, *dstImage , false );
271
278
break ;
272
279
}
273
280
}
0 commit comments