You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This program prints (253, 253, 126) on my MacOS where BlitRGBtoRGBPixelAlphaMMX3DNOW() is used for blitting, but prints (255, 255, 127) on a Raspberry Pi where non-accelerated BlitRGBtoRGBPixelAlpha() is used.
In BlitRGBtoRGBPixelAlphaMMX3DNOW(), the resulting pixel value is calculated as:
(sa >> 8) + (d(255-a) >> 8)
where s is the source's RGB component value, a is the source's alpha value, and d is the destination's RGB component value. In BlitRGBtoRGBPixelAlpha(), a different calculation is used:
d + ((s-d)*a >> 8)
IMO BlitRGBtoRGBPixelAlpha's behavior is more desirable because it preserves the total signal level.
The text was updated successfully, but these errors were encountered:
The last time I checked, the MMX code was a big improvement over the C code and we didn't have AVX or anything faster/newer. That might change soon, but FYI.
This bug report was migrated from our old Bugzilla tracker.
Reported in version: 2.0.10
Reported for operating system, platform: All, x86
Comments on the original bug report:
On 2019-08-12 05:50:10 +0000, Kichikuou wrote:
The text was updated successfully, but these errors were encountered: