Skip to content

Commit

Permalink
Fix blit with blending (Blit_A) to RGB332 which has no palette
Browse files Browse the repository at this point in the history
  • Loading branch information
1bsyl committed Jan 30, 2019
1 parent 5b07148 commit cd25c83
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions src/video/SDL_blit_A.c
Expand Up @@ -1276,7 +1276,12 @@ SDL_CalculateBlitA(SDL_Surface * surface)
/* Per-pixel alpha blits */
switch (df->BytesPerPixel) {
case 1:
return BlitNto1PixelAlpha;
if (df->palette != NULL) {
return BlitNto1PixelAlpha;
} else {
/* RGB332 has no palette ! */
return BlitNtoNPixelAlpha;
}

case 2:
if (sf->BytesPerPixel == 4 && sf->Amask == 0xff000000
Expand Down Expand Up @@ -1326,7 +1331,12 @@ SDL_CalculateBlitA(SDL_Surface * surface)
/* Per-surface alpha blits */
switch (df->BytesPerPixel) {
case 1:
return BlitNto1SurfaceAlpha;
if (df->palette != NULL) {
return BlitNto1SurfaceAlpha;
} else {
/* RGB332 has no palette ! */
return BlitNtoNSurfaceAlpha;
}

case 2:
if (surface->map->identity) {
Expand Down Expand Up @@ -1374,7 +1384,13 @@ SDL_CalculateBlitA(SDL_Surface * surface)
case SDL_COPY_COLORKEY | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND:
if (sf->Amask == 0) {
if (df->BytesPerPixel == 1) {
return BlitNto1SurfaceAlphaKey;

if (df->palette != NULL) {
return BlitNto1SurfaceAlphaKey;
} else {
/* RGB332 has no palette ! */
return BlitNtoNSurfaceAlphaKey;
}
} else {
return BlitNtoNSurfaceAlphaKey;
}
Expand Down

0 comments on commit cd25c83

Please sign in to comment.