[Commits] [wesnoth/wesnoth] ade2c5: SDL/Window: set render scaling method to linear

GitHub noreply at github.com
Sun Jul 9 07:06:00 UTC 2017


  Branch: refs/heads/accelerated_rendering
  Home:   https://github.com/wesnoth/wesnoth
  Commit: ade2c5fa5b6f629b22f6d7bdadf669bb0b342000
      https://github.com/wesnoth/wesnoth/commit/ade2c5fa5b6f629b22f6d7bdadf669bb0b342000
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/window.cpp

  Log Message:
  -----------
  SDL/Window: set render scaling method to linear

This looks better than NN scaling (default);


  Commit: 9594a469972c22ba9d03171a119765e54280c367
      https://github.com/wesnoth/wesnoth/commit/9594a469972c22ba9d03171a119765e54280c367
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  Video: enabled accelerated rendering with texture target access


  Commit: 7015cd6a63345cdfb8d7033d8d48f69ddd40e26a
      https://github.com/wesnoth/wesnoth/commit/7015cd6a63345cdfb8d7033d8d48f69ddd40e26a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/button_default.cfg
    M src/gui/core/canvas.cpp
    M src/gui/core/canvas.hpp
    M src/gui/core/canvas_private.hpp
    M src/gui/core/event/handler.cpp
    M src/gui/widgets/widget.cpp
    M src/gui/widgets/window.cpp

  Log Message:
  -----------
  GUI2/Canvas: refactor surface blitting out of drawing routines

This entirely refactors surface blitting out of the canvas. Instead, each canvas owns a texture. This texture
is completely redrawn any time the canvas if marked dirty, else the result is cached and drawn to the screen
each draw cycle.

All windows are now redrawn every draw cycle. The use of the cached canvas textures means there's no noticeable
performance difference (likely a performance gain, actually) from using surface blitting.

There's still some code to clean up and a few things to fix.


  Commit: b57c0db5919e53540c1c313ef93b4869b6ae9723
      https://github.com/wesnoth/wesnoth/commit/b57c0db5919e53540c1c313ef93b4869b6ae9723
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/window.cpp

  Log Message:
  -----------
  GUI2/Window: properly re-implement draw and restore code

We don't need all this dirty list or handling or surface restoration anymore.


  Commit: 25c51feca2508bf4c55f890d2de3bc19eb78a6b2
      https://github.com/wesnoth/wesnoth/commit/25c51feca2508bf4c55f890d2de3bc19eb78a6b2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/event/handler.cpp
    M src/gui/dialogs/debug_clock.cpp
    M src/gui/dialogs/editor/custom_tod.cpp
    M src/gui/dialogs/lua_interpreter.cpp
    M src/gui/dialogs/outro.cpp
    M src/gui/dialogs/story_viewer.cpp
    M src/gui/dialogs/story_viewer.hpp
    M src/gui/dialogs/title_screen.cpp
    M src/gui/widgets/button.cpp
    M src/gui/widgets/container_base.cpp
    M src/gui/widgets/container_base.hpp
    M src/gui/widgets/generator.hpp
    M src/gui/widgets/generator_private.hpp
    M src/gui/widgets/grid.cpp
    M src/gui/widgets/grid.hpp
    M src/gui/widgets/label.cpp
    M src/gui/widgets/list.cpp
    M src/gui/widgets/listbox.cpp
    M src/gui/widgets/listbox.hpp
    M src/gui/widgets/matrix.cpp
    M src/gui/widgets/matrix.hpp
    M src/gui/widgets/menu_button.cpp
    M src/gui/widgets/minimap.hpp
    M src/gui/widgets/multimenu_button.cpp
    M src/gui/widgets/pane.cpp
    M src/gui/widgets/pane.hpp
    M src/gui/widgets/progress_bar.cpp
    M src/gui/widgets/repeating_button.cpp
    M src/gui/widgets/scrollbar.cpp
    M src/gui/widgets/scrollbar_container.cpp
    M src/gui/widgets/scrollbar_container.hpp
    M src/gui/widgets/slider.hpp
    M src/gui/widgets/styled_widget.cpp
    M src/gui/widgets/text_box.cpp
    M src/gui/widgets/text_box_base.cpp
    M src/gui/widgets/toggle_button.cpp
    M src/gui/widgets/toggle_panel.cpp
    M src/gui/widgets/tree_view.cpp
    M src/gui/widgets/tree_view.hpp
    M src/gui/widgets/tree_view_node.cpp
    M src/gui/widgets/tree_view_node.hpp
    M src/gui/widgets/viewport.cpp
    M src/gui/widgets/viewport.hpp
    M src/gui/widgets/widget.cpp
    M src/gui/widgets/widget.hpp
    M src/gui/widgets/window.hpp
    M src/scripting/lua_gui2.cpp

  Log Message:
  -----------
  GUI2: removed dirty widget interface

