[wesnoth-commits] [wesnoth/wesnoth] 8d6887: SDL/Window: set render scaling method to linear

GitHub noreply at github.com
Tue Mar 13 12:24:19 UTC 2018


  Branch: refs/heads/accelerated_rendering
  Home:   https://github.com/wesnoth/wesnoth
  Commit: 8d68873242e1f0a7b509a4d9ad340d43e30a7097
      https://github.com/wesnoth/wesnoth/commit/8d68873242e1f0a7b509a4d9ad340d43e30a7097
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 9e01214d19b0759f42a9d7b63cdefd0ba24b06ab
      https://github.com/wesnoth/wesnoth/commit/9e01214d19b0759f42a9d7b63cdefd0ba24b06ab
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/video.cpp

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


  Commit: 12c336080cc8aa9d8659700253b5d7b2eb6cb779
      https://github.com/wesnoth/wesnoth/commit/12c336080cc8aa9d8659700253b5d7b2eb6cb779
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 3e5176e0dfa13616f0898ad3dd5137b5c817f576
      https://github.com/wesnoth/wesnoth/commit/3e5176e0dfa13616f0898ad3dd5137b5c817f576
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Window: re-implement drawing and removed commented-out restore code

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


  Commit: 49dd7e7ac7d410fd5272bb007f333a2ce348e370
      https://github.com/wesnoth/wesnoth/commit/49dd7e7ac7d410fd5272bb007f333a2ce348e370
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/gui/dialogs/modal_dialog.cpp
    M src/gui/widgets/window.cpp
    M src/gui/widgets/window.hpp
    M src/scripting/lua_gui2.cpp

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


  Commit: e347062ce7411fbc14fd9fbce48ddaa748e1e6c4
      https://github.com/wesnoth/wesnoth/commit/e347062ce7411fbc14fd9fbce48ddaa748e1e6c4
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/addon/manager_ui.cpp
    M src/gui/dialogs/addon/connect.cpp
    M src/gui/dialogs/addon/uninstall_list.cpp
    M src/gui/dialogs/campaign_difficulty.cpp
    M src/gui/dialogs/campaign_selection.hpp
    M src/gui/dialogs/drop_down_menu.hpp
    M src/gui/dialogs/file_dialog.cpp
    M src/gui/dialogs/game_delete.cpp
    M src/gui/dialogs/game_save.cpp
    M src/gui/dialogs/hotkey_bind.cpp
    M src/gui/dialogs/log_settings.cpp
    M src/gui/dialogs/message.cpp
    M src/gui/dialogs/modal_dialog.cpp
    M src/gui/dialogs/modal_dialog.hpp
    M src/gui/dialogs/multiplayer/mp_connect.cpp
    M src/gui/dialogs/multiplayer/mp_host_game_prompt.cpp
    M src/gui/dialogs/network_transmission.cpp
    M src/gui/dialogs/preferences_dialog.cpp
    M src/gui/dialogs/sp_options_configure.cpp
    M src/gui/dialogs/statistics_dialog.cpp
    M src/gui/dialogs/surrender_quit.cpp
    M src/gui/dialogs/title_screen.cpp
    M src/gui/dialogs/transient_message.cpp
    M src/gui/dialogs/transient_message.hpp
    M src/gui/dialogs/unit_create.cpp
    M src/gui/dialogs/wml_error.cpp
    M src/gui/dialogs/wml_message.cpp

  Log Message:
  -----------
  GUI2/Modal Dialog: removed set_restore interface

This was used to set the restore argument of gui2::window::show. It's not needed anymore
since the window class no longer uses surface restoring.


  Commit: 33fe7a0d910c199c4aeceb16a64d7ddb579a6b01
      https://github.com/wesnoth/wesnoth/commit/33fe7a0d910c199c4aeceb16a64d7ddb579a6b01
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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/slider_base.cpp
    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.cpp
    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: c5be895dbe153db5f75f623a656ddda0005114e3
      https://github.com/wesnoth/wesnoth/commit/c5be895dbe153db5f75f623a656ddda0005114e3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 293522e8addfb48491a0f8a913ee6edce78aba51
      https://github.com/wesnoth/wesnoth/commit/293522e8addfb48491a0f8a913ee6edce78aba51
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 0ba0178b06b62052df3618514efee5b9c4059bd5
      https://github.com/wesnoth/wesnoth/commit/0ba0178b06b62052df3618514efee5b9c4059bd5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/font/text.cpp

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


  Commit: 195d4c6dd28747e60cde18ec40e36a1cdb340a81
      https://github.com/wesnoth/wesnoth/commit/195d4c6dd28747e60cde18ec40e36a1cdb340a81
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 44d2dc77449f5fb343f78f56acb1db3e13e6ac34
      https://github.com/wesnoth/wesnoth/commit/44d2dc77449f5fb343f78f56acb1db3e13e6ac34
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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

