doodle/pkg/level
Noah Petherbridge db5760ee83 Optimize memory by freeing up SDL2 textures
* Added to the F3 Debug Overlay is a "Texture:" label that counts the number
  of textures currently loaded by the (SDL2) render engine.
* Added Teardown() functions to Level, Doodad and the Chunker they both use
  to free up SDL2 textures for all their cached graphics.
* The Canvas.Destroy() function now cleans up all textures that the Canvas
  is responsible for: calling the Teardown() of the Level or Doodad, calling
  Destroy() on all level actors, and cleaning up Wallpaper textures.
* The Destroy() method of the game's various Scenes will properly Destroy()
  their canvases to clean up when transitioning to another scene. The
  MainScene, MenuScene, EditorScene and PlayScene.
* Fix the sprites package to actually cache the ui.Image widgets. The game
  has very few sprites so no need to free them just yet.

Some tricky places that were leaking textures have been cleaned up:

* Canvas.InstallActors() destroys the canvases of existing actors before it
  reinitializes the list and installs the replacements.
* The DraggableActor when the user is dragging an actor around their level
  cleans up the blueprint masked drag/drop actor before nulling it out.

Misc changes:

* The player character cheats during Play Mode will immediately swap out the
  player character on the current level.
* Properly call the Close() function instead of Hide() to dismiss popup
  windows. The Close() function itself calls Hide() but also triggers
  WindowClose event handlers. The Doodad Dropper subscribes to its close
  event to free textures for all its doodad canvases.
2022-04-09 14:41:24 -07:00
..
giant_screenshot Polish and bugfixes 2021-10-09 20:45:38 -07:00
publishing Refactor Level Publishing + MagicForm 2022-01-17 18:51:11 -08:00
actors.go Link Start Flags to Change Characters 2021-08-11 20:40:31 -07:00
chunk_map.go Remove MsgPack, Fix doodad display on top/left edges 2022-01-09 13:16:29 -08:00
chunk_test.go Doodads: Crumbly Floor, Start Flag & State Blocks 2019-12-30 18:13:28 -08:00
chunk.go Optimize memory by freeing up SDL2 textures 2022-04-09 14:41:24 -07:00
chunker_test.go Change types int32 -> int per upstream render and ui library 2019-12-27 19:16:34 -08:00
chunker.go Optimize memory by freeing up SDL2 textures 2022-04-09 14:41:24 -07:00
filesystem.go Refactor Level Publishing + MagicForm 2022-01-17 18:51:11 -08:00
fmt_json.go Actor Zoom + Experimental Settings GUI 2021-09-11 21:18:22 -07:00
fmt_maintenance.go Auto-prune Empty Chunks in Level Files 2019-07-16 22:10:18 -07:00
fmt_readwrite.go Remove MsgPack, Fix doodad display on top/left edges 2022-01-09 13:16:29 -08:00
inflate.go Actor Zoom + Experimental Settings GUI 2021-09-11 21:18:22 -07:00
page_type.go Add MenuScene with New Level UI 2019-06-25 15:01:37 -07:00
palette_defaults.go Checkpoint Flag & Retry from Checkpoint 2021-08-15 20:17:53 -07:00
palette.go Flood Tool, Survival Mode for Azulian Tag 2022-03-26 13:55:06 -07:00
swatch.go Brush Pattern Textures 2021-06-09 22:36:32 -07:00
types.go Optimize memory by freeing up SDL2 textures 2022-04-09 14:41:24 -07:00