This is no longer needed since we redraw everything every frame. The dirty flag in the canvas remains
as that controls whether the cached texture is used or recreated.


  Commit: 5ed7abfa8fdc06c796b9db31ac0ad0f121aaf64d
      https://github.com/wesnoth/wesnoth/commit/5ed7abfa8fdc06c796b9db31ac0ad0f121aaf64d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/window.cpp
    M src/gui/widgets/window.hpp

  Log Message:
  -----------
  GUI2/Window: removed restore flag and restorer surface


  Commit: 006cebed2e157b4bfd44c0deacdd9280815a3d32
      https://github.com/wesnoth/wesnoth/commit/006cebed2e157b4bfd44c0deacdd9280815a3d32
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/gui/core/canvas.hpp
    M src/gui/widgets/panel.cpp
    M src/gui/widgets/styled_widget.cpp

  Log Message:
  -----------
  GUI2/Canvas: renamed blit function and removed surface argument


  Commit: bef18917876e8b6595d80ee34e9864b6a662ec9c
      https://github.com/wesnoth/wesnoth/commit/bef18917876e8b6595d80ee34e9864b6a662ec9c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/container_base.cpp
    M src/gui/widgets/container_base.hpp
    M src/gui/widgets/generator.hpp
    M src/gui/widgets/generator_private.hpp
    M src/gui/widgets/grid.cpp
    M src/gui/widgets/grid.hpp
    M src/gui/widgets/matrix.cpp
    M src/gui/widgets/matrix.hpp
    M src/gui/widgets/minimap.cpp
    M src/gui/widgets/minimap.hpp
    M src/gui/widgets/multi_page.cpp
    M src/gui/widgets/multi_page.hpp
    M src/gui/widgets/pane.cpp
    M src/gui/widgets/pane.hpp
    M src/gui/widgets/panel.cpp
    M src/gui/widgets/panel.hpp
    M src/gui/widgets/scrollbar_container.cpp
    M src/gui/widgets/scrollbar_container.hpp
    M src/gui/widgets/spacer.cpp
    M src/gui/widgets/spacer.hpp
    M src/gui/widgets/styled_widget.cpp
    M src/gui/widgets/styled_widget.hpp
    M src/gui/widgets/toggle_panel.cpp
    M src/gui/widgets/toggle_panel.hpp
    M src/gui/widgets/tree_view_node.cpp
    M src/gui/widgets/tree_view_node.hpp
    M src/gui/widgets/viewport.cpp
    M src/gui/widgets/viewport.hpp
    M src/gui/widgets/widget.cpp
    M src/gui/widgets/widget.hpp
    M src/gui/widgets/window.cpp

  Log Message:
  -----------
  GUI2: removed framebuffer code from draw impl functions


  Commit: df4c2493e4d5b24f0a9a742019e5145a45d31e1a
      https://github.com/wesnoth/wesnoth/commit/df4c2493e4d5b24f0a9a742019e5145a45d31e1a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/font/text.cpp

  Log Message:
  -----------
  Hack to get text to render right


  Commit: c334b06716b6529fd61d39fd48c7a9acb8e18cb9
      https://github.com/wesnoth/wesnoth/commit/c334b06716b6529fd61d39fd48c7a9acb8e18cb9
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/gui/core/canvas.hpp
    M src/gui/widgets/panel.cpp
    M src/gui/widgets/styled_widget.cpp
    M src/gui/widgets/widget.cpp
    M src/gui/widgets/widget.hpp

  Log Message:
  -----------
  GUI2: refactored viewport setting and re-added clip rect setting

It turns out I had removed the clip rect setting in error; it prevented items in, say, a listbox from drawing
outside the widget's boundaries. I've re-added that now.

I've also moved viewport setting to the same place. It turns out it didn't need to be set every canvas draw.
The only reason the old code was passing the blitting rect to the canvas was it was needed for the sdl_blit call.
Since I can now set the viewport independent of a canvas state, there's no longer a need to set the viewport in
the canvas.


  Commit: 643529fa55513870573fdd6fac54bb186835dfeb
      https://github.com/wesnoth/wesnoth/commit/643529fa55513870573fdd6fac54bb186835dfeb
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/event/handler.cpp
    M src/gui/dialogs/lua_interpreter.cpp

  Log Message:
  -----------
  Fixed some unused parameter warnings


  Commit: f0f103a7a54a6c980de291bee32adcb67b7f524c
      https://github.com/wesnoth/wesnoth/commit/f0f103a7a54a6c980de291bee32adcb67b7f524c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/window.cpp

  Log Message:
  -----------
  Removed some debug output

[ci skip]


  Commit: 2345fd3d1b37c98f2e64b23060e214c78801e501
      https://github.com/wesnoth/wesnoth/commit/2345fd3d1b37c98f2e64b23060e214c78801e501
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/gui/widgets/widget.cpp
    M src/video.cpp

  Log Message:
  -----------
  Added some code to make my recent changes work with a software renderer


  Commit: cc29dc4ec93f5722b59d0d1c0f83795b13094a2f
      https://github.com/wesnoth/wesnoth/commit/cc29dc4ec93f5722b59d0d1c0f83795b13094a2f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: removed surface_lock objects

The canvas surface isn't even passed to these functions anymore so I have no idea how this built.


  Commit: 8816bd2c76ad2507b7adca6a68680029a3d722f6
      https://github.com/wesnoth/wesnoth/commit/8816bd2c76ad2507b7adca6a68680029a3d722f6
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/event/handler.cpp

  Log Message:
  -----------
  Small code simplification


  Commit: eb33c18e62662a1ebf64ba44ef52d8ef61d11932
      https://github.com/wesnoth/wesnoth/commit/eb33c18e62662a1ebf64ba44ef52d8ef61d11932
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: add error logging if canvas texture creation fails


  Commit: cb90c509ade8a06e494b1213c8bbbc1a95e5e351
      https://github.com/wesnoth/wesnoth/commit/cb90c509ade8a06e494b1213c8bbbc1a95e5e351
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/libwesnoth_sdl
    M src/display.cpp
    M src/gui/core/canvas.cpp
    M src/gui/core/canvas.hpp
    M src/gui/core/event/handler.cpp
    M src/help/help.cpp
    A src/sdl/texture.cpp
    A src/sdl/texture.hpp
    M src/video.cpp
    M src/video.hpp

  Log Message:
  -----------
  Added SDL_Texture wrapper class and some utility functions


  Commit: 8d1c4bcd08b56da9d9d29087892e23391b671c88
      https://github.com/wesnoth/wesnoth/commit/8d1c4bcd08b56da9d9d29087892e23391b671c88
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/minimap.cpp

  Log Message:
  -----------
  GUI2/Minimap: quick fix to get the minimap drawing again


  Commit: a7f730ce4504abbe70c54634d7af49b5a9d2cfe2
      https://github.com/wesnoth/wesnoth/commit/a7f730ce4504abbe70c54634d7af49b5a9d2cfe2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M projectfiles/CodeBlocks/wesnoth.cbp
    M src/gui/core/canvas.cpp
    A src/sdl/render_utils.hpp
    M src/sdl/texture.cpp
    M src/sdl/texture.hpp

  Log Message:
  -----------
  Moved renderer RAII helpers to their own file and added ones for clip rect and viewport


  Commit: a4b372ca7113ff891338c88c28cccced9a2c81c5
      https://github.com/wesnoth/wesnoth/commit/a4b372ca7113ff891338c88c28cccced9a2c81c5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  CVideo: convert blit_surface to handle input as textures instead of blitting to framebuffer


  Commit: c617983d03b280c43734e6afa8c7f0bfce16fbc2
      https://github.com/wesnoth/wesnoth/commit/c617983d03b280c43734e6afa8c7f0bfce16fbc2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/widget.cpp
    M src/sdl/rect.cpp

  Log Message:
  -----------
  Use get_renderer() over *get_window()

This doesn't appear to have been an issue in the rectangle drawing code at least, but it should guard
against possible segfaults in the future.


  Commit: eee0880bfb313b97d069b6d536f55831efefc332
      https://github.com/wesnoth/wesnoth/commit/eee0880bfb313b97d069b6d536f55831efefc332
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

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

  Log Message:
  -----------
  Added a texture cache