[ci skip]


  Commit: 39158b3a0647d47f36faad9881a78b2e9894e849
      https://github.com/wesnoth/wesnoth/commit/39158b3a0647d47f36faad9881a78b2e9894e849
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: ba6d5f346c5d38bfe5fe001b87932dcaa7ef2326
      https://github.com/wesnoth/wesnoth/commit/ba6d5f346c5d38bfe5fe001b87932dcaa7ef2326
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 5359c141bfcc3b1566e933025cf460b2bcac2961
      https://github.com/wesnoth/wesnoth/commit/5359c141bfcc3b1566e933025cf460b2bcac2961
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 0d3203fcb6350531624a9d239d5fb3122800532b
      https://github.com/wesnoth/wesnoth/commit/0d3203fcb6350531624a9d239d5fb3122800532b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: d6118e772459b7cfa141cd485c9d6dc6694b0ab3
      https://github.com/wesnoth/wesnoth/commit/d6118e772459b7cfa141cd485c9d6dc6694b0ab3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 0366057476f34bf4819c091143b5462f61726712
      https://github.com/wesnoth/wesnoth/commit/0366057476f34bf4819c091143b5462f61726712
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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

Do note that setting an empty rect in render_raii_rect_setter_base is not the same as passing nullptr.
If an empty rect is passed to SDL_RenderGetClipRect, for example, you can end up with nothing drawing
since everything is being clipped.


  Commit: 80dee74eaafe295b088cdaf8c18168e5b4ad4224
      https://github.com/wesnoth/wesnoth/commit/80dee74eaafe295b088cdaf8c18168e5b4ad4224
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/video.cpp

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


  Commit: 926bba9dcfe8405fffc171ae0fe622cecaaba9cd
      https://github.com/wesnoth/wesnoth/commit/926bba9dcfe8405fffc171ae0fe622cecaaba9cd
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 699cbe71266ce5e20999b5411898f8f201182252
      https://github.com/wesnoth/wesnoth/commit/699cbe71266ce5e20999b5411898f8f201182252
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 71cf01da8b13bf74b73780bbab5dc3faad355e16
      https://github.com/wesnoth/wesnoth/commit/71cf01da8b13bf74b73780bbab5dc3faad355e16
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: a8f857d7a64e1fd2315178c046d24dc989d62130
      https://github.com/wesnoth/wesnoth/commit/a8f857d7a64e1fd2315178c046d24dc989d62130
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 1f1ac7d9873c35d219df935c87baaf5ecc3c6bd5
      https://github.com/wesnoth/wesnoth/commit/1f1ac7d9873c35d219df935c87baaf5ecc3c6bd5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 0780c83778e05ee3b8760b9a75b361d538a2af4c
      https://github.com/wesnoth/wesnoth/commit/0780c83778e05ee3b8760b9a75b361d538a2af4c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 1210e65b4d3ff5047b53975db711502f8a45661c
      https://github.com/wesnoth/wesnoth/commit/1210e65b4d3ff5047b53975db711502f8a45661c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 53eab79e5760a847c3c491baa23557498d9a6a74
      https://github.com/wesnoth/wesnoth/commit/53eab79e5760a847c3c491baa23557498d9a6a74
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 2c7942713c8021045ad057bc6bf9638eb9ebe3b4
      https://github.com/wesnoth/wesnoth/commit/2c7942713c8021045ad057bc6bf9638eb9ebe3b4
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 5a2408154033a917ec250b3a7f231bfa4a6f5a70
      https://github.com/wesnoth/wesnoth/commit/5a2408154033a917ec250b3a7f231bfa4a6f5a70
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 00774fe07d52c248a6efdde329cb378515a4bc5a
      https://github.com/wesnoth/wesnoth/commit/00774fe07d52c248a6efdde329cb378515a4bc5a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: d8888ac780327453902285a00ee8bf665e8dbfbb
      https://github.com/wesnoth/wesnoth/commit/d8888ac780327453902285a00ee8bf665e8dbfbb
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/units/drawer.cpp

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


  Commit: f2a4e2500f016e2cb36f17059d0f1bbbd536e8b3
      https://github.com/wesnoth/wesnoth/commit/f2a4e2500f016e2cb36f17059d0f1bbbd536e8b3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 11ea520c407c3a3a8b22d5128e2aa6ebd109dd20
      https://github.com/wesnoth/wesnoth/commit/11ea520c407c3a3a8b22d5128e2aa6ebd109dd20
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 12aa65ffc04ddad78bb637702b746a0ec63ae46d
      https://github.com/wesnoth/wesnoth/commit/12aa65ffc04ddad78bb637702b746a0ec63ae46d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 2011eacece754be54fa9bf4e86ff8e441d0bf608
      https://github.com/wesnoth/wesnoth/commit/2011eacece754be54fa9bf4e86ff8e441d0bf608
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/units/drawer.cpp

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


  Commit: 62c30dfcd9a4baafb88313f54377b37a9e4a47bf
      https://github.com/wesnoth/wesnoth/commit/62c30dfcd9a4baafb88313f54377b37a9e4a47bf
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 6ca33cc6fef127cda1a82aed1d619f986c179d18
      https://github.com/wesnoth/wesnoth/commit/6ca33cc6fef127cda1a82aed1d619f986c179d18
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/controller_base.cpp
    M src/editor/action/action_item.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: 58b765fb7b240c27e0fe06ac9f175045a6914fdb
      https://github.com/wesnoth/wesnoth/commit/58b765fb7b240c27e0fe06ac9f175045a6914fdb
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 3fd3e878d6e6ca9b1465fbf05d1247ec9fa1ea5e
      https://github.com/wesnoth/wesnoth/commit/3fd3e878d6e6ca9b1465fbf05d1247ec9fa1ea5e
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 4a86e46596cb542ba99bd732bbdbcd32036e8472
      https://github.com/wesnoth/wesnoth/commit/4a86e46596cb542ba99bd732bbdbcd32036e8472
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 498dfd5dd5fcdf657d352926a6c77daae4e62390
      https://github.com/wesnoth/wesnoth/commit/498dfd5dd5fcdf657d352926a6c77daae4e62390
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

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

