triangle: don't read destination pixel when you're going to discard it anyways

This commit is contained in:
Anonymous Maarten 2023-10-05 13:40:09 +02:00
parent d5ba5bb05f
commit 36eb4845b5
1 changed files with 13 additions and 8 deletions

View File

@ -789,15 +789,20 @@ static void SDL_BlitTriangle_Slow(SDL_BlitInfo *info,
continue; continue;
} }
} }
if (FORMAT_HAS_ALPHA(dstfmt_val)) { if ((flags & (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL))) {
DISEMBLE_RGBA(dst, dstbpp, dst_fmt, dstpixel, dstR, dstG, dstB, dstA); if (FORMAT_HAS_ALPHA(dstfmt_val)) {
} else if (FORMAT_HAS_NO_ALPHA(dstfmt_val)) { DISEMBLE_RGBA(dst, dstbpp, dst_fmt, dstpixel, dstR, dstG, dstB, dstA);
DISEMBLE_RGB(dst, dstbpp, dst_fmt, dstpixel, dstR, dstG, dstB); } else if (FORMAT_HAS_NO_ALPHA(dstfmt_val)) {
dstA = 0xFF; DISEMBLE_RGB(dst, dstbpp, dst_fmt, dstpixel, dstR, dstG, dstB);
dstA = 0xFF;
} else {
/* SDL_PIXELFORMAT_ARGB2101010 */
dstpixel = *((Uint32 *) (dst));
RGBA_FROM_ARGB2101010(dstpixel, dstR, dstG, dstB, dstA);
}
} else { } else {
/* SDL_PIXELFORMAT_ARGB2101010 */ /* don't care */
dstpixel = *((Uint32 *)(dst)); dstR = dstG = dstB = dstA = 0;
RGBA_FROM_ARGB2101010(dstpixel, dstR, dstG, dstB, dstA);
} }
if (!is_uniform) { if (!is_uniform) {