if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
if(src->format->Amask || !(src->flags & SDL_SRCCOLORKEY) || mapped != src->format->colorkey)
{
Uint8 r, g, b, a;
SDL_GetRGBA(mapped, src->format, &r, &g, &b, &a);
mapped = SDL_MapRGBA(dst->format, (r * red) >> 8, (g * green) >> 8, (b * blue) >> 8, a);
}
if(src->format->Amask || !(src->flags & SDL_SRCCOLORKEY) || mapped != src->format->colorkey)
{
Uint8 r, g, b, a;
SDL_GetRGBA(mapped, src->format, &r, &g, &b, &a);
mapped = SDL_MapRGBA(dst->format, (r * red) >> 8, (g * green) >> 8, (b * blue) >> 8, a);
}
if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
if(src->flags & SDL_SRCALPHA)
{
SDL_SetAlpha(dst, SDL_SRCALPHA | SDL_RLEACCEL, src->format->alpha);
bool have_transparent = false;
bool have_semi_trans = false;
bool have_opaque = false;
bool have_transparent = false;
bool have_semi_trans = false;
bool have_opaque = false;