Hex overlay, map items, fog/shroud transitions.


  Commit: 65fbe55ae730daf345e69a9428d45e8e52001c6a
      https://github.com/wesnoth/wesnoth/commit/65fbe55ae730daf345e69a9428d45e8e52001c6a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/controller_base.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: 2e5fafcd8e34398d2516738998c0789e5853657b
      https://github.com/wesnoth/wesnoth/commit/2e5fafcd8e34398d2516738998c0789e5853657b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/units/drawer.cpp

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


  Commit: 7674a0eeda42a97a6bb0a2e2b9a42444e41e9dbd
      https://github.com/wesnoth/wesnoth/commit/7674a0eeda42a97a6bb0a2e2b9a42444e41e9dbd
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 16e2777d3e98fd94611096d419c42e62db6a8301
      https://github.com/wesnoth/wesnoth/commit/16e2777d3e98fd94611096d419c42e62db6a8301
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 0735cad9dec56082a56bf7d060add3566e36f8ce
      https://github.com/wesnoth/wesnoth/commit/0735cad9dec56082a56bf7d060add3566e36f8ce
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

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


  Commit: ec7df685108703d6dbe3c361075a6f488558de63
      https://github.com/wesnoth/wesnoth/commit/ec7df685108703d6dbe3c361075a6f488558de63
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 6094c892d679bf189f9c377e0793a3b275ef1d64
      https://github.com/wesnoth/wesnoth/commit/6094c892d679bf189f9c377e0793a3b275ef1d64
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 80ae38dd1b0e15c6d73281c1b629ef2cfee65106
      https://github.com/wesnoth/wesnoth/commit/80ae38dd1b0e15c6d73281c1b629ef2cfee65106
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 9387f0d3cbbf1c3e12e9a2c6d998eb1ae745785c
      https://github.com/wesnoth/wesnoth/commit/9387f0d3cbbf1c3e12e9a2c6d998eb1ae745785c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 58f818caa70d768b9e2db2e4706e355a0d409434
      https://github.com/wesnoth/wesnoth/commit/58f818caa70d768b9e2db2e4706e355a0d409434
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: f2e52d15b3b860dd3476000e7fa70ae68cc15faf
      https://github.com/wesnoth/wesnoth/commit/f2e52d15b3b860dd3476000e7fa70ae68cc15faf
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 3771f8826f10bc3fce41d3c3d0deacb4c7d9e661
      https://github.com/wesnoth/wesnoth/commit/3771f8826f10bc3fce41d3c3d0deacb4c7d9e661
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 35a55f0629bf76ed39fd589c8dab135c2de2bb0b
      https://github.com/wesnoth/wesnoth/commit/35a55f0629bf76ed39fd589c8dab135c2de2bb0b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

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


  Commit: 3aa63fcaa61fc94531ad2284b171259136432175
      https://github.com/wesnoth/wesnoth/commit/3aa63fcaa61fc94531ad2284b171259136432175
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 89d89ade98e9407db55523bbf753608d64b9da4a
      https://github.com/wesnoth/wesnoth/commit/89d89ade98e9407db55523bbf753608d64b9da4a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: e047703336ac189aa8f1995c485f72000be31606
      https://github.com/wesnoth/wesnoth/commit/e047703336ac189aa8f1995c485f72000be31606
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/gui/dialogs/editor/custom_tod.cpp
    M src/gui/dialogs/editor/custom_tod.hpp
    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: 8d6b9fad80dcfea80ea88c61218acc396355ce5d
      https://github.com/wesnoth/wesnoth/commit/8d6b9fad80dcfea80ea88c61218acc396355ce5d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 0c910daa07e5209a51d8071ad5f00a7fae5aee43
      https://github.com/wesnoth/wesnoth/commit/0c910daa07e5209a51d8071ad5f00a7fae5aee43
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 60dceaaead293e6138a234ee8b83243272aa27c7
      https://github.com/wesnoth/wesnoth/commit/60dceaaead293e6138a234ee8b83243272aa27c7
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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 checkbox, 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: 6dbe9763a7cc19ac32ce228a3f79dcb961764861
      https://github.com/wesnoth/wesnoth/commit/6dbe9763a7cc19ac32ce228a3f79dcb961764861
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/floating_label.cpp

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


  Commit: b37b67655d71d8a99e14c03c68110bedb1780afc
      https://github.com/wesnoth/wesnoth/commit/b37b67655d71d8a99e14c03c68110bedb1780afc
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 3a04a2867e49abb1c00c82b0ff38bf5b60272e25
      https://github.com/wesnoth/wesnoth/commit/3a04a2867e49abb1c00c82b0ff38bf5b60272e25
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 6cdcb914e7f3484e84383c5f82daaba6afc66e1f
      https://github.com/wesnoth/wesnoth/commit/6cdcb914e7f3484e84383c5f82daaba6afc66e1f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/image.cpp

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

