All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.1 - 2024-11-24
- Calculate proper camera position for text by @tversteeg
- Update rust crate bytemuck, rust crate fastrand, rust crate glam, rust crate kira, rust crate smol_str and rust crate proc-macro2 by @tversteeg
- Fix return comment for
chuot::lerp
by @tversteeg
0.3.0 - 2024-11-17
- [breaking] Use dynamic typestate builder to improve performance and allow extensions by @tversteeg in #115
- [breaking] Implement typestate without using traits that need to be loaded by @tversteeg in #115
- [breaking] Make better use of generics to reduce code duplication by @tversteeg
- [breaking] Use rgb crate for all colors, exposed as
chuot::RGBA8
by @tversteeg in #110
- [breaking] Change re-export path of
chuot::context::{Axis,Button,MouseButton,KeyCode}
tochuot::{GamepadAxis,GamepadButton,MouseButton,KeyCode}
by @tversteeg in #112
- [breaking] Remove pivot enum struct in favor of direct methods by @tversteeg
- [breaking] Add a main game and a UI camera system by @tversteeg in #112
- Add
CameraContext::set_lerp{_x,_y}
by @tversteeg in #112 - Implement screen shake with
CameraContext::shake
by @tversteeg - Add
{Sprite,Text}Context::translate_previous{,_x,_y}
for smooth camera movement of moving objects by @tversteeg
- [breaking] Move
Context::font_glyph
to ownFontContext::glyph
and addContext::font
by @tversteeg
- Add optional
Game::init
which is called once after the window has been created by @tversteeg in #112
- Add
Context::font_sprite
for getting a single glyph from a font as a sprite by @tversteeg - [breaking] Make
FontContext::glyph
numeric values instead of justchar
by @tversteeg
- Add
chuot::lerp
by @tversteeg
- [breaking] Rename offset to pivot and allow specifying at runtime by @tversteeg
- [breaking] Add argument to sprite creation with sprite pivot by @tversteeg
- Add
Pivot::Fraction
to the enum & add sprite stacking example by @tversteeg
- Update rust crate wgpu to v22 by @renovate[bot]
- Update rust crate glam to 0.29.0 by @renovate[bot]
- Update rust crate smol_str to 0.3.0 by @renovate[bot]
- Update rust crate gilrs to 0.11.0 by @renovate[bot]
- Update rust crate bytemuck, rust crate fastrand, rust crate kira, rust crate rgb, rust crate smol_str, rust crate winit, rust crate wgpu, rust crate wasm-bindgen-futures, rust crate web-sys, rust crate naga, rust crate quote & rust crate sprite_dicing by @tversteeg
- Update rust crate hashbrown to 0.15.0 by @renovate[bot]
- Update rust crate bytemuck, rust crate imgref, rust crate png, rust crate proc-macro2, rust crate wasm-bindgen-futures, rust crate web-sys by @tversteeg
- Update rust crate notify-debouncer-mini to 0.5.0 by @renovate[bot]
- Update rust crate pollster to 0.4.0 by @renovate[bot]
- Update rust crate wgpu to v23 by @renovate[bot]
- Always render with viewport to fix flipping issue by @tversteeg
- Handle button press and release within a single update tick by @tversteeg
- Improve compilation time by keeping pivot a generic type by @tversteeg
- Improve compilation speed by creating inner functions for generics by @tversteeg
- Add random colors and better updates to falling-sand examples by @tversteeg
- Apply new Rust 1.81, 1.82 and 1.83 clippy lints by @tversteeg
- Use 2024 style edition for
cargo fmt
by @tversteeg
- Create CREDITS.md of inspiration and sources by @tversteeg
- Update rust crate naga to v22 by @renovate[bot]
- Update rust crate rgb, rust crate winit, rust crate gilrs and rust crate oxipng by @tversteeg
- Update rust crate wgsl-minifier to 0.6.0 by @renovate[bot] in #116
- Update rust crate naga to v23 by @renovate[bot]
0.2.1 - 2024-07-11
- Add
Context::mouse_x
andContext::mouse_y
- Add
SpriteContext::scale{,_x,_y}
for scaling the sprite horizontally and vertically
- Optimize vertex shaders a tiny bit
- Fix
render_interpolation
example where it points to a missing asset
- Change Matrix room to matrix.org
- Enforce strict
cargo fmt
with nightly requirement
- Cleanup changelog and improve release PR with labels
0.2.0 - 2024-07-05
- [breaking] Redesign crate structure (#83)
- Read bytes from
PngLoader
instead of returning a reader
- Limit the maximum amount of
Game::update
calls before a singleGame::render
call to 20
- Don't draw when target size is too small (#98)
- Fix framerate issue on WASM (#101)
- Optimize nearest neighbor rotation shader
- Replace particles example with simpler bunnymark
- Fix CI badge
- Apply cargo fmt
- Run lints and tests on pull request
- Update patch versions of crates (#86)
0.1.2 - 2024-06-05
- Move re-exported exports only used by
Context
to thecontext
module
- Read all images to memory when
read-image
flag is set
- Add
DrawSpriteContext::read_pixels
for reading pixels behind a feature flagread-image
- Update rust crate cargo-run-wasm to 0.4.0
- Add
read-image
feature flag which adds some fields to the texture mapping
- Don't process PNG twice when
read-image
feature flag is enabled
- Show example for loading a custom TOML asset
- Remove quit with escape button from each example, simplifying them
- Test building with
read-image
feature flag enabled
- Link liberapay
0.1.1 - 2024-05-27
- Allow getting scroll wheel delta with
Context::scroll_delta
- Allow toggling fullscreen with
Context::toggle_fullscreen
- Don't crash when multiple images are inserted in a single frame
- Use proper version
- Implement custom skyline rect packer for later manually setting already defined rectangles
- [breaking] Rename
random_range()
torandom()
and removerandom()
- Add gamepad support
- Implement hot-reloading for all asset types except images
- Implement hot-reloading of sprites (#56)
- Add
Packer::with_existing_rectangles_iter
for re-building packed atlasses
- Implement 'cleanEdge' pixel art rotation shader
- Load and upload image assets from disk when
embed-assets
feature flag is disabled
- Don't override website with custom WASM
- Temporarily disable building in-game-profiler feature since it's broken and depends on egui updates
- Add missing udev dependency for Linux
- Add missing udev dependency for Linux
- Update rust crate serde to 1.0.199
- Update rust crate fastrand to 2.1.0
- Update rust crate hashbrown to 0.14.5
- Update rust crate wgpu to 0.20.0
- Update rust crate walkdir to 2.5.0 (#71)
- Update rust crate serde to 1.0.200 (#70)
- Update rust crate quote to 1.0.36 (#69)
- Update rust crate getrandom to 0.2.14
- Update rust crate proc-macro2 to 1.0.81
- Update rust crate kira to 0.9.0
- [breaking] Disable
hot-reload-assets
andin-game-profiler
as default features
- Allow updating sprite pixels and add example for it
- [breaking] Attach to canvas element with ID 'chuot' or create a new one, also don't set CSS styles
- Decrease asset allocations by only taking owned ID references at the last moment, also decreases monomorphization
- Improve performance of cleanEdge shader by ~40%
- Use nice keep-a-changelog based output
- Link to rust crates
- Improve documentation and fix some mistakes
- Add sprite_rotation example
- Add text example
- Make all examples the same size and improve documentation for website
- Add fps example
- Document udev dependency on Linux
- Link to website instead of documentation
- Enforce very pedantic code style
- Fix clippy warning in example
- Update rust crate naga to 0.20.0
- Update patch versions of dependencies