This commit makes the `image` namespace check the advanced options
when selecting how to scale a sprite. It also makes the advanced
graphics options window flush the caches when an option is changed.
This permits the user to experiment with different graphics
algorithms while playing the game.
This commit adds the xBRZ algorithm to the codebase, and adds
an imagepath modification to use it, and adds a bunch of extra
images showcasing it to the unit help pages.
xBRZ was obtained from sourceforge (xBRZ.zip):
http://sourceforge.net/projects/hqmame/files/
It is modified, the original program wants to be compiled as
C++11, so I had to make minor changes so that it can compile as
C++98 w/ boost.
Main changes: get boost/cstdint and typedef uint32_t from there,
comment out all static asserts
change all cases of lambda functions to boost bind instances or
otherwise.
Fix non-utf8 characters.
dos2unix on all new files
Renanme files .h -> .hpp, as config.h is in our .gitignore
Suppress warnings from unused functions.
Fixup warnings from negligible initialization of POD types
Mark some templates results with attribute unused
In this commit from late 2005, boucman added a bilinear interpolation
routine for scaling images which we use everywhere.
https://github.com/wesnoth/wesnoth/commit/2df60619
It is a modified bilinear interpolation -- one of the tweaks is that
at the very end an "alpha thresholding" step occurs. If the alpha
of a pixel is less than half of the average alpha of its neighbors,
it is discarded and set to fully transparent. Boucman writes that
this was done to combat a gametime artifact that would occur when
moving the hexagonal selector around with the mouse -- however, it
creates a small loss in image quality. Boucman writes that skeleton
archer bowstrings don't look as good -- I notice also that the edges
of the wings of drakes seem a bit sharper / more pixelated somehow.
In this commit I tried disabling the alpha thresholding, since the
way that the hex selector works has been changed since 2005, so this
might no longer be an issue. Sure enough the "hexagonal haloes" are
gone now, so it seems that we can safely get rid of the alpha
thresholding.