Yes, I know the duplicate code should be consolidated.


  Commit: e4e87fa9d4241064b79752fdaa07d5d81109535c
      https://github.com/wesnoth/wesnoth/commit/e4e87fa9d4241064b79752fdaa07d5d81109535c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 997df3adc8611815e33a623f8c2c746a5eca483c
      https://github.com/wesnoth/wesnoth/commit/997df3adc8611815e33a623f8c2c746a5eca483c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 6b85340232276f6e08afd2a1deabd1341b366755
      https://github.com/wesnoth/wesnoth/commit/6b85340232276f6e08afd2a1deabd1341b366755
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

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


  Commit: e4562ec2ce422e4679552a9850d8f9c97bd1d3c1
      https://github.com/wesnoth/wesnoth/commit/e4562ec2ce422e4679552a9850d8f9c97bd1d3c1
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 342f9245ab0a7c876c1f57cac335b2f33f0dd480
      https://github.com/wesnoth/wesnoth/commit/342f9245ab0a7c876c1f57cac335b2f33f0dd480
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 1ee7600e9adca8a7e8b68dfae4c53c19ef7960c3
      https://github.com/wesnoth/wesnoth/commit/1ee7600e9adca8a7e8b68dfae4c53c19ef7960c3
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: a7fbf1512855a91296cc223c9b78d1c06581e178
      https://github.com/wesnoth/wesnoth/commit/a7fbf1512855a91296cc223c9b78d1c06581e178
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/actions/vision.cpp
    M src/display.cpp
    M src/display.hpp
    M src/gui/dialogs/editor/custom_tod.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: ae5c0bdffd00dd3ae61a76533ce5658eb152e73c
      https://github.com/wesnoth/wesnoth/commit/ae5c0bdffd00dd3ae61a76533ce5658eb152e73c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 0d2978f0f33a8581f219ed386bd086a0164b7030
      https://github.com/wesnoth/wesnoth/commit/0d2978f0f33a8581f219ed386bd086a0164b7030
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: 6bae5dd4e92154df44e586757ff3df85d85bcfc0
      https://github.com/wesnoth/wesnoth/commit/6bae5dd4e92154df44e586757ff3df85d85bcfc0
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  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: ada98487dcfb58eabb7e2d6a98bd1e5a9dc35d9b
      https://github.com/wesnoth/wesnoth/commit/ada98487dcfb58eabb7e2d6a98bd1e5a9dc35d9b
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/video.cpp

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


  Commit: 8dfec489b6eed211fd740f2b9ff7df50899217a0
      https://github.com/wesnoth/wesnoth/commit/8dfec489b6eed211fd740f2b9ff7df50899217a0
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/editor/controller/editor_controller.cpp
    M src/menu_events.cpp
    M src/playmp_controller.cpp
    M src/playsingle_controller.cpp
    M src/playturn.cpp
    M src/replay_controller.cpp
    M src/synced_commands.cpp
    M src/video.cpp

  Log Message:
  -----------
  Removed external calls to display::redraw_everything()


  Commit: a5699aeed2c4313ea2b5a2539b49ac8823c58c5c
      https://github.com/wesnoth/wesnoth/commit/a5699aeed2c4313ea2b5a2539b49ac8823c58c5c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Display: header formatting and doc updates

