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

@ -14,7 +14,7 @@ CONFIG += $$BINDING
unix {
CONFIG += link_pkgconfig
PKGCONFIG += sigc++-2.0 sdl2 SDL2_image SDL2_ttf sfml-audio
PKGCONFIG += sigc++-2.0 sdl2 SDL2_image SDL2_ttf pixman-1 sfml-audio
LIBS += -lGLEW -lphysfs -lz
}