ggez v0.6.0 Release Notes

  • โž• Added

    • Added MeshBatch
    • Added a Premultiplied blend mode, which greatly improves Canvas usability
    • Added a CustomError variant to GameError.
    • Added function to allow custom gamepad definitions
    • Added function to fetch raw window
    • Added function to set window position on the screen
    • Added function to get supported resolutions of the current monitor
    • Added generators for rounded rectangle meshes
    • Tried to make more error types conveniently comply with std::error::Error
    • Added functions to fetch positions of text glyphs
    • Added visible to WindowMode to allow ggez to run without a visible window
    • Added on_error function to EventHandler, making error handling more convenient
    • Added a download buffer handle to the gfx context, to avoid possibly recreating it all the time, which means things like taking multiple screenshots should work more smoothly now, as long as the target size doesn't change

    ๐Ÿ”„ Changed

    • EventHandler now takes an error type as a parameter, which allows you to use your own error types
    • FullscreenType::True now causes the game to be rendered exclusively on the current monitor, which also allows to set different resolutions
    • Changed blend modes massively in the hope that they're either more "correct" or helpful now
    • Changed the way SpriteBatch reacts to DrawParams with an offset != (0,0): It now calculates its own dimensions (a rectangle containing all sprites) and interprets the offset as a fraction of that
    • Switched rand in the examples to oorandom, for basically aesthetic reasons. (Not advertising at all, honest.)
    • Version bumped rodio to 0.13
    • Version bumped lyon to 0.16
    • Version bumped glyph_brush to 0.7
    • Version bumped winit to 0.23, which brings many fixes, better Wayland handling, and a slightly different style of event loop with some different constraints and type names.
    • winit update has also changed and smoothed over some of the issues with high-DPI handling.
    • Updated just about every other dependency under the sun
    • Minimum rustc version is now 1.42
    • Audio API in general changed a little for rodio API differences.

    ๐Ÿ—„ Deprecated

    Nothing

    โœ‚ Removed

    • removed ggez::nalgebra crate re-export. All math in the public API should now be mint types, and it is a bug if they are not.

    ๐Ÿ›  Fixed

    • Fixed a mistake in the matrices created from DrawParams leading to them being slightly wrong when an offset was used (this might fix a lot of very subtle rendering bugs)
    • ggez no longer creates empty directories (for resources and other things), unless necessary
    • Setting DrawParams now results in consistent behaviour everywhere (ok, no, we missed MeshBatch, which received this fix in 0.6.1), including SpriteBatch and Canvas
    • Fixed a memory leak in screenshot and to_rgba8
    • Fixed transfrom_rect (and added some more tests for it)
    • Too many things to count

    Broken

    Nothing (yet)