Appropriate functions were also marked deprecated.


  Commit: 9937341c63941f642dd182082797dd395a657c0a
      https://github.com/wesnoth/wesnoth/commit/9937341c63941f642dd182082797dd395a657c0a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Marked sdl_handler::draw overrides as final


  Commit: d4fd1f3d118c7e8e99ca39785856b46bf7fe8e30
      https://github.com/wesnoth/wesnoth/commit/d4fd1f3d118c7e8e99ca39785856b46bf7fe8e30
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/game_display.cpp
    M src/playmp_controller.cpp
    M src/playsingle_controller.cpp
    M src/replay_controller.cpp

  Log Message:
  -----------
  Display: cleaned up a bunch of now-unused/unnecessary members and functions


  Commit: b10a16e712055b8f8f8a7e95decbf4467836f5a5
      https://github.com/wesnoth/wesnoth/commit/b10a16e712055b8f8f8a7e95decbf4467836f5a5
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Display: re-enable fps counter with :fps


  Commit: d77d8ad3a7e4e3b15dbc0a03f5921818f9f94579
      https://github.com/wesnoth/wesnoth/commit/d77d8ad3a7e4e3b15dbc0a03f5921818f9f94579
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Canvas: don't skip drawing if canvas texture is null


  Commit: 47ce969eef74e34db595c63ed6bc04d4b423c90a
      https://github.com/wesnoth/wesnoth/commit/47ce969eef74e34db595c63ed6bc04d4b423c90a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp
    M src/floating_label.cpp
    M src/font/text.cpp
    M src/font/text.hpp
    M src/gui/core/canvas.cpp

  Log Message:
  -----------
  Added a texture cache for pango_text render output


  Commit: 6f3758ea066fcfe3412d85e860c4318d0e91104c
      https://github.com/wesnoth/wesnoth/commit/6f3758ea066fcfe3412d85e860c4318d0e91104c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Floating Label: header formatting updates


  Commit: 8285a2c097f23633601b439368e7a2b39f338170
      https://github.com/wesnoth/wesnoth/commit/8285a2c097f23633601b439368e7a2b39f338170
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Canvas: handle text alpha as a render-time op

This reduces the number of times the text itself needs to be rendered, especially for areas like the
story viewer where the only difference is alpha.


  Commit: d9b0a1c1419162d4848c95c391b505fe64962684
      https://github.com/wesnoth/wesnoth/commit/d9b0a1c1419162d4848c95c391b505fe64962684
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/font/text.cpp
    M src/font/text.hpp

  Log Message:
  -----------
  Font/Pango Text: add extra stroke to text outline to compensate for alpha weirdness

Also added the outline to the hash.


  Commit: eb09f730582d136080aac7f10107cfaa210fb7b8
      https://github.com/wesnoth/wesnoth/commit/eb09f730582d136080aac7f10107cfaa210fb7b8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Some updates to the texture wrapper class

* Made reset() a public function
* Added an assign() function
* Don't try to destroy null textures
* Updated doc comments

