# HG changeset patch # User rubidium # Date 2014-01-13 18:00:18 # Node ID 3d5ac52fd0b7bd367ab7a27e0b828f1b22cb1f4a # Parent 6c2703eaba5c362b5d55f55e3450c35da970dd48 (svn r26251) -Codechange: prepare Draw code for code deduplication (MJP) diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp --- a/src/blitter/32bpp_anim_sse4.cpp +++ b/src/blitter/32bpp_anim_sse4.cpp @@ -134,7 +134,7 @@ bmno_full_transparency: dst += 2; } - if (bt_last == BT_ODD) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { if (src->a == 0) { } else if (src->a == 255) { *anim = *(const uint16*) src_mv; @@ -249,7 +249,7 @@ bmcr_full_transparency: anim += 2; } - if (effective_width & 1) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { /* In case the m-channel is zero, do not remap this pixel in any way. */ __m128i srcABCD; if (src->a == 0) break; @@ -298,7 +298,7 @@ bmcr_alpha_blend_single: if (src[-2].a) anim[-2] = 0; if (src[-1].a) anim[-1] = 0; } - if (bp->width & 1) { + if ((bt_last == BT_NONE && bp->width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); DARKEN_2(); diff --git a/src/blitter/32bpp_sse2.cpp b/src/blitter/32bpp_sse2.cpp --- a/src/blitter/32bpp_sse2.cpp +++ b/src/blitter/32bpp_sse2.cpp @@ -77,7 +77,7 @@ inline void Blitter_32bppSSE2::Draw(cons src += 2; dst += 2; } - if (bt_last == BT_ODD) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); ALPHA_BLEND_2(); @@ -153,7 +153,7 @@ bmcr_alpha_blend_single: src += 2; dst += 2; } - if (bp->width & 1) { + if ((bt_last == BT_NONE && bp->width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); DARKEN_2(); diff --git a/src/blitter/32bpp_sse4.cpp b/src/blitter/32bpp_sse4.cpp --- a/src/blitter/32bpp_sse4.cpp +++ b/src/blitter/32bpp_sse4.cpp @@ -84,7 +84,7 @@ inline void Blitter_32bppSSE4::Draw(cons src += 2; dst += 2; } - if (bt_last == BT_ODD) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); ALPHA_BLEND_2(); @@ -153,7 +153,7 @@ inline void Blitter_32bppSSE4::Draw(cons src_mv += 2; } - if (effective_width & 1) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { /* In case the m-channel is zero, do not remap this pixel in any way. */ __m128i srcABCD; if (src_mv->m) { @@ -197,7 +197,7 @@ bmcr_alpha_blend_single: src += 2; dst += 2; } - if (bp->width & 1) { + if ((bt_last == BT_NONE && bp->width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); DARKEN_2(); diff --git a/src/blitter/32bpp_ssse3.cpp b/src/blitter/32bpp_ssse3.cpp --- a/src/blitter/32bpp_ssse3.cpp +++ b/src/blitter/32bpp_ssse3.cpp @@ -84,7 +84,7 @@ inline void Blitter_32bppSSSE3::Draw(con src += 2; dst += 2; } - if (bt_last == BT_ODD) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); ALPHA_BLEND_2(); @@ -153,7 +153,7 @@ inline void Blitter_32bppSSSE3::Draw(con src_mv += 2; } - if (effective_width & 1) { + if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) { /* In case the m-channel is zero, do not remap this pixel in any way. */ __m128i srcABCD; if (src_mv->m) { @@ -197,7 +197,7 @@ bmcr_alpha_blend_single: src += 2; dst += 2; } - if (bp->width & 1) { + if ((bt_last == BT_NONE && bp->width & 1) || bt_last == BT_ODD) { __m128i srcABCD = _mm_cvtsi32_si128(src->data); __m128i dstABCD = _mm_cvtsi32_si128(dst->data); DARKEN_2();