Track 'tainted' area of Bitmaps to optimize blit operations

The 'tainted' area of a Bitmap describes what parts are no
longer in a 'cleared' state. When we blit to a fully cleared
are of a Bitmap at full opacity, we can completely disregard
the existing pixels in the operation, meaning we can skip any
blending calculations and just blit / upload straight to the
texture. This greatly speeds up text message rendering.

In the process, pixman has become a new dependency for mkxp,
but the results of this optimization are well worth it!
This commit is contained in:
Jonas Kulla 2013-09-03 15:23:20 +02:00
parent e903d8cb0f
commit 32361e513a
3 changed files with 142 additions and 33 deletions

View file

@ -42,6 +42,7 @@ To select this backend, run `qmake BINDING=BINDING_NULL`
* SDL2
* SDL2_image
* SDL2_ttf
* pixman
* sfml-system 2.0
* sfml-audio 2.0
* zlib (only ruby backends)