I left assign() as just taking an SDL_Texture ptr since having it take a texture ref would be
functionally equivalent to operator=.


  Commit: f3a94c9a9e005d1f7376fbca9d2ceb9a7317be45
      https://github.com/wesnoth/wesnoth/commit/f3a94c9a9e005d1f7376fbca9d2ceb9a7317be45
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/image.cpp

  Log Message:
  -----------
  Avoid temporary object when creating new textures from disk


  Commit: b1120eabb4ebb209162bad0d293c8206c7235d8c
      https://github.com/wesnoth/wesnoth/commit/b1120eabb4ebb209162bad0d293c8206c7235d8c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/floating_label.cpp

  Log Message:
  -----------
  Floating Labels: use new pango_text functionality for generating text outline


  Commit: a20287ed1d8ffc144e4a47aaf525cafac7c7476f
      https://github.com/wesnoth/wesnoth/commit/a20287ed1d8ffc144e4a47aaf525cafac7c7476f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Display: avoid unnecessarily (potentially) creating millions of temp vectors

I've moved the terrain hex drawing code directly into draw_visible_hexes instead of relying on get_terrain_images
to return a vector of all the necessary images for each visible hex and then drawing them. Instead, we now draw
each hex's images immediately without any intermediary container.

With the old method, after about 10 to 15 seconds of drawing we had already allocated (and destroyed) almost 180,000
temporary vectors (a new one was created for each hex, twice per draw cycle). It's obvious how quickly that would add
up over a normal play session, and though in this case the performance hit for creating each vector was probably tiny,
creating them likely would have added up.


  Commit: 65396e6549ba0724829654881acb8b5a14e92fd8
      https://github.com/wesnoth/wesnoth/commit/65396e6549ba0724829654881acb8b5a14e92fd8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/actions/vision.cpp

  Log Message:
  -----------
  Comment out an unused parameter

Not sure if we'll need this again (perhaps to delay draws mid-action) so I'm not removing it yet.


  Commit: d5c291cbd546145db0e4822616a573d73fa2d8bc
      https://github.com/wesnoth/wesnoth/commit/d5c291cbd546145db0e4822616a573d73fa2d8bc
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Added RAII helper struct to manage a floating label's lifetime


  Commit: dc01127e2db62113bf0f435ed4b0bf7ca5b4482d
      https://github.com/wesnoth/wesnoth/commit/dc01127e2db62113bf0f435ed4b0bf7ca5b4482d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/game_display.cpp
    M src/game_display.hpp
    M src/whiteboard/manager.cpp
    M src/whiteboard/move.cpp
    M src/whiteboard/recall.cpp
    M src/whiteboard/recruit.cpp

  Log Message:
  -----------
  Another large batch of progress, primarily in game_display

This is primarily focused on getting various areas of the game display drawing, such as footstep images
and the terrain defense indicators.

To facilitate the last, I've refactored draw_text_in_hex to utilize floating labels instead of drawing
to hex directly with surfaces. This probably isn't the most optimal solution, since labels are continuously
created and destroyed, but since their text is usually short and cached in the rendered text cache it
does for now.

Also includes some cleanup of deprecated functions in display, and slight reordering of drawing order of
certain elements.


  Commit: 220b2606f864259d711b063a0bf5cf9ca1051c5f
      https://github.com/wesnoth/wesnoth/commit/220b2606f864259d711b063a0bf5cf9ca1051c5f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Display: simplified a few things


  Commit: 180088e1b8cfdefe46033c6f3a1129951530c5fe
      https://github.com/wesnoth/wesnoth/commit/180088e1b8cfdefe46033c6f3a1129951530c5fe
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/sdl/texture.cpp

  Log Message:
  -----------
  SDL/Texture: avoid unnecessary shared_ptr creation

Made use of shared_ptr::reset instead of creating temp shared_ptrs, assigning them to the class ptr,
then deleting them.


  Commit: 8aa0acf5960343fe1d9f0d89618e2a9fd99677f1
      https://github.com/wesnoth/wesnoth/commit/8aa0acf5960343fe1d9f0d89618e2a9fd99677f1
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Display: fixed moving units drawing under foreground terrains


  Commit: 3456ec89c3b792bfde31e9b2ae526808338fe56d
      https://github.com/wesnoth/wesnoth/commit/3456ec89c3b792bfde31e9b2ae526808338fe56d
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/floating_label.cpp

  Log Message:
  -----------
  Floating Label: keep local pango_text object static

This also means I need to set set_add_outline every time create_texture is called to make sure the
text renderer has the correct settings.


  Commit: 7df3a1f7a4358be1de6c727657979ecee8982390
      https://github.com/wesnoth/wesnoth/commit/7df3a1f7a4358be1de6c727657979ecee8982390
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Controller Base: removed unused process_focus_keydown_event event

