Fix #254: AdjustBrightnessOfTwoPixels used in 32bpp-sse2 but requires SSE3
This commit is contained in:
@@ -412,8 +412,14 @@ bmcr_alpha_blend_single:
|
||||
|
||||
case BM_NORMAL_WITH_BRIGHTNESS:
|
||||
for (uint x = (uint) effective_width / 2; x > 0; x--) {
|
||||
#if (SSE_VERSION >= 3)
|
||||
__m128i srcABCD = _mm_loadl_epi64((const __m128i*) src);
|
||||
srcABCD = AdjustBrightnessOfTwoPixels(srcABCD, bm_normal_brightness);
|
||||
#else
|
||||
uint64 srcpx = AdjustBrightneSSE(src->data, DEFAULT_BRIGHTNESS + bp->brightness_adjust).data;
|
||||
srcpx |= ((uint64)(AdjustBrightneSSE((src + 1)->data, DEFAULT_BRIGHTNESS + bp->brightness_adjust).data)) << 32;
|
||||
__m128i srcABCD = _mm_cvtsi64_si128(srcpx);
|
||||
#endif
|
||||
__m128i dstABCD = _mm_loadl_epi64((__m128i*) dst);
|
||||
_mm_storel_epi64((__m128i*) dst, AlphaBlendTwoPixels(srcABCD, dstABCD, ALPHA_BLEND_PARAM_1, ALPHA_BLEND_PARAM_2));
|
||||
src += 2;
|
||||
@@ -421,8 +427,7 @@ bmcr_alpha_blend_single:
|
||||
}
|
||||
|
||||
if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) {
|
||||
__m128i srcABCD = _mm_cvtsi32_si128(src->data);
|
||||
srcABCD = AdjustBrightnessOfTwoPixels(srcABCD, bm_normal_brightness);
|
||||
__m128i srcABCD = _mm_cvtsi32_si128(AdjustBrightneSSE(src->data, DEFAULT_BRIGHTNESS + bp->brightness_adjust).data);
|
||||
__m128i dstABCD = _mm_cvtsi32_si128(dst->data);
|
||||
dst->data = _mm_cvtsi128_si32(AlphaBlendTwoPixels(srcABCD, dstABCD, ALPHA_BLEND_PARAM_1, ALPHA_BLEND_PARAM_2));
|
||||
}
|
||||
|
Reference in New Issue
Block a user