@@ -424,7 +424,7 @@ filter_expand_Y_SSE2(Uint8 *srcpix, Uint8 *dstpix, int width, int srcpitch,
424424}
425425
426426void
427- grayscale_sse2 (SDL_Surface * src , SDL_Surface * newsurf )
427+ grayscale_sse2 (SDL_Surface * src , PG_PixelFormat * src_fmt , SDL_Surface * newsurf )
428428{
429429 /* For the SSE2 SIMD version of grayscale we do one pixel at a time
430430 * Thus we can calculate the number of loops (and pixels) by multiplying
@@ -460,16 +460,15 @@ grayscale_sse2(SDL_Surface *src, SDL_Surface *newsurf)
460460 Uint32 * srcp = (Uint32 * )src -> pixels ;
461461 Uint32 * dstp = (Uint32 * )newsurf -> pixels ;
462462
463- Uint64 amask64 = ((Uint64 )src -> format -> Amask ) | src -> format -> Amask ;
463+ Uint64 amask64 = ((Uint64 )src_fmt -> Amask ) | src_fmt -> Amask ;
464464 Uint64 rgbmask64 = ~amask64 ;
465465
466466 Uint64 rgb_weights =
467- ((Uint64 )((0x4C << src -> format -> Rshift ) |
468- (0x96 << src -> format -> Gshift ) |
469- (0x1D << src -> format -> Bshift ))
467+ ((Uint64 )((0x4C << src_fmt -> Rshift ) | (0x96 << src_fmt -> Gshift ) |
468+ (0x1D << src_fmt -> Bshift ))
470469 << 32 ) |
471- ((0x4C << src -> format -> Rshift ) | (0x96 << src -> format -> Gshift ) |
472- (0x1D << src -> format -> Bshift ));
470+ ((0x4C << src_fmt -> Rshift ) | (0x96 << src_fmt -> Gshift ) |
471+ (0x1D << src_fmt -> Bshift ));
473472
474473 Uint64 * srcp64 = (Uint64 * )src -> pixels ;
475474 Uint64 * dstp64 = (Uint64 * )newsurf -> pixels ;
@@ -613,7 +612,7 @@ grayscale_sse2(SDL_Surface *src, SDL_Surface *newsurf)
613612}
614613
615614void
616- invert_sse2 (SDL_Surface * src , SDL_Surface * newsurf )
615+ invert_sse2 (SDL_Surface * src , PG_PixelFormat * src_fmt , SDL_Surface * newsurf )
617616{
618617 int s_row_skip = (src -> pitch - src -> w * 4 ) / 4 ;
619618
@@ -638,8 +637,8 @@ invert_sse2(SDL_Surface *src, SDL_Surface *newsurf)
638637 __m128i * srcp128 = (__m128i * )src -> pixels ;
639638 __m128i * dstp128 = (__m128i * )newsurf -> pixels ;
640639
641- mm_rgb_invert_mask = _mm_set1_epi32 (~src -> format -> Amask );
642- mm_alpha_mask = _mm_set1_epi32 (src -> format -> Amask );
640+ mm_rgb_invert_mask = _mm_set1_epi32 (~src_fmt -> Amask );
641+ mm_alpha_mask = _mm_set1_epi32 (src_fmt -> Amask );
643642
644643 while (num_batches -- ) {
645644 perfect_4_pixels_batch_counter = perfect_4_pixels ;
0 commit comments