This was used before the command console was converted to GUI2.


  Commit: 602e17708689cdf1a46d160762244f598b4350e8
      https://github.com/wesnoth/wesnoth/commit/602e17708689cdf1a46d160762244f598b4350e8
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp
    M src/display.hpp
    M src/floating_label.cpp
    M src/show_dialog.cpp

  Log Message:
  -----------
  Refactored handling of window/renderer size getters

* Removed display::screen_area(), display::w(), and display::h().
* Moved the global screen_area() function into the CVideo class.
* Renamed CVideo::getx() and gety() to get_width() and get_height()
* Made those two functions return the result of screen_area() instead of the other way around.
* Added preliminary support for high-DPI rendering to screen_area()

Note on the last point: When I fixed bug #1772 (aa8f6c7e7 right now but will probably change with rebasing)
I noted that SDL_GetWindowSize and SDL_GetRendererOutputSize returned the same results for me (even with
Window's automatic scaling for non-high-DPI-enabled apps disabled) but that the SDL documentation stated the
former returned screen coordinates and the latter pixels. In that same commit I changed the dimension functions
to use SDL_GetWindowSize. I've now reversed that decision and gone back to using SDL_GetRendererOutputSize so
I can guarantee output in pixels. If use_pixels is false, the code will return coordinates in 96 DPI, so I need
to have pixel measurements for the calculations.

Again, though, I do not know if SDL_GetWindowSize returns a different value that pixel size (which it's said
to do) on macOS or iOS. I'll need to do some testing. It's possible on those platforms I won't need the 96 DPI
measurements, but it's also possible it will be needed on on platforms, since all of our code relies on pixel
measurements.


  Commit: 17c87ccad8977f85ad2049d10d071c16a24d5569
      https://github.com/wesnoth/wesnoth/commit/17c87ccad8977f85ad2049d10d071c16a24d5569
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/font/text.cpp

  Log Message:
  -----------
  Font/Pango Text: fixed a weird crash in Cairo

See added comment for details.


  Commit: be2eb84e8480220c99dbd4da510f115bf90d270f
      https://github.com/wesnoth/wesnoth/commit/be2eb84e8480220c99dbd4da510f115bf90d270f
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.hpp

  Log Message:
  -----------
  Display: exit render_scaled_to_zoom early if passed texture is null


  Commit: 5e592c615ea35bd1b2425b1c6fd9d43bd0ee9ec0
      https://github.com/wesnoth/wesnoth/commit/5e592c615ea35bd1b2425b1c6fd9d43bd0ee9ec0
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Display: avoid temp vectors when rendering partial fog/shround images on hex


  Commit: ae4aef79eb4d40406b599ce6ce985dd3f8fafb16
      https://github.com/wesnoth/wesnoth/commit/ae4aef79eb4d40406b599ce6ce985dd3f8fafb16
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/halo.cpp

  Log Message:
  -----------
  Halos: fixed incorrect drawing origin when at non-default zoom


  Commit: fbc6390a2590212c251d4b000a015fc5f462476c
      https://github.com/wesnoth/wesnoth/commit/fbc6390a2590212c251d4b000a015fc5f462476c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Moved SDL_SetRenderDrawColor wrapper to utils file and added a second overload

Also renamed the function to a more colloquial version.


  Commit: a7e849a7b498083621c32e0b1494a8a2649babf6
      https://github.com/wesnoth/wesnoth/commit/a7e849a7b498083621c32e0b1494a8a2649babf6
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Canvas: optimized cached texture management

Instead of throwing out the cached texture every time the canvas was dirty, I've added a flag so that
only happens if its size has actually changed. There still seem to be some issues in GUI2 where canvas
objects keep getting reset, but I'm not sure why. Will have to look into that.

Anyway, the addition of the SDL_RenderClear call also seems to have fixed the weird graphics bleed-through
I was getting when running the game with the OGL driver.

I don't know if the canvas copy or move ctors are needed for anything. I added them for a test, but I'll
leave them for now in case I need them later.


  Commit: 63763da78b7b91c1908435c6946e575166bfbadb
      https://github.com/wesnoth/wesnoth/commit/63763da78b7b91c1908435c6946e575166bfbadb
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Fix build with Visual Studio


  Commit: a8fa9bf641549295e6fbbc06696a7320e0a68cc1
      https://github.com/wesnoth/wesnoth/commit/a8fa9bf641549295e6fbbc06696a7320e0a68cc1
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/sdl/render_utils.hpp

  Log Message:
  -----------
  Allow render_target_setter to restore the last target when destroyed


  Commit: eb6fa8223aca2e917778a6930d8918c6e0e6be83
      https://github.com/wesnoth/wesnoth/commit/eb6fa8223aca2e917778a6930d8918c6e0e6be83
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Added new minimap drawing method that works wholly with textures

I've left the old getMinimap function alone and added a new function that will eventually replace it
that utilizes texture rendering to a given texture instead of relying on surface blits and scaling.
This has the benefit of, well, reducing surface ops, for one, as well as removing the need to create
a new texture from the minimap surface every time it's updated.


  Commit: 2f8c4eaccfa49d2017101cffd3bdbe6614346860
      https://github.com/wesnoth/wesnoth/commit/2f8c4eaccfa49d2017101cffd3bdbe6614346860
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Canvas: allow the default draw routine (shape drawing) to be overridden

Previously widgets that wanted to implement custom drawing behavior overrode styled_widget::impl_draw_background
or impl_draw_foreground. Those functions in the base class simply called the canvas render methods. Some widgets
such as the minimap ignored that rendered the contents on their own.

This new method allows rendering directly to the canvas's texture, meaning all the caching and sizing is already
handled by the canvas and doesn't need to be done by the widget; everything's always the right size and redrawn
when necessary.


  Commit: a59aa918e011b039913c2285deb8c6de705e628c
      https://github.com/wesnoth/wesnoth/commit/a59aa918e011b039913c2285deb8c6de705e628c
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Minimap: refactored drawing code

Instead of using the minimap surface method (which was getting converted from surface to texture every
draw cycle since the caching mechanism the canvas implemented wasn't available and the weird custom
cache the widget implemented itself didn't seem to do actually do anything) we use the new render-to-
canvas-texture method which is a lot cleaner and should be a lot faster. This also means we no longer
override styled_widget::impl_draw_background.

Do note I might use the design of the removed cache here to add some age functionality to the
font::pango_text cache.


  Commit: 25707c0a6c70d2e94234c9c6bdd00652b6030fe9
      https://github.com/wesnoth/wesnoth/commit/25707c0a6c70d2e94234c9c6bdd00652b6030fe9
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/units/frame.cpp

  Log Message:
  -----------
  Unit/Frame: fixed alpha mods being applied to all units of the same type


  Commit: e817e6b89baa5e68c0e199f54e690555329a31ee
      https://github.com/wesnoth/wesnoth/commit/e817e6b89baa5e68c0e199f54e690555329a31ee
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  Game Display: reimplemented more functionality in draw_movement_info

Not completely done yet, still need to get some stuff working, but this gets rid of the old commented-out
code and puts stuff mostly in the right place.


  Commit: e08abb8c0c6ae6f53927c72f54e32abe0b4c7a77
      https://github.com/wesnoth/wesnoth/commit/e08abb8c0c6ae6f53927c72f54e32abe0b4c7a77
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/game_display.cpp

  Log Message:
  -----------
  Game Display: formatting update


  Commit: bb69343d64704f6fbde5c8d6d57664459f59f74a
      https://github.com/wesnoth/wesnoth/commit/bb69343d64704f6fbde5c8d6d57664459f59f74a
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  GUI2/Canvas: some refactoring to correctly reimplement the shape caching mechanism

The purpose of the shape caching is essentially to allow multiple draws to consecutively add to
previously drawn content. It essentially adds another condition for clearing the texture prior
to rendering.

I also moved the shape list handling into the draw function itself so it's only executed once
if needed instead multiple times when calling functions like set_variable - not that it actually
would have done anything after the first call, but this allows me to keep the clearing-the-texture
code in one place.


  Commit: 2b68d0251432182b1e80800abdd19e98a40a8457
      https://github.com/wesnoth/wesnoth/commit/2b68d0251432182b1e80800abdd19e98a40a8457
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M src/display.cpp

  Log Message:
  -----------
  Display: removed old software blitting routines from scroll


  Commit: 0771b3833fb42e02588d16d41589973e1227c0af
      https://github.com/wesnoth/wesnoth/commit/0771b3833fb42e02588d16d41589973e1227c0af
  Author: Charles Dang <exodia339 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

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

  Log Message:
  -----------
  display general compilation fixes


  Commit: 569b2ac525ddcc1970782d33ecd790ad0079b651
      https://github.com/wesnoth/wesnoth/commit/569b2ac525ddcc1970782d33ecd790ad0079b651
  Author: Sofartin <hrubymar10 at gmail.com>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Fixed Xcode Project


Compare: https://github.com/wesnoth/wesnoth/compare/7633ebc0be06...569b2ac525dd


More information about the Commits mailing list