[Commits] [wesnoth/wesnoth] eeb921: xBRZ trial commit

GitHub noreply at github.com
Fri Oct 31 05:49:35 UTC 2014


  Branch: refs/heads/master
  Home:   https://github.com/wesnoth/wesnoth
  Commit: eeb92161e07ef4e65d1510e81d84e1719e4695a0
      https://github.com/wesnoth/wesnoth/commit/eeb92161e07ef4e65d1510e81d84e1719e4695a0
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/CMakeLists.txt
    M src/SConscript
    M src/help.cpp
    M src/image_modifications.cpp
    M src/image_modifications.hpp
    M src/sdl/utils.cpp
    M src/sdl/utils.hpp
    A src/xBRZ/License.txt
    A src/xBRZ/config.hpp
    A src/xBRZ/xbrz.cpp
    A src/xBRZ/xbrz.hpp

  Log Message:
  -----------
  xBRZ trial commit

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


  Commit: 6040e9bf01427faf9fe23fc43df46431f27529de
      https://github.com/wesnoth/wesnoth/commit/6040e9bf01427faf9fe23fc43df46431f27529de
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/xBRZ/xbrz.cpp

  Log Message:
  -----------
  fixup xbrz blending handling of alpha channel

xbrz reference implementation assumes that there is no alpha in
the sprites, and indeed, when it would blend any colors would zero
out the alpha channel. This is not suitable for our needs, as our
sprites have alpha, and SDL treats 0 alpha as being transparent.

This commit adds --placeholder-- alpha channel code. It does not
do proper alpha compositing, it just checks if either the source
or blend pixel has < 50% alpha (if so it ignores and takes the
other), and otherwise it applies full alpha to the pixel. This
seems to work fine in the ``typical'' cases I have observed but
a ``real'' implementation is needed here.


  Commit: 8932fda902d2dbd2b36a975ead5757c4e8dcdf9c
      https://github.com/wesnoth/wesnoth/commit/8932fda902d2dbd2b36a975ead5757c4e8dcdf9c
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/help.cpp

  Log Message:
  -----------
  add wesnoth default scaling results along-side xBRZ in help pages


  Commit: 760cb18b3e5737efe0732cf73179d3ecb699270d
      https://github.com/wesnoth/wesnoth/commit/760cb18b3e5737efe0732cf73179d3ecb699270d
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M changelog
    M players_changelog
    M src/unit_drawer.cpp

  Log Message:
  -----------
  Revert "Anchor unit overlays to the topleft corner of the sprite."

This reverts commit 8f49cbad5508d761c1139c65e064c31ea3c79a00.

This commit breaks the game when you zoom in, since I'm trying to
make changes to how that works it is inconvenient to have to deal
with it right now. This bug was assigned to lipk more than a month
ago when he first introduced it.

Conflicts:
	changelog
	src/unit_drawer.cpp


  Commit: 3f18331a0836e09f96cabfb6ef55005a8f54022c
      https://github.com/wesnoth/wesnoth/commit/3f18331a0836e09f96cabfb6ef55005a8f54022c
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/display.cpp
    M src/image.cpp

  Log Message:
  -----------
  as a test, use xBRZ when zooming images

This also sets the max zoom to 288 so you can reach 3x and 4x if
desired.


  Commit: 07b6eeedb2f0326fbf33c9b5d9c25b570a65b88e
      https://github.com/wesnoth/wesnoth/commit/07b6eeedb2f0326fbf33c9b5d9c25b570a65b88e
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    A data/gui/default/window/advanced_graphics_options.cfg
    M src/CMakeLists.txt
    M src/SConscript
    M src/game_preferences_display.cpp
    A src/gui/dialogs/advanced_graphics_options.cpp
    A src/gui/dialogs/advanced_graphics_options.hpp
    M src/make_enum.hpp
    M src/preferences_display.hpp
    M src/tests/gui/test_gui2.cpp

  Log Message:
  -----------
  add "advanced graphics" preference dialog, for scaling algo options

This commit also gives the smart enums in src/make_enum.hpp
introspective capabilities, by giving them a static const size_t
which tells how many possible values they may take (hence the range
of the enum.) It was convenient for the dialog implementation
to have this.