Note this probably doesn't work properly yet since I haven't properly implemented shared management
of textures in their wrapper class.


  Commit: 38cf75cb411c1994774160c13fabff6375fc0e49
      https://github.com/wesnoth/wesnoth/commit/38cf75cb411c1994774160c13fabff6375fc0e49
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/texture.cpp
    M src/sdl/texture.hpp

  Log Message:
  -----------
  Texture: converted internal handling to use a shared_ptr

This allows multiple texture objects to refer to the same texture without destroying them prematurely.
This is different from the SDL_Surface wrapper's implementation since surfaces have their own internal
refcounting system; textures do not.


  Commit: 277b97834d8b13b1c027de813b872c2f0d7e4331
      https://github.com/wesnoth/wesnoth/commit/277b97834d8b13b1c027de813b872c2f0d7e4331
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: disable surface manip w/ accelerated rendering for stretch resize mode

RenderCopy handles that automatically.


  Commit: b55ac521045523237299d3a659aecf8c8e92d081
      https://github.com/wesnoth/wesnoth/commit/b55ac521045523237299d3a659aecf8c8e92d081
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/render_utils.hpp

  Log Message:
  -----------
  Fixed raii renderer rect setters

This fixes a problem that occurred if no previous set rect was available. In that case, both SDL_RenderGetClipRect
and SDL_RenderGetViewport returned empty rects and those were being set as the appropriate clip rects when the raii
object was destroyed.


  Commit: 0ca1a9359a8569ed19abd8f5e4e8e793058dd54c
      https://github.com/wesnoth/wesnoth/commit/0ca1a9359a8569ed19abd8f5e4e8e793058dd54c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/sdl/utils.cpp
    M src/sdl/utils.hpp

  Log Message:
  -----------
  Enabled drawing of minimap in-game


  Commit: d0e2d3a07c94c1df9091d6416d58b7211f6d6a8c
      https://github.com/wesnoth/wesnoth/commit/d0e2d3a07c94c1df9091d6416d58b7211f6d6a8c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/controller_base.cpp
    M src/editor/controller/editor_controller.cpp
    M src/events.cpp
    M src/events.hpp
    M src/gui/core/event/handler.cpp
    M src/gui/widgets/window.cpp
    M src/wesnoth.cpp

  Log Message:
  -----------
  Moved GUI2's per-frame drawing trigger to global scope

This is derived from work originally done by @aginor (48bcb277d4). I cherry-picked that commit and made a few alterations.


  Commit: 9da6be7429b5e50dc2418073c36b449a47df2da7
      https://github.com/wesnoth/wesnoth/commit/9da6be7429b5e50dc2418073c36b449a47df2da7
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/image_default.cfg

  Log Message:
  -----------
  GUI2/Image: added tiled-to-size image definition


  Commit: ba9fd0ba1e4e143d009500a613aa9fe254896236
      https://github.com/wesnoth/wesnoth/commit/ba9fd0ba1e4e143d009500a613aa9fe254896236
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/widgets/minimap.cpp

  Log Message:
  -----------
  GUI2/Miniap: draw any provided canvas data before the minimap


  Commit: 64a47ebc3ea40916809b4eabbda096344703578f
      https://github.com/wesnoth/wesnoth/commit/64a47ebc3ea40916809b4eabbda096344703578f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/toggle_button_icon.cfg

  Log Message:
  -----------
  GUI2: fixed some overlay drawing issues with icon toggle buttons

Not sure why, but in some cases the overlay calculations were getting screwed up. This makes them use
the general centered image macro, with accompanying fallback safety checks.


  Commit: 6a37d0c29606f685098dc25cdb29ab722564f687
      https://github.com/wesnoth/wesnoth/commit/6a37d0c29606f685098dc25cdb29ab722564f687
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/image_default.cfg

  Log Message:
  -----------
  GUI2/Image: added scaled-to-size definition


  Commit: 2f6034d699ca2eeef1b39c045c328056b356c478
      https://github.com/wesnoth/wesnoth/commit/2f6034d699ca2eeef1b39c045c328056b356c478
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/toggle_button_icon.cfg

  Log Message:
  -----------
  GUI2/Toggle Button: added medium-sized icon button definition


  Commit: 8499d0fddf8dca9402b52c9bb2f5384d8077a012
      https://github.com/wesnoth/wesnoth/commit/8499d0fddf8dca9402b52c9bb2f5384d8077a012
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/core/images/themes/classic/menubar.png
    A data/gui/window/game_ui.cfg
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/wesnoth
    A src/gui/dialogs/game_ui.cpp
    A src/gui/dialogs/game_ui.hpp
    M src/playsingle_controller.cpp

  Log Message:
  -----------
  Added static prototype for GUI2 in-game theme


  Commit: 73aeddf48c532328428cae1c4ba9baefbaa45795
      https://github.com/wesnoth/wesnoth/commit/73aeddf48c532328428cae1c4ba9baefbaa45795
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/libwesnoth
    M src/arrow.cpp
    M src/arrow.hpp
    M src/display.cpp
    M src/display.hpp
    A src/drawing_buffer.cpp
    A src/drawing_buffer.hpp
    M src/editor/editor_display.cpp
    M src/game_display.cpp
    M src/units/animation.cpp
    M src/units/drawer.cpp
    M src/units/frame.cpp
    M src/whiteboard/attack.cpp
    M src/whiteboard/manager.cpp
    M src/whiteboard/move.cpp
    M src/whiteboard/recall.cpp
    M src/whiteboard/recruit.cpp
    M src/whiteboard/suppose_dead.cpp

  Log Message:
  -----------
  Decoupled drawing buffer code from display class


  Commit: f528a642a4af335a22c3f9bded7581c55280dfa1
      https://github.com/wesnoth/wesnoth/commit/f528a642a4af335a22c3f9bded7581c55280dfa1
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/unit.cpp

  Log Message:
  -----------
  Unit: fixed hp and xp colors having 0 alpha


  Commit: 96f2e151bcb143b3062b8737269fc10cff528b30
      https://github.com/wesnoth/wesnoth/commit/96f2e151bcb143b3062b8737269fc10cff528b30
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/editor/editor_display.cpp
    M src/gui/widgets/minimap.cpp
    M src/playsingle_controller.cpp
    M src/sdl/utils.cpp
    M src/units/drawer.cpp
    M src/units/drawer.hpp
    M src/units/frame.cpp
    M src/video.cpp
    M src/video.hpp
    M src/whiteboard/attack.cpp
    M src/whiteboard/suppose_dead.cpp

  Log Message:
  -----------
  Initial refactor for main-screen accelerated rendering


  Commit: ddadb3f1eab19569627599b8f1478ab24a35b58f
      https://github.com/wesnoth/wesnoth/commit/ddadb3f1eab19569627599b8f1478ab24a35b58f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/event/handler.cpp

  Log Message:
  -----------
  GUI2: moved event handling into main context

