From 4b10a3f80cb7760815cf78b032ec9f4d10068daf Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 23 Jun 2020 07:59:57 +0000 Subject: [PATCH] Draw: Minify fix git-svn-id: svn://ultimatepp.org/upp/trunk@14627 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Draw/Mify.cpp | 17 +++++++++-------- uppsrc/Painter/AlphaBlend.h | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/uppsrc/Draw/Mify.cpp b/uppsrc/Draw/Mify.cpp index 8f7d5a7bb..72cde3585 100644 --- a/uppsrc/Draw/Mify.cpp +++ b/uppsrc/Draw/Mify.cpp @@ -27,13 +27,12 @@ Image Minify(const Image& img, int nx, int ny, bool co) __m128 *d = div; while(s < e) { __m128 px = _mm_setzero_ps(); - __m128 dv = _mm_setzero_ps(); - for(int n = nx; n--;) { + for(int n = nx; n--;) px = _mm_add_ps(px, LoadRGBAF(s++)); - dv = _mm_add_ps(dv, v1); - } - *t++ = px; - *d++ = dv; + *t = _mm_add_ps(*t, px); + *d = _mm_add_ps(*d, vnx); + t++; + d++; } if(s < e2) { __m128 px = _mm_setzero_ps(); @@ -42,8 +41,10 @@ Image Minify(const Image& img, int nx, int ny, bool co) px = _mm_add_ps(px, LoadRGBAF(s++)); dv = _mm_add_ps(px, v1); } - *t++ = px; - *d++ = dv; + *t = _mm_add_ps(*t, px); + *d = _mm_add_ps(*d, dv); + t++; + d++; } ASSERT(t == b + tsz.cx); } diff --git a/uppsrc/Painter/AlphaBlend.h b/uppsrc/Painter/AlphaBlend.h index 26551fb31..32d5f5ed7 100644 --- a/uppsrc/Painter/AlphaBlend.h +++ b/uppsrc/Painter/AlphaBlend.h @@ -22,7 +22,7 @@ __m128i BroadcastAlpha(__m128i x) force_inline __m128i Mul8(__m128i x, int alpha) { - return _mm_srli_epi16(_mm_mullo_epi16(_mm_set1_epi16(alpha), x), 8); // int a = c.a * cover >> 8; + return _mm_srli_epi16(_mm_mullo_epi16(_mm_set1_epi16(alpha), x), 8); // c.a * alpha >> 8; } force_inline