What's Changed
This release fixes a few found issues. Window resize no longer zooms the graphics context, text actually disappears (as expected) when you stop drawing it and surface errors are now handled, preventing panic on Lost or Outdated
It adds a way to control window size, fullscreen and vsync at runtime. Text now has configurable weight, bold, italic, rect alignment and line height (also makes it respect text size). We now have custom shader input, post processing and a fancy tessellating PathBuilder
There are also performance changes with rectangles (at least with a ton of them); they are now instanced instead of batched with vertex duplication. Matrix math was moved to GPU and bytes per-rect was reduced to 56 bytes
Some new demos were added showcasing all of this, so check them out
Desk Fan: showcases shapes, PathBuilder and custom paths
Health Bar: a custom shader HP bar with bloom, pulse and glow effects showcasing shader input
Agar: an agar.io like game I originally wrote with macroquad
- Post processing by @wick3dr0se in #67
- Handle outdated surface by @devmeat in #68
- Added support for common window states: maximized, fullscreen, decorated by @devmeat in #69
- feat(shaders): support custom shader input by @cyypherus in #72
- perf: reuse per-frame GPU resources to reduce allocation overhead by @darkscott and @wick3dr0se in #74
- PathBuilder by @devmeat in #73
- Instancing by @wick3dr0se in #77
Features
- (app) Expose runtime resize, fullscreen and vsync control
- (text) Support rect-based alignment & font styling
- (shaders) Support custom shader input
- (demos) Add agar-style demo
- (app) Support configurable min/max window size
Bug Fixes
- (graphics) Properly create new batches when vertex limit exceeded & pass
Optiontypes for texture/shader ids - (app) Correctly apply window size & vsync changes during frame
Performance
- Reuse per-frame GPU resources to reduce allocation overhead
Miscellaneous Tasks
- (release) Bump to 0.10.0
New Contributors
- @devmeat made their first contribution in #68
Full Changelog: v0.9.0...v0.10.0