Not sure why I need to call join() in connect() instead of the ctor, though.


  Commit: 6054bd4296e02f9f6a2a8b49ed710de1fceaf532
      https://github.com/wesnoth/wesnoth/commit/6054bd4296e02f9f6a2a8b49ed710de1fceaf532
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/drawer.cpp

  Log Message:
  -----------
  Draw units under bars/orbs/etc


  Commit: f08c8a356a425f1ed629cba3ede6758081ebd5d6
      https://github.com/wesnoth/wesnoth/commit/f08c8a356a425f1ed629cba3ede6758081ebd5d6
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp
    M src/video.hpp

  Log Message:
  -----------
  Video: expand render_copy to take flip arguments

Still needs to handle rotation.


  Commit: 59fbd4742b96ecba23c505e9b7bd2f90775834f0
      https://github.com/wesnoth/wesnoth/commit/59fbd4742b96ecba23c505e9b7bd2f90775834f0
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: made use of CVideo::render_copy


  Commit: 02fc3b451bc5c1bf6593379e170d08f9309dba91
      https://github.com/wesnoth/wesnoth/commit/02fc3b451bc5c1bf6593379e170d08f9309dba91
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/play_controller.cpp

  Log Message:
  -----------
  Fixed play_controller not joining current event context

Was broken when I moved the GUI2 drawing trigger code to global scope probably.


  Commit: 454876c6dd806abfd83278dcc1961fc4d2225e93
      https://github.com/wesnoth/wesnoth/commit/454876c6dd806abfd83278dcc1961fc4d2225e93
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/drawer.cpp

  Log Message:
  -----------
  Uint: fixed bad bar alpha on unit mouseover


  Commit: d1e8dc5f4f3fc0007d4d7a8dcfb22deb406c2f78
      https://github.com/wesnoth/wesnoth/commit/d1e8dc5f4f3fc0007d4d7a8dcfb22deb406c2f78
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/arrow.cpp
    M src/display.cpp
    M src/display.hpp
    M src/editor/editor_display.cpp
    M src/floating_label.cpp
    M src/floating_label.hpp
    M src/game_display.cpp
    M src/game_display.hpp
    M src/units/drawer.cpp
    M src/units/frame.cpp
    M src/units/udisplay.cpp
    M src/whiteboard/attack.cpp
    M src/whiteboard/suppose_dead.cpp

  Log Message:
  -----------
  Another huge chunk of progress


  Commit: cd149a2141ac39a0e43f8004d0ccba21c580906f
      https://github.com/wesnoth/wesnoth/commit/cd149a2141ac39a0e43f8004d0ccba21c580906f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/actions/advancement.cpp
    M src/actions/move.cpp
    M src/actions/undo.cpp
    M src/actions/unit_creator.cpp
    M src/controller_base.cpp
    M src/editor/action/action_item.cpp
    M src/editor/action/action_unit.cpp
    M src/menu_events.cpp
    M src/mouse_events.cpp
    M src/mouse_handler_base.cpp
    M src/playmp_controller.cpp
    M src/playsingle_controller.cpp
    M src/scripting/game_lua_kernel.cpp

  Log Message:
  -----------
  Removed draw() calls into the display class

Not needed anymore since per-frame drawing is handled within said class.


  Commit: 18e1144490c9a56810f4b6528b5b914ceda4ba2a
      https://github.com/wesnoth/wesnoth/commit/18e1144490c9a56810f4b6528b5b914ceda4ba2a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/window.cpp
    M src/sdl/window.hpp

  Log Message:
  -----------
  SDL/Window: added getter for output size (pixels)


  Commit: 298d896a0a8738dbf02d7cb05934d13cdf95b522
      https://github.com/wesnoth/wesnoth/commit/298d896a0a8738dbf02d7cb05934d13cdf95b522
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  Video: removed reliance on framebuffer for window dimensions

Apparently there is no window surface when using accelerated rendering. This is likely why there
were crashes on Linux.


  Commit: 1e5708772c22d08d12d9035aa136e2d9cd3e965c
      https://github.com/wesnoth/wesnoth/commit/1e5708772c22d08d12d9035aa136e2d9cd3e965c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/events.cpp
    M src/video.cpp
    M src/video.hpp

  Log Message:
  -----------
  Video: (almost) completely removed framebuffer surface

Again, useless since there's no more window surface with accelerated rendering.
getSurface() remains since it's still used in quite a lot of places. Will removed ASAP.


  Commit: a41a4e87ad9b6742fba5b8065a38330b2401d190
      https://github.com/wesnoth/wesnoth/commit/a41a4e87ad9b6742fba5b8065a38330b2401d190
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/tests/utils/fake_display.cpp
    M src/video.cpp
    M src/video.hpp

  Log Message:
  -----------
  Video: removed unused arguments from make_test_fake


  Commit: e68d0b63499f8616ecaa1eac09568414129d3b60
      https://github.com/wesnoth/wesnoth/commit/e68d0b63499f8616ecaa1eac09568414129d3b60
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/game_display.cpp
    M src/units/drawer.cpp

  Log Message:
  -----------
  Got a bunch more components drawing

Reachmaps, attack indicators, shroud/fog (incomplete).


  Commit: 9dae0507bd3d5a1386cc1a8f20ce8154ed0fa668
      https://github.com/wesnoth/wesnoth/commit/9dae0507bd3d5a1386cc1a8f20ce8154ed0fa668
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Enabled more stuff drawing

Hex overlay, map items, fog/shroud transitions.


  Commit: a02c4382b571c43e2a14b7fef0e02313f32e9304
      https://github.com/wesnoth/wesnoth/commit/a02c4382b571c43e2a14b7fef0e02313f32e9304
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/controller_base.cpp
    M src/editor/controller/editor_controller.cpp
    M src/play_controller.cpp
    M src/playsingle_controller.cpp
    M src/replay_controller.cpp

  Log Message:
  -----------
  Removed most call to raise_draw_event

