All Versions
56
Latest Version
Avg Release Cycle
31 days
Latest Release
62 days ago

Changelog History
Page 2

  • v0.5.7 Changes

    January 15, 2021

    โž• Added

    • Key repeat events can now be enabled, via ContextBuilder::key_repeat or window::set_key_repeat_enabled. (@sumibi-yakitori in #220

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Reading and writing the volume or speed of a SoundInstance is now lock-free, reducing the chances of blocking the audio thread.
      • This also applies to audio::get_master_volume and audio::set_master_volume.
    • Rectangle is now generic, allowing types other than f32 to be used for the components.
      • The type parameter defaults to f32, so this should not be a breaking change.
    • 0๏ธโƒฃ Rectangle now implements Eq, Default and Hash, if the component type also implements the corresponding trait.
    • ๐Ÿ“„ The docs for creating a high-DPI Context have been improved.
    • โšก๏ธ Updated glow to 0.7.

    ๐Ÿ›  Fixed

    • โšก๏ธ SoundInstance no longer missed updates if you drop it before they're processed by the audio thread.
  • v0.5.6 Changes

    December 20, 2020

    โž• Added

    • graphics::get_front_face_winding and graphics::set_front_face_winding have been added, allowing the winding order of geometry to be changed.
      • This is useful if you are working with a library that only outputs clockwise-ordered data (e.g. ImGUI).
    • ๐Ÿ’พ ContextBuilder::screen_saver_enabled, window::set_screen_saver_enabled and window::is_screen_saver_enabled have been added, allowing you to control whether the user's screensaver can activate while playing your game. (@sumibi-yakitori in #216)

    ๐Ÿ”„ Changed

    • Backface culling has been re-enabled, as the winding order of geometry can now be overridden.
    • The game loop now calls std::thread::sleep instead of std::thread::yield_now at the end of each iteration.
      • This provides some basic frame-limiting when running without vsync, and prevents CPU usage skyrocketing on some systems.
  • v0.5.5 Changes

    December 03, 2020

    โž• Added

    • ๐Ÿ‘ Mesh now supports DrawParams::color.
      • This is implemented via a new shader uniform called u_diffuse. If you are using custom shaders, you will need to add this parameter in order for Mesh tinting to work.
  • v0.5.4 Changes

    November 27, 2020

    โž• Added

    • โž• Added initial support for custom 2D meshes.
    • โž• Added experimental support for high-DPI rendering, on platforms that support it. (@sumibi-yakitori in #212)

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ Backface culling has been disabled by default, to better support integration with other libraries that output clockwise vertex data (e.g. imGUI).
      • This will be brought back as an opt-in setting soon.
    • ๐Ÿ“„ Lots of cross-links between docs pages have been added, using intra-doc links.
  • v0.5.3 Changes

    November 21, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an issue where vector fonts would not create new cached glyphs for certain subpixel positionings.
  • v0.5.2 Changes

    November 01, 2020

    โž• Added

    • You can now use u32, Color and Texture values as shader uniforms.
    • From<Color> is now implemented for Vec4<f32>.
    • From<Vec4<f32>> is now implemented for Color.

    ๐Ÿ”„ Changed

    • TetraError's Display implementation no longer duplicates the source error's Display text.
    • The State trait now has an optional type parameter for the error type. This allows you to use your own custom error types, or third-party error handling crates like anyhow, thiserror and eyre.
  • v0.5.1 Changes

    October 13, 2020

    โž• Added

    • Color now implements Add, AddAssign, Sub, SubAssign, Mul, MulAssign, Div and DivAssign.
      • For convenience's sake, these are currently implemented as saturating operations, preventing values from going outside the valid range for a color.
      • In future versions, this clamping behaviour might be applied to the type as a whole, but this would require breaking changes.
    • Texture and Canvas now have methods for writing pixel data at runtime:
      • set_data writes to a specified region of the texture.
      • replace_data is a shortcut method for replacing the entire texture's data at once.

    ๐Ÿ”„ Changed

    • โšก๏ธ Updated hashbrown to 0.8.
    • โšก๏ธ Updated glow to 0.6.
  • v0.5.0 Changes

    September 02, 2020

    โž• Added

    • SoundInstance::state and SoundInstance::set_state have been added, which allow you to check the current state of playback and modify it respectively. (@puppetmaster- in #205)
      • These methods use a new enum called SoundState, which represents the possible states that a SoundInstance can be in.
    • ๐Ÿ’ฅ Breaking: The position of the mouse relative to the previous motion event can now be obtained via the delta field on Event::MouseMoved. (@GGalizzi in #206)
      • As existing code may have been exhastively pattern matching on Event::MouseMoved's data, this is technically a breaking change.
    • The window can now be set to relative_mouse_mode, which allows the mouse to move outside of the bounds of the window while still reporting motion events. (@GGalizzi in #206)
    • Various feature flags have been added, allowing you to shrink your dependency tree by removing unused functionality.

    ๐Ÿ”„ Changed

    • ๐Ÿ’ฅ Breaking: ICO, TIFF, PNM, DDS/DXT and TGA texture loading is now off by default.
      • Feature flags can be used to re-enable them.
    • ๐Ÿ’ฅ Breaking: graphics::set_texture is now private.
      • There was no meaningful way to use this function without access to other private functions, so it has been hidden to avoid confusion.
    • โšก๏ธ Updated bytemuck to 1.4.
    • ๐Ÿ’ฅ Breaking: Updated vek to 0.12.
      • As Vek is exposed via Tetra's API in the form of the tetra::math module, this is potentially a breaking change.
  • v0.4.2 Changes

    August 14, 2020

    โž• Added

    • A visible_rect method has been added to Camera, which calculates the area of the screen that is currently visible. (@VictorKoenders in #201)

    ๐Ÿ”„ Changed

    • ๐Ÿ“š Various improvements have been made to the documentation.
    • โšก๏ธ Camera::project and Camera::unproject no longer require Camera::update to be called to give correct results.
      • This is for consistency with the new visible_rect method.
    • Textures now use CLAMP_TO_EDGE wrapping, to avoid some sampling issues when drawing at non-integer co-ordinates.
      • In the future, it may be made possible to select other wrapping modes.
    • โšก๏ธ Updated bytemuck to 1.3.

    ๐Ÿ›  Fixed

    • โšก๏ธ The matrix created by a Camera now correctly reflects the viewport width and height before the first update.
  • v0.4.1 Changes

    August 02, 2020

    โž• Added

    • ๐Ÿ‘ ContextBuilder can now be serialized and deserialized via Serde, if the serde_support feature is enabled. (@puppetmaster- in #195)
      • Note that the available settings could change between releases of Tetra (semver permitting). If you need a config file schema that will be stable in the long term, consider making your own and then mapping it to Tetra's API, rather than relying on ContextBuilder to not change.

    ๐Ÿ”„ Changed

    • The TetraError and Event enums are now marked as non_exhaustive.
      • This is not a breaking change, as exaustive matching was already enforced via a hidden enum variant. This change just makes the code/docs/errors clearer, as well as potentially unlocking some compiler optimizations in the future.
    • โšก๏ธ Updated glow to 0.5.