doodle/pkg
Noah Petherbridge d4e6d9babb Loading Screen
* pkg/loadscreen implements a global Loading Screen for loading heavy
  levels for playing or editing.
* All chunks in a level are pre-rendered to bitmap before gameplay
  begins, which reduces stutter as chunks were being lazily rendered on
  first appearance before.
* The loading screen can be played with in the developer console:
  $ loadscreen.Show()
  $ loadscreen.Hide()
  Along with ShowWithProgress(), SetProgress(float64) and IsActive()
* Chunker: separate the concerns between Bitmaps an (SDL2) Textures.
* Chunker.Prerender() converts a chunk to a bitmap (a Go image.Image)
  and caches it, only re-rendering if marked as dirty.
* Chunker.Texture() will use the pre-cached bitmap if available to
  immediately produce the SDL2 texture.

Other miscellaneous changes:

* Added to the Colored Pencil palette: Sandstone
* Added "perlin noise" brush pattern

Note: this commit introduces instability and crashes:

* New `asyncSetup()` functions run on a goroutine, but SDL2 texture
  calls must run on the main thread.
* Chunker avoids this by caching bitmaps, not textures.
* Wallpaper though is unstable, sometimes works, sometimes has graphical
  glitches, sometimes crashes the game.
* Wallpaper.Load() and the *Texture() functions are where it crashes.
2021-07-18 21:19:52 -07:00
..
balance Loading Screen 2021-07-18 21:19:52 -07:00
branding Zoom In/Out Feature: WorldIndexAt Fixed 2021-07-13 18:04:25 -07:00
campaign Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
collision Collision: Fix walking up leftward slopes 2021-06-02 21:49:29 -07:00
doodads Gzip Compression for Levels and Doodads 2021-07-13 20:06:57 -07:00
drawtool Brush Pattern Textures 2021-06-09 22:36:32 -07:00
enum Code Layout Refactor 2019-04-09 17:35:44 -07:00
filesystem Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
keybind Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
level Loading Screen 2021-07-18 21:19:52 -07:00
license Diverge Free vs. Paid Features 2021-06-16 22:35:01 -07:00
log Switch github.com/kirsle/golog to git.kirsle.net/go/log 2019-12-22 18:34:31 -08:00
modal Loading Screen 2021-07-18 21:19:52 -07:00
native WIP Publish Dialog + UI Improvements 2021-06-10 22:36:22 -07:00
pattern Loading Screen 2021-07-18 21:19:52 -07:00
physics Overhaul the Platformer Physics System 2020-04-04 21:00:32 -07:00
scripting Updater: Better SemVer version checks for updates 2021-07-11 14:09:18 -07:00
shmem Changelog and Prepare v0.5.0 for Release 2021-03-31 19:16:33 -07:00
sound WIP Game Settings Window, WASM Fixes, Sound FX 2020-09-01 20:54:58 -07:00
sprites Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
uix Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
updater Updater: Better SemVer version checks for updates 2021-07-11 14:09:18 -07:00
usercfg Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
userdir Tighten Doodad JavaScript API, User Documentation 2020-04-21 23:50:45 -07:00
wallpaper Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
wasm WASM: Store User Files in localStorage 2019-06-27 15:59:18 -07:00
windows Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
cheats.go Doodads: Small Key Door + Bigger Crumbly Floor 2021-01-03 17:06:33 -08:00
commands.go Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
config.go Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
doodle.go Loading Screen 2021-07-18 21:19:52 -07:00
editor_scene_debug.go Code Layout Refactor 2019-04-09 17:35:44 -07:00
editor_scene.go Loading Screen 2021-07-18 21:19:52 -07:00
editor_ui_doodad.go Embeddable Doodads In Levels 2021-06-13 14:59:03 -07:00
editor_ui_menubar.go Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
editor_ui_palette.go Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
editor_ui_popups.go Diverge Free vs. Paid Features 2021-06-16 22:35:01 -07:00
editor_ui_toolbar.go Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
editor_ui.go Loading Screen 2021-07-18 21:19:52 -07:00
fps.go Collision Box Updates 2021-06-02 20:50:28 -07:00
guitest_scene.go The Window Manager Update 2020-04-06 23:21:17 -07:00
main_scene.go Progress on the Zoom In/Out Feature 2021-07-11 21:54:28 -07:00
menu_scene.go Choice of palette when creating a new level 2021-06-05 20:51:20 -07:00
play_inventory.go Doodads: Small Key Door + Bigger Crumbly Floor 2021-01-03 17:06:33 -08:00
play_scene.go Loading Screen 2021-07-18 21:19:52 -07:00
scene.go Doodads: Crumbly Floor, Start Flag & State Blocks 2019-12-30 18:13:28 -08:00
shell.go Loading Screen 2021-07-18 21:19:52 -07:00
story_scene.go Tighten Doodad JavaScript API, User Documentation 2020-04-21 23:50:45 -07:00