These don't seem necessary anymore since draw handling happens per-frame and doesn't rely
on calling derived class's draw() member.


  Commit: bfb67f31a753f0a392810ea763aa9c5aeae514fc
      https://github.com/wesnoth/wesnoth/commit/bfb67f31a753f0a392810ea763aa9c5aeae514fc
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  Video: enabled VSync for renderer (experimental)


  Commit: a3f909c7794b7df402648af941aad7cab23409ac
      https://github.com/wesnoth/wesnoth/commit/a3f909c7794b7df402648af941aad7cab23409ac
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/drawer.cpp

  Log Message:
  -----------
  Units: fixed bad HP/XP bars fill rect offset


  Commit: c882e91854316ce2e552700f7050b0400611cb57
      https://github.com/wesnoth/wesnoth/commit/c882e91854316ce2e552700f7050b0400611cb57
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: fixed mirrored images being flipped on the wrong axis.


  Commit: 0b7e5924a77c8f3637014639fd6f2b3a16096177
      https://github.com/wesnoth/wesnoth/commit/0b7e5924a77c8f3637014639fd6f2b3a16096177
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Cleaned up the implementation of display::scroll()


  Commit: 8ac0b0cd9f21ebf62c407b8f150cbde8978fb38b
      https://github.com/wesnoth/wesnoth/commit/8ac0b0cd9f21ebf62c407b8f150cbde8978fb38b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/actions/move.cpp

  Log Message:
  -----------
  Removed an unused variable

Not needed after I removed the draw() calls into the display class


  Commit: 31c39a3ab390e1202d8befc541d9e331e937b461
      https://github.com/wesnoth/wesnoth/commit/31c39a3ab390e1202d8befc541d9e331e937b461
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

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

  Log Message:
  -----------
  Extended implementation of the texture cache

Instead of always loading a surface at the same time, textures are now loaded directly from disk if applicable.
Instead, surfaces are only loaded if applicable to apply some effect that cannot as of now be done with texture
manipulation since we dont have shader support yet.

In that vein, I've also added two new texture caches, one for masked-to-hex images and one for ToD colored images.


  Commit: ac4deaff60e5f57a5dde6b84fa1dd90093ed0ed2
      https://github.com/wesnoth/wesnoth/commit/ac4deaff60e5f57a5dde6b84fa1dd90093ed0ed2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Trim ToD images to hex


  Commit: cf0c42cbce262c2a339d267002a42b4aae0f9862
      https://github.com/wesnoth/wesnoth/commit/cf0c42cbce262c2a339d267002a42b4aae0f9862
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Temporarily disable map label position update on map scroll

There are a bunch of problems with this I need to fix.


  Commit: 3b34cbb3b31e175152729aff64aeffdeafb8f8c1
      https://github.com/wesnoth/wesnoth/commit/3b34cbb3b31e175152729aff64aeffdeafb8f8c1
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/gui/widgets/widget.cpp
    M src/video.cpp

  Log Message:
  -----------
  Removed software rendering fallback

I've decided to commit fully to accelerated rendering.


  Commit: bbc0f25fea65f7302bd71c97fcc87636155792c3
      https://github.com/wesnoth/wesnoth/commit/bbc0f25fea65f7302bd71c97fcc87636155792c3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/gui/core/canvas_private.hpp

  Log Message:
  -----------
  GUI2/Canvas: refactor surface use out of image rendering

