mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-18 18:30:59 +00:00

The original alpha computation formula had a problem: If something was drawn on top of a pixel that was already fully opaque, there would be an overflow in the computed alpha, and the destination alpha would be truncated to 0 (fully transparent). In commit 264ba4a9 this formula was replaced with another one, which did not have overflows but also was not correct. This commits introduces a new formula, where the rounding errors have been turned in another direction; drawing a fully opaque pixel on top of a transparent one would result in a pixel which is almost, but not fully, opaque. However, this is no problem in practice, since drawing fully opaque pixels can be achieved with much less code as a special case, so add that (also improves rendering speed).