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.
- A panic "Unsupported uniform datatype! 0x1405" has been resolved that occurred on some devices where push constants were being emulated and only signed integers were unspported.
- #66: A rounding error has been fixed when calculating the text width would cause the line width to be rounded down in some cases.
- If
wgpu
reports aSurfaceError::Lost
, thecreate_surface()
call is now correctly made on the main thread rather than the window thread. Thanks to @Plecra for reviewing the unsafe code and noticing this issue. This review also led to further reductions in the amount of unsafe code and improved the safety comments.
This version is a complete rewrite. While some code was copied across, this
library now directly depends upon wgpu
instead of using easygpu
, and it has
an API inspired by wgpu
's Encapsulating Graphics Work
article.
set_always_on_top
/with_always_on_top
/always_top
have been replaced withset_window_level
/with_window_level
/window_level
respectively. This change was due to upgrading to the latestwinit
.- The MSRV has been updated to 1.64.0 due to nested dependency requirements.
- These feature flags have been renamed:
serialization
has becomeserde
tokio-rt
has becometokio
smol-rt
has becomesmol
- Updated
easygpu
to v0.5.0.wgpu
has been updated to v0.16.0
winit
has been updated to v0.28.3palette
has been updated to v0.7.1
- Returning a scale from
Window::additional_scale
now works. CloseResponse
is now exported.
Scene::set_additional_scale
has been added to set the scaling factor between Points and Scaled. This allows application-level scaling in addition to the DPI scaling Kludgine already does.
- Updated
easygpu
to 0.4.0:wgpu
has been updated to 0.15.0.
- Updated
rusttype
to 0.9.3:ttf-parser
has been updated to 0.15.2.- Versions of rusttype are now pinned to prevent transient dependency upgrades breaking compilation.
- Updated
easygpu
to 0.3.0:wgpu
has been updated to 0.14.0.winit
has been updated to 0.27.4.
- Updated
easygpu
to 0.2.0:- Updated
wgpu
to 0.13.1 - Updated
lyon_tessellation
to 1.0.1
- Updated
- Switching off of pre-release version numbering. They just add more pain than they're worth.
- Updated dependencies to
wgpu
0.12
- Fixed incompatibility with image crate update.
- Changed dependency versions to be less lenient.
- Fixed issue where render_one_frame would freeze in headless environments (#53).
- Updated dependencies for compatability with wgpu 0.11.1.
- Implemented Sprite alpha rendering. The APIs already existed, but the alpha value was being ignored.
Sprite::current_frame
immutably retrieves the current frame. This is equivalent to callingSprite::get_frame(None)
but can be used in non-mutable settings.
- Updated
easygpu
andeasygpu-lyon
, which moves Kludgine ontowgpu
0.11.
WindowCreator
andWindowBuilder
now support initial_position.
WindowCreator
andWindowBuilder
now usePoints
as the unit forinitial_size
. When creating the window, we now request the logical size rather than pixels, correspondingly.
- Redrawing while resizing is done with more expediency. Previously, we were waiting for the OS to ask for us to redraw after resizing, rather than forcing a resize.
- Added
WindowHandle
, which allows interacting with the window after it has been built. This parameter is passed into nearly allWindow
trait functions now. WindowCreator
now takes&self
parameter for all methods. There was no reason for these methods to be static, and it prevented a window from being able to control how it was built based on its initial configuration.
- Rendering a SpriteSource using a Point without specifying a Size now renders
it at
Scaled
resolution. This restores the behavior before the parameters were switched toDisplayable
.
- Removed all user interface code, and spun off a new user interface project, Gooey.
- Split Kludgine into three crates:
kludgine-core
: The rendering aspects of Kludgine. Can now be used for headless rendering as well.kludgine-app
: The windowing/event handling layer of Kludgine.kludgine
: An omnibus crate that marries the two with one crate include.
- Now uses
figures
for its math types. If you're using functionality that was ineuclid
but is no longer available infigures
, please submit an issue. We may not add all requested functionality, but as long as it extends one of the typesfigures
already has, it likely will be added upon request. - Introduced
unstable-apis
feature flag. The plan for this flag is to offer a way to provide APIs that are still under heavy development to be used without forcing semver updates when the APIs change. After 1.0, breaking changes tounstable-apis
will be one of the factors that causes minor version increments.