The only real reason to keep using a surface was in order to have resize mode manipulations. I've now added
texture-only handling methods (the tiling one was borrowed from display.cpp's draw_background function).


  Commit: 441acdaf3e26c5b16e88a4e222a31a56e9fb6ea7
      https://github.com/wesnoth/wesnoth/commit/441acdaf3e26c5b16e88a4e222a31a56e9fb6ea7
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/libwesnoth_sdl
    M src/editor/editor_display.cpp
    M src/events.cpp
    M src/game_display.cpp
    A src/ogl/context.cpp
    A src/ogl/context.hpp
    A src/ogl/utils.cpp
    A src/ogl/utils.hpp
    M src/playsingle_controller.cpp
    M src/sdl/window.cpp
    M src/video.cpp
    M src/video.hpp

  Log Message:
  -----------
  Some initial code (disabled for now) for setting up an OGL context

In the interests of getting this all done faster, I've decided to postpone work on the OGL implementation for now
and focus on the SDL_Renderer version. This contains some basic code (include-guarded) for setting up an OGL context
for the main SDL window.


  Commit: d3527e9eba3a709847fcf0502081c6069cc453e6
      https://github.com/wesnoth/wesnoth/commit/d3527e9eba3a709847fcf0502081c6069cc453e6
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

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

  Log Message:
  -----------
  Allowed IPFs to work again when using the texture cache

See create_texture_from_sub_file doc comment for more info.


  Commit: bb02ae366c2b15c0b0fcdbbe07bd7f06fa27c2b5
      https://github.com/wesnoth/wesnoth/commit/bb02ae366c2b15c0b0fcdbbe07bd7f06fa27c2b5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  GUI2/Canvas: set clip rect when tiling images

This fixes an issue where images could be tiled outside their desired size area.


  Commit: 81c0d4c69299947711f2b055473da2f3747cb494
      https://github.com/wesnoth/wesnoth/commit/81c0d4c69299947711f2b055473da2f3747cb494
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/window_default.cfg

  Log Message:
  -----------
  GUI2/Window: draw background image first instead of last

Originally was going to do this as workaround for the background tiling over the borders,
but I fixed the root cause of that instead. Still, this just makes more sense.


  Commit: f8cf25496d622aafe9bb70f7058d0071ab932fbb
      https://github.com/wesnoth/wesnoth/commit/f8cf25496d622aafe9bb70f7058d0071ab932fbb
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/dialogs/outro.cpp
    M src/gui/dialogs/story_viewer.cpp

  Log Message:
  -----------
  GUI2: removed some unnecessary calls to canvas::set_is_dirty

The one in Outro was unnecessary since set_variable already calls set_is_dirty.
The one in the Story Viewer was there to deal with some background redraw issues which no longer appear
with the new drawing methods.


  Commit: f9c0995ce02a757cd321697ccdcfe0864d45474a
      https://github.com/wesnoth/wesnoth/commit/f9c0995ce02a757cd321697ccdcfe0864d45474a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/window.cpp
    M src/sdl/window.hpp

  Log Message:
  -----------
  SDL/Window: removed pixel format member and promoted renderer info wholly to class member

The pixel format member was really rather useless, since SDL_RenderInfo returns an array of supported
formats and only the first one was being saved.


  Commit: 20f3f47740d42fe50e4c5ca86ffd717befbd1971
      https://github.com/wesnoth/wesnoth/commit/20f3f47740d42fe50e4c5ca86ffd717befbd1971
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/render_utils.hpp
    M src/sdl/texture.cpp

  Log Message:
  -----------
  Added some inline wrappers for SDL_SetTexture* functions


  Commit: f095e576c1f8b783629cb627b4f82d93840d9094
      https://github.com/wesnoth/wesnoth/commit/f095e576c1f8b783629cb627b4f82d93840d9094
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/game_display.cpp
    M src/halo.cpp
    M src/halo.hpp

  Log Message:
  -----------
  Refactored halo code to bring it in line with new drawing methods

This basically rips out all the unrendering and invalidation code. Neither is needed anymore.
Instead, we can have a simple, clean, "just draw the managed halos" interface.

Note there's an issue unrelated to this where halos aren't removed when a unit is killed with
the debug kill menu command.


  Commit: 61a1122f6c99c58e962e9669e64b578d09f768e8
      https://github.com/wesnoth/wesnoth/commit/61a1122f6c99c58e962e9669e64b578d09f768e8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/animation.cpp
    M src/units/animation_component.cpp
    M src/units/drawer.cpp
    M src/units/frame.cpp

  Log Message:
  -----------
  Use shared_ptr::reset for clearing halo handlers


  Commit: e2677d791d5078e6813bbe8f9204140d3aa8e4af
      https://github.com/wesnoth/wesnoth/commit/e2677d791d5078e6813bbe8f9204140d3aa8e4af
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/frame.cpp

  Log Message:
  -----------
  Restored alpha handling of unit frames

Still need to figure out the blending effects or submerge alpha.


  Commit: f98c22514a307b54fd4de042af39dec74d4be60e
      https://github.com/wesnoth/wesnoth/commit/f98c22514a307b54fd4de042af39dec74d4be60e
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/dialogs/editor/custom_tod.cpp
    M src/gui/dialogs/editor/custom_tod.hpp
    M src/gui/dialogs/loading_screen.cpp
    M src/gui/dialogs/modeless_dialog.cpp
    M src/gui/widgets/window.cpp
    M src/gui/widgets/window.hpp

  Log Message:
  -----------
  GUI2/Window: removed empty undraw() function

This was emptied earlier in my refactor when window unrendering was removed. I simply hadn't
removed the function yet.


  Commit: 943ab656aaa39e5481d5364383543dc63d1990b5
      https://github.com/wesnoth/wesnoth/commit/943ab656aaa39e5481d5364383543dc63d1990b5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/gui/core/canvas.cpp
    M src/image.cpp
    M src/image.hpp
    M src/sdl/render_utils.hpp
    M src/sdl/window.cpp

  Log Message:
  -----------
  Split texture caches into linear and NN scaled versions

With textures, you can't change render scale quality once they've been created. To rectify this, I've
made the texture caches a map of caches, sorted by scale quality. This should result in no performance
overhead, since an image is simply added to the appropriate quality cache on creation instead of in
a single cache. If a different version of a texture is needed it will be loaded later.

By default, load_texture will return images using nearest neighbor scaling. GUI2 always fetches images
using linear scaling. This is consistent with the old software rendering method. Plus, we don't have
any way (as of now) to specify the render quality on a per-image basis.


  Commit: 5ae0a556d83aeebf7a0d88845f9d6737e141804d
      https://github.com/wesnoth/wesnoth/commit/5ae0a556d83aeebf7a0d88845f9d6737e141804d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/font/text.cpp
    M src/font/text.hpp
    M src/gui/core/canvas.cpp
    M src/gui/widgets/styled_widget.hpp

  Log Message:
  -----------
  Added a getter for a static pango_text object

The reason I added this was so I can refactor some temporary pango_text objects out of the display class.
styled_widget doesn't use this for reasons explained in the comment.


  Commit: 674dae10b2601eeb0b1936480c5a5df58ef36334
      https://github.com/wesnoth/wesnoth/commit/674dae10b2601eeb0b1936480c5a5df58ef36334
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/window/addon_manager.cfg

  Log Message:
  -----------
  GUI2/Addon Manager: removed some excessive borders in the low resolution definition


  Commit: cd357f2805a68f1d650b6d6a183b1cefecb4c8eb
      https://github.com/wesnoth/wesnoth/commit/cd357f2805a68f1d650b6d6a183b1cefecb4c8eb
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/addon_list.cfg
    M src/gui/widgets/addon_list.cpp

  Log Message:
  -----------
  GUI2/Addon List: restrict markup to name and installation status fields

We don't want markup in any of the other fields. I still need to find a slightly better solution for the name
field, though. We don't want users to be able to use markup unnecessairly, but we do need markup to highlight
the names of ready-to-upload addons.

This fixes warnings about unescaped ampersands in the Author field.


  Commit: dcbd625014c56e125dceed1b6f138415272d07b2
      https://github.com/wesnoth/wesnoth/commit/dcbd625014c56e125dceed1b6f138415272d07b2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    A data/gui/window/command_console.cfg
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/wesnoth
    M src/controller_base.cpp
    A src/gui/dialogs/command_console.cpp
    A src/gui/dialogs/command_console.hpp
    M src/menu_events.cpp
    M src/menu_events.hpp
    M src/play_controller.cpp
    M src/play_controller.hpp
    M src/playsingle_controller.cpp
    M src/playsingle_controller.hpp

  Log Message:
  -----------
  Port floating textbox/command console to GUI2

The old floating textbox was extremely entwined with the controller_base, play_controller, and menu_handler
classes. controller_base::have_keyboard_focus essentially controlled whether some events were executed based
on whether the floating textbox was open or not. Additionally, those events weren't even reached if a UI dialog
was open at all.

The new design features a singleton console class that can be called from anywhere, not just the game. I've also
decoupled the execution object from play_controller. The relevant functions in menu_handler are now passed to
the console as callbacks.

To work around map events such as clicking not being available if the console was open, I removed the exclusionary
is-in-dialog check from controller_base::handle_event and instead exit early out certain types of events using
controller_base::have_keyboard_focus. As mentioned in the accompanying comment, this isn't the best solution, but
it will do for now.

The new console also isn't fully feature-comparable with the old GUI1 one. The following are still missing:
* The checbox, for use when sending messages.
* Tab completion.
* A crash occurs when existing the app if a game was exited with the console open.

I'm leaving the old floating_textbox code around for now for reference.


  Commit: 79787a786a5673539cc37115afae91e24304bb35
      https://github.com/wesnoth/wesnoth/commit/79787a786a5673539cc37115afae91e24304bb35
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M data/gui/widget/panel_box_display.cfg

  Log Message:
  -----------
  GUI2/Panel: remove border from small-res box_display_no_blur_no_border definition


  Commit: 3b5683f6defa2a00d2e79db4a5ac07a978c61d9b
      https://github.com/wesnoth/wesnoth/commit/3b5683f6defa2a00d2e79db4a5ac07a978c61d9b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/floating_label.cpp

  Log Message:
  -----------
  Floating Label: formatting update


  Commit: 612a865ff99935c1ad7334267157dd310b1ad3f9
      https://github.com/wesnoth/wesnoth/commit/612a865ff99935c1ad7334267157dd310b1ad3f9
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/floating_label.cpp
    M src/floating_label.hpp
    M src/tooltips.cpp

  Log Message:
  -----------
  Refactored floating_label implementation

* Store label as a texture instead of creating a texture from a surface every draw cycle
* Restored expired label removal and alpha fadeout (was accidentally removed earlier in my refactoring)
* Use alpha field of bg_color member for background color
* Draw tooltip backgrounds procedurally instead of with surfaces and part of the label texture itself.
  See included comment for small caveat.


  Commit: a01efca8c9fdeb74438ce387457ee174f9eca436
      https://github.com/wesnoth/wesnoth/commit/a01efca8c9fdeb74438ce387457ee174f9eca436
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Display: restrict render clip rect setter to map drawing scope only

This prevents tooltips from being cut off.


  Commit: aa8f6c7e78cc1c920632ecc8ac25706cf9f9a1a5
      https://github.com/wesnoth/wesnoth/commit/aa8f6c7e78cc1c920632ecc8ac25706cf9f9a1a5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/window.cpp
    M src/sdl/window.hpp
    M src/video.cpp

  Log Message:
  -----------
  Fixed some issues with the resolution list (fixes #1772)

Awhile back I added some code to remove any resolutions from the list that exceeded the current DPI.
I seem to have misunderstood some of the functionality.

First, off, GetCurrentDisplayMode doesn't seem to return current resolution. From my tests, it seems
to return a "maximum maximized size" of some sort equal to GetUsableDisplayBounds - 1 (see below):

* Render output size: 800, 600
* Display mode size: 1536, 864
* Window size: 800, 600
* Display Bounds: x: 0, y: 0, w: 1537, h: 865
* Usable display bounds: x: 0, y: 0, w: 1537, h: 865

The actual
window size, which @celticminstrel informs me is what we should be measuring here, is actually returned
by either GetWindowSize or GetRenderOutputSize. According to SDL, the latter should return pixel size
and the former screen coordinates. In my tests, though, the results are the same. This might be different
on macOS or iOS. Either way, I've changed current_resolution(), getx(), and gety() to use the results of
GetWindowSize().

Additionally, it seems I don't need to multiply any display modes by the DPI scale factor if I check the
sizes against the aforementioned "max maximized area" w/h. For that I use GetDisplayBounds however...
though again, I'm not sure that's the best way to do this. It does seem to work correctly to fix the
aforementioned bug, anyway. I'll need to figure out more about the handling of DPI on Windows vs macOS
or iOS. There's an implication that the measurements some of these functions return is different.


  Commit: ac1bdd25bb18be9e8e8076faa309fc141dd079e8
      https://github.com/wesnoth/wesnoth/commit/ac1bdd25bb18be9e8e8076faa309fc141dd079e8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  CVideo: create window with high DPI enabled


  Commit: da5795718c37b29a95b6907d66841152697f3739
      https://github.com/wesnoth/wesnoth/commit/da5795718c37b29a95b6907d66841152697f3739
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/image.cpp

  Log Message:
  -----------
  Improved console output on IPF fail

Yes, I know the duplicate code should be consolidated.


  Commit: f5a302aa60aa1d8957a45896cf7d35f61dde3221
      https://github.com/wesnoth/wesnoth/commit/f5a302aa60aa1d8957a45896cf7d35f61dde3221
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/events.cpp
    M src/events.hpp
    M src/gui/core/event/handler.cpp
    M src/show_dialog.cpp
    M src/video.cpp
    M src/video.hpp
    M src/widgets/widget.cpp

  Log Message:
  -----------
  Refactor and cleanup of the drawing dispatch system

Previously, drawing was handled with custom DRAW and DRAW_ALL events which individual event handlers
managed. DRAW was used for only-as-needed draws, and DRAW_ALL for drawing everything. As we've switched
to accelerated rendering, we've switched to the latter model all the time; everything is always drawn.

Both DRAW and DRAW_ALL events aren't needed anymore and have been removed. Instead, we simply call each
handler's draw() function directly from events::pump. The two main cases that handled draw events - the
display class and GUI2 - just forwarded the event handler calls to their respective draw() functions anyway.

Awhile back to unconditionally send draw events to the event queue constantly every 20 ms. However, to prevent
draw calls from becoming backed up, the queue already had code to remove all but 1 draw event from the queue
anyway, so the actual rate of drawing was still reliant on the rate at which events::pump was called. Therefor
this commit should result in no change at the rate the screen is drawn.


  Commit: 6638add3037e45923b09c3441b990c70eda6cedc
      https://github.com/wesnoth/wesnoth/commit/6638add3037e45923b09c3441b990c70eda6cedc
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M projectfiles/CodeBlocks/wesnoth.cbp
    M source_lists/libwesnoth
    M src/arrow.cpp
    M src/arrow.hpp
    M src/display.cpp
    M src/display.hpp
    R src/drawing_buffer.cpp
    R src/drawing_buffer.hpp
    A src/drawing_queue.cpp
    A src/drawing_queue.hpp
    M src/editor/editor_display.cpp
    M src/game_display.cpp
    M src/units/animation.cpp
    M src/units/drawer.cpp
    M src/units/frame.cpp
    M src/units/frame.hpp
    M src/whiteboard/attack.cpp
    M src/whiteboard/manager.cpp
    M src/whiteboard/move.cpp
    M src/whiteboard/recall.cpp
    M src/whiteboard/recruit.cpp
    M src/whiteboard/suppose_dead.cpp

  Log Message:
  -----------
  Renamed drawing_buffer to drawing_queue

Also renamed drawing_queue::drawing_layer to just 'layer'.


  Commit: 151bc644b26df337911073a1dd8bc2a9d26faa24
      https://github.com/wesnoth/wesnoth/commit/151bc644b26df337911073a1dd8bc2a9d26faa24
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Fixed halos drawing over fog and shroud (fixes #1406)


  Commit: d10ed8511afb864b6d55c08f9e2f8e72ab5448b5
      https://github.com/wesnoth/wesnoth/commit/d10ed8511afb864b6d55c08f9e2f8e72ab5448b5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Restore map label position anchoring

Also optimized the scroll() function a little to exit early if no change would occur.


  Commit: f2c27564d84d113de15594dc68213697b686a9cc
      https://github.com/wesnoth/wesnoth/commit/f2c27564d84d113de15594dc68213697b686a9cc
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/window.cpp

  Log Message:
  -----------
  SDL/Window: throw exception if render-to-texture is not enabled

NOTE: for some reason, if I remove the `SDL_RENDERER_TARGETTEXTURE` flag from sdl::window's ctor
render_flags argument, this assertion still doesn't throw. Not sure if that means by GPU supports
it by default, or what.


  Commit: 166aad8f2598e2e76084bb53fee81205b3f4f6b8
      https://github.com/wesnoth/wesnoth/commit/166aad8f2598e2e76084bb53fee81205b3f4f6b8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/actions/advancement.cpp
    M src/actions/attack.cpp
    M src/actions/create.cpp
    M src/actions/move.cpp
    M src/actions/undo_recall_action.cpp
    M src/actions/undo_recruit_action.cpp
    M src/actions/unit_creator.cpp
    M src/actions/vision.cpp
    M src/arrow.cpp
    M src/arrow.hpp
    M src/display.cpp
    M src/display.hpp
    M src/editor/action/mouse/mouse_action_item.cpp
    M src/editor/action/mouse/mouse_action_unit.cpp
    M src/editor/controller/editor_controller.cpp
    M src/editor/editor_display.cpp
    M src/editor/map/context_manager.cpp
    M src/fake_unit_manager.cpp
    M src/floating_textbox.cpp
    M src/game_display.cpp
    M src/game_display.hpp
    M src/gui/dialogs/editor/custom_tod.cpp
    M src/menu_events.cpp
    M src/play_controller.cpp
    M src/playsingle_controller.cpp
    M src/replay_controller.cpp
    M src/scripting/game_lua_kernel.cpp
    M src/synced_commands.cpp
    M src/units/animation.cpp
    M src/units/udisplay.cpp
    M src/whiteboard/attack.cpp
    M src/whiteboard/attack.hpp
    M src/whiteboard/manager.cpp
    M src/whiteboard/move.cpp
    M src/whiteboard/recall.cpp
    M src/whiteboard/recall.hpp
    M src/whiteboard/recruit.cpp
    M src/whiteboard/recruit.hpp
    M src/whiteboard/side_actions.cpp
    M src/whiteboard/suppose_dead.cpp
    M src/whiteboard/suppose_dead.hpp
    M src/whiteboard/utility.cpp

  Log Message:
  -----------
  Display: removed all the invalidated locations code

This removes all the code related to invalidating locations, any functions used to set, modify, or propagate
location invalidation, and several functions that no longer serve any purpose anymore since their only purpose
was to handle invalidated locations.


  Commit: 60111e08c270b1c08fa5c301afcc71d98b492a0e
      https://github.com/wesnoth/wesnoth/commit/60111e08c270b1c08fa5c301afcc71d98b492a0e
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/actions/move.cpp
    M src/display.cpp
    M src/units/animation.cpp
    M src/units/animation.hpp
    M src/units/animation_component.cpp
    M src/units/animation_component.hpp
    M src/whiteboard/manager.cpp

  Log Message:
  -----------
  Removed animation invalidation code

This no longer actually does anything now that location invalidation is removed. If you follow the code
animation_component::invalidate called unit_animation::invalidate which was responsible for generating
the overlaped_hex_ set. Previously, this is what locations were invalidated. Now it didn't do anything.


  Commit: 728d761f3f410459bc879fe1ae8d5ae76928465e
      https://github.com/wesnoth/wesnoth/commit/728d761f3f410459bc879fe1ae8d5ae76928465e
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/actions/attack.cpp
    M src/actions/vision.cpp
    M src/display.cpp
    M src/display.hpp
    M src/editor/controller/editor_controller.cpp
    M src/editor/map/context_manager.cpp
    M src/gui/dialogs/editor/custom_tod.cpp
    M src/play_controller.cpp
    M src/replay_controller.cpp
    M src/scripting/game_lua_kernel.cpp
    M src/units/udisplay.cpp

  Log Message:
  -----------
  Display: removed old drawing code and external draw calls


  Commit: 725eac9bbfb2bf8aadf0447afabb04cbbc7c3318
      https://github.com/wesnoth/wesnoth/commit/725eac9bbfb2bf8aadf0447afabb04cbbc7c3318
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/units/drawer.cpp
    M src/units/frame.cpp

  Log Message:
  -----------
  Fixed some bad drawing offsets and sizes when zoomed in

This fixes HP/XP bar size (wasn't scaled to zoom) and placement, as well as crown/orb and main sprite placement.


  Commit: df95c4291d37c78a1bada2fbf7ecdaab2305f0b3
      https://github.com/wesnoth/wesnoth/commit/df95c4291d37c78a1bada2fbf7ecdaab2305f0b3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/sdl/texture.cpp
    M src/sdl/texture.hpp

  Log Message:
  -----------
  SDL/Texture: made info struct take a texture ptr directly

Will allow me to construct one directly from a pointer if I don't have a wrapper object.


  Commit: c743cc6db3186732c49cb65dfcf2750858b6bdc9
      https://github.com/wesnoth/wesnoth/commit/c743cc6db3186732c49cb65dfcf2750858b6bdc9
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/editor/editor_display.cpp
    M src/editor/editor_display.hpp
    M src/game_display.cpp
    M src/game_display.hpp

  Log Message:
  -----------
  Display: work on refactoring the main drawing system

Previously, every visible hex was iterated over and every element in that hex draw. This was inefficient
for two reasons: First, it meant the performance footprint for many operations like unit drawing was O(n²),
since the list of elements had to be checked for every single hex. Second, it meant the renderer had to
switch active textures many more times than necessary.

My new system involved drawing every element of a specific type at once - ie, all background terrains at
once, all units, all items, etc. This reduces lookup time from O(n²) to O(n) and results in a noticeable
performance increase. It also reduces the number of times the renderer needs to switch active textures,
since bulk draws such as the map grid overlay are now done all at once while that specific texture is
active.

There are still some layering issues and missing elements that need to be sorted, especially in game_display.


  Commit: 314f2d049d3c0b3850317cb029e501024a9feea2
      https://github.com/wesnoth/wesnoth/commit/314f2d049d3c0b3850317cb029e501024a9feea2
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2017-07-09 (Sun, 09 Jul 2017)

  Changed paths:
    M src/video.cpp

  Log Message:
  -----------
  Video: don't render null textures


Compare: https://github.com/wesnoth/wesnoth/compare/646816cf430c...314f2d049d3c


More information about the Commits mailing list