summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2014-01-13 18:00:18 +0000
committerrubidium <rubidium@openttd.org>2014-01-13 18:00:18 +0000
commit9a90bed79ba6e859df855a43abb715392899578b (patch)
treef018aba5edb462fdc7dbb83c3ec39f7840a27ab1
parent6e34672c6ca636b38ed3711f3f2be444ae12bfdf (diff)
downloadopenttd-9a90bed79ba6e859df855a43abb715392899578b.tar.xz
(svn r26251) -Codechange: prepare Draw code for code deduplication (MJP)
-rw-r--r--src/blitter/32bpp_anim_sse4.cpp6
-rw-r--r--src/blitter/32bpp_sse2.cpp4
-rw-r--r--src/blitter/32bpp_sse4.cpp6
-rw-r--r--src/blitter/32bpp_ssse3.cpp6
4 files changed, 11 insertions, 11 deletions
diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp
index 1775f66e7..3229338cd 100644
--- 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
index 07ba2f208..a5d8a1987 100644
--- a/src/blitter/32bpp_sse2.cpp
+++ b/src/blitter/32bpp_sse2.cpp
@@ -77,7 +77,7 @@ inline void Blitter_32bppSSE2::Draw(const Blitter::BlitterParams *bp, ZoomLevel
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
index 298082e32..d43cd8cd9 100644
--- a/src/blitter/32bpp_sse4.cpp
+++ b/src/blitter/32bpp_sse4.cpp
@@ -84,7 +84,7 @@ inline void Blitter_32bppSSE4::Draw(const Blitter::BlitterParams *bp, ZoomLevel
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(const Blitter::BlitterParams *bp, ZoomLevel
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
index 261c01c16..32a981b1b 100644
--- a/src/blitter/32bpp_ssse3.cpp
+++ b/src/blitter/32bpp_ssse3.cpp
@@ -84,7 +84,7 @@ inline void Blitter_32bppSSSE3::Draw(const Blitter::BlitterParams *bp, ZoomLevel
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(const Blitter::BlitterParams *bp, ZoomLevel
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();