Note that, I had to make use of __attribute__((unused)) to compile
this. I apply this using a macro which adds it for gcc, clang, and
mingw which I know respond to this attribute. I don't know what is
the equivalent MSVC device, or if it is even necessary, so its
possible that this commit needs to be fixed up.

We also disable unit tests for the new advanced graphics dialog,
there are no tests for it right now...


  Commit: 1582026ec9e14001f6e41ec4f49e34f34b690575
      https://github.com/wesnoth/wesnoth/commit/1582026ec9e14001f6e41ec4f49e34f34b690575
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/gui/dialogs/advanced_graphics_options.cpp
    M src/image.cpp
    M src/sdl/utils.cpp
    M src/sdl/utils.hpp

  Log Message:
  -----------
  implement advanced graphics options back-end

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.


  Commit: 88dcdeb1ee4845eb143747d72af3be87e3a69a54
      https://github.com/wesnoth/wesnoth/commit/88dcdeb1ee4845eb143747d72af3be87e3a69a54
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-24 (Fri, 24 Oct 2014)

  Changed paths:
    M src/help.cpp

  Log Message:
  -----------
  fixup help pages for units, only one sprite (as usual)

Only show one sprite, not all the scaled samples.
Only show ~xBRZ(2), not the straight baseframe.


  Commit: 4e3179496263d3247c906e4d513e1caca8797eb3
      https://github.com/wesnoth/wesnoth/commit/4e3179496263d3247c906e4d513e1caca8797eb3
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-27 (Mon, 27 Oct 2014)

  Changed paths:
    M src/xBRZ/xbrz.cpp

  Log Message:
  -----------
  xBRZ alpha blending fixup attempt


  Commit: ea23fc4f4a139de0d6ba5a03d1c6a71561ccff5e
      https://github.com/wesnoth/wesnoth/commit/ea23fc4f4a139de0d6ba5a03d1c6a71561ccff5e
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-27 (Mon, 27 Oct 2014)

  Changed paths:
    M src/xBRZ/xbrz.cpp

  Log Message:
  -----------
  xBRZ fixup attempt: averaged alpha

it might be that this is the way to go as far as how to blend, and
to avoid messy unit edges, just try to ensure that the color
distance function takes alpha into account

I'm still unsure about averaged alpha as an approach though, it
doesn't really make that much sense to me.


  Commit: a28082c03a816ac942e3864a3292fe2805cfe0b5
      https://github.com/wesnoth/wesnoth/commit/a28082c03a816ac942e3864a3292fe2805cfe0b5
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-31 (Fri, 31 Oct 2014)

  Changed paths:
    M src/xBRZ/xbrz.cpp

  Log Message:
  -----------
  add a TODO regarding improving alpha blending


  Commit: 0442e6514a9e57df5296bea7c566089ed536fe7a
      https://github.com/wesnoth/wesnoth/commit/0442e6514a9e57df5296bea7c566089ed536fe7a
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-10-31 (Fri, 31 Oct 2014)

  Changed paths:
    M changelog
    A data/gui/default/window/advanced_graphics_options.cfg
    M players_changelog
    M src/CMakeLists.txt
    M src/SConscript
    M src/display.cpp
    M src/game_preferences_display.cpp
    A src/gui/dialogs/advanced_graphics_options.cpp
    A src/gui/dialogs/advanced_graphics_options.hpp
    M src/help.cpp
    M src/image.cpp
    M src/image_modifications.cpp
    M src/image_modifications.hpp
    M src/make_enum.hpp
    M src/preferences_display.hpp
    M src/sdl/utils.cpp
    M src/sdl/utils.hpp
    M src/tests/gui/test_gui2.cpp
    M src/unit_drawer.cpp
    A src/xBRZ/License.txt
    A src/xBRZ/config.hpp
    A src/xBRZ/xbrz.cpp
    A src/xBRZ/xbrz.hpp

  Log Message:
  -----------
  Merge branch 'xBRZ'


Compare: https://github.com/wesnoth/wesnoth/compare/774cafc2be26...0442e6514a9e


More information about the Commits mailing list