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