Project

General

Profile

Feature #867 ยป 0038-sdl3-Update-mask_surface-to-sdl3-changes.patch

Marko Lindqvist, 09/17/2024 06:29 PM

View differences:

client/gui-sdl3/graphics.c
Uint32 *dest_pixel = NULL;
Uint32 *mask_pixel = NULL;
unsigned char src_alpha, mask_alpha;
const SDL_PixelFormatDetails *src_details
= SDL_GetPixelFormatDetails(src->format);
const SDL_PixelFormatDetails *mask_details
= SDL_GetPixelFormatDetails(mask->format);
const SDL_PixelFormatDetails *dest_details;
dest = copy_surface(src);
dest_details = SDL_GetPixelFormatDetails(dest->format);
lock_surf(src);
lock_surf(mask);
lock_surf(dest);
......
+ mask_offset_x;
for (col = 0; col < src->w; col++) {
src_alpha = (*src_pixel & src->format->Amask) >> src->format->Ashift;
mask_alpha = (*mask_pixel & mask->format->Amask) >> mask->format->Ashift;
src_alpha = (*src_pixel & src_details->Amask) >> src_details->Ashift;
mask_alpha = (*mask_pixel & mask_details->Amask) >> mask_details->Ashift;
*dest_pixel = (*src_pixel & ~src->format->Amask)
| (((src_alpha * mask_alpha) / 255) << dest->format->Ashift);
*dest_pixel = (*src_pixel & ~src_details->Amask)
| (((src_alpha * mask_alpha) / 255) << dest_details->Ashift);
src_pixel++; dest_pixel++; mask_pixel++;
}
    (1-1/1)