@@ -229,24 +229,31 @@ HRESULT DirectX::StandardSwizzle(
229229 return E_FAIL;
230230 }
231231
232+ const auto dstImage = result.GetImage (0 , 0 , 0 );
233+ if (!dstImage)
234+ {
235+ result.Release ();
236+ return E_POINTER;
237+ }
238+
232239 if (toSwizzle)
233240 {
234241 switch (bytesPerPixel)
235242 {
236243 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 );
238245 break ;
239246 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 );
241248 break ;
242249 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);
244251 break ;
245252 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);
247254 break ;
248255 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 );
250257 break ;
251258 }
252259 }
@@ -255,19 +262,19 @@ HRESULT DirectX::StandardSwizzle(
255262 switch (bytesPerPixel)
256263 {
257264 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 );
259266 break ;
260267 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 );
262269 break ;
263270 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);
265272 break ;
266273 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);
268275 break ;
269276 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 );
271278 break ;
272279 }
273280 }
0 commit comments