All Versions
56
Latest Version
Avg Release Cycle
31 days
Latest Release
764 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.