* Refactor window creation and size handling
* Require pixel aspect ratio to be > 0
* Fix screen scaling when window is resized
- Ensure the screen retains its correct pixel aspect ratio
- Updated public API on `RenderPass` ... this will continue to be unstable until the initial release
- Add build instructions for the internal shaders
* Implement collision detection
* Minor cleanups.
* Add laser/player collisions
* Add laser collision with bullets and fix fire button repeating
* Add basic shield collisions
* Refactor collision and debug
* Simplify collision and debug by not tracking laser indices
- We don't care about which laser collided, because they get destroyed immediately.
* Don't track laser indicies against bullets either
* DRY and docs
* Adjust the fleet bounding box as invaders are shot
* WIP: Invader AI
- Adds debug mode for visualizing bounding boxes
- Adds rectangle and line drawing (for debug mode)
- Invaders move as a close approximation to the original game
- TODO: Demonstrates that the blit function needs to ignore black pixels (or "transparency")
- TODO: The invader movement code is really bad
* clippy and fmt
* Refactor Invader movement
* Support "transparency" in blit function
* Scale player movement to 60 pixels per second, regardless of frame rate.
* Add assertions in blit to prevent drawing out of bounds
* Add bullets, shoot with space
* Add lasers, and improve the bullet animation a little bit
* fmt
- The example app generates a scaled version of pixel Ferris as a test.
- TODO:
- Pixel aspect ratio is still unsupported
- The `RenderPass` trait is incomplete