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

Changelog History
Page 5

  • v0.2.8 Changes

    February 01, 2019

    โž• Added

    • The time::get_fps function was added, which returns the current FPS, averaged out over the last few seconds. (@selimeren in #96)
  • v0.2.7 Changes

    January 23, 2019

    ๐Ÿ”„ Changed

    • ๐ŸŽ We now use the hashbrown implementation of HashMap/HashSet instead of the fnv hasher. The hope was that this would give a performance boost, but it didn't seem to have any real observable impact :( That said, several of Tetra's dependencies use hashbrown, so in the interests of keeping the dependency tree light, we're switching anyway.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  A race condition between Rodio and SDL has been fixed.
    • โœ… While testing hashbrown integration, it was found that the benchmark numbers in the FAQ were slightly inaccurate - this has now been fixed.
  • v0.2.6 Changes

    January 20, 2019

    โž• Added

    • Audio playback has been added, using Rodio as the backend!
    • ๐ŸŽ A port of the popular 'BunnyMark' benchmark has been added, which can be helpful for comparing relative performance of different versions/configurations of Tetra.
    • The documentation has been updated to detail the sdl2_bundled and sdl2_static_link features.

    ๐Ÿ”„ Changed

    • ๐Ÿš€ The code that handles sprite transformations has been rewritten, and is now around 10 times faster than 0.2.5 in debug mode, and twice as fast as 0.2.5 in release mode.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ— The build_matrix method on DrawParams was meant to be an internal utility, not a part of the public API. Tetra no longer uses it, so it has been deprecated, and will be removed in 0.3.
  • v0.2.5 Changes

    January 06, 2019

    โž• Added

    • Custom shaders can now be used for rendering!

    ๐Ÿ›  Fixed

    • The parameters contained within an instance of DrawParams are now publicly accessible - without these, it wasn't possible to write a proper custom implementation of Drawable.
    • Shaders now bind their outputs explicitly - this should help with compatability.
  • v0.2.4 Changes

    January 04, 2019

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an issue where the OpenGL context would fail to initialize when using NVidia's proprietary Linux drivers.
  • v0.2.3 Changes

    January 03, 2019

    โž• Added

    • ๐Ÿ‘ Tetra now has support for gamepads! The API is roughly the same as that of keyboard and mouse, aside from having to specify which gamepad's state you're querying.

    ๐Ÿ”„ Changed

    • Text is now drawn using the same shader as everything else - this likely won't be noticable now, but it will make things a lot easier once custom shaders get added!

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Some subtle issues around font cache invalidation have been fixed - in general we now let glyph-brush handle that side of things.
    • ๐Ÿ›  Texture flipping was broken in 2.0 - this has now been fixed.
    • The OpenGL context now explicitly requests a 32 bit color buffer and double buffering.
    • Shaders now bind their texture sampler explicitly, which should avoid black screens on some drivers.
  • v0.2.2 Changes

    December 24, 2018

    โž• Added

    • Tetra now has a website, with a tutorial on how to get started using it.
    • run_with is now less restrictive about what kinds of closure it will accept.

    ๐Ÿ”„ Changed

    • ๐ŸŽ We now always request an OpenGL 3.2 core profile context - this is required for us to support MacOS.

    โœ‚ Removed

    • The TETRA_OPENGL_FORCE_CORE_PROFILE environment variable has been removed, since we now always force a core profile.
  • v0.2.1 Changes

    December 22, 2018

    โž• Added

    • Shader errors are now properly reported via TetraError::OpenGl.

    ๐Ÿ”„ Changed

    • ๐Ÿ›  The shader attribute order is now explicitly defined - this fixes an issue with black screens on some drivers.
  • v0.2.0 Changes

    December 21, 2018

    โž• Added

    • Texture now has methods to get the width and height.
    • The bundled and static-link features from the sdl2 crate can now be used through Tetra by enabling the sdl2_bundled and sdl2_static_link features. (@VictorKoenders in #33)
    • ๐Ÿ†• New methods have been added to allow iterating over down/pressed/released keys on the keyboard. (@VictorKoenders in #35)
    • Text input typed by the user can now be retrieved using the input::get_text_input function. (@VictorKoenders in #36)
    • Text now has a method for efficiently calculating (and caching) the outer bounds of the text. (@VictorKoenders in #41)
    • ๐Ÿ†• New methods have been added to Animation, allowing it to be modified after it is initially created. (@VictorKoenders in #48)
    • There are now numerous different ScreenScaling types that can be chosen from.
    • Extra options have been added to the ContextBuilder, allowing you to start the window in various different states (e.g. fullscreen).
    • There are now many new methods for manipulating the window/game loop in the window module.
    • โšก๏ธ The update and draw methods on State are now both optional.
    • The graphics module now re-exports Vec2.
    • ๐Ÿ‘€ In addition to the normal run method, there is now also a run_with method that uses a closure to construct the State. This is handy when method chaining - see the examples for how it can be used.
    • ๐Ÿ‘ฏ Public types now implement Debug and Clone where appropriate.
    • TetraError now implements the standard library Error trait.

    ๐Ÿ”„ Changed

    • โฌ†๏ธ The library has been upgraded to the 2018 edition of Rust.
    • 0๏ธโƒฃ ContextBuilder::new now takes the title and size as parameters. The old behavior of the function can be replicated by using ContextBuilder::default instead.
    • ๐Ÿ†“ run is now a method on Context, instead of a free function.
    • โšก๏ธ The update and draw methods on State now return tetra::Result, allowing errors to be returned (or propagated via the ? operator). Any errors returned from these methods will stop the game - your main method can then handle the error (e.g. log it out).
    • ๐Ÿ‘ The scale option on ContextBuilder has been renamed to window_scale, to better reflect its behavior.
    • Shader::from_file is now called Shader::new, and Shader::new is now called Shader::from_string. This is more consistent with the other constructors.
    • Tick rates are now specified in ticks per second.
    • The ContextBuilder no longer consumes itself when called - this is more flexible for e.g. calling methods inside a conditional.
    • ๐Ÿšš quit has been moved to the window module.
    • set_tick_rate has been moved to the time module.
    • The functions for getting the game's internal width/height have been renamed to disambiguate them from the functions for getting the window width/height.
    • Matching on TetraError will now force you to add a wildcard arm. This will prevent the addition of new error types from being a breaking change.
    • Shader::from_string now returns Result, as proper error handling will be added to to it eventually.

    ๐Ÿ›  Fixed

    • The model matrix is now calculated once per Drawable, instead of once per vertex. This should speed up rendering.
    • The top left corner of a NineSlice no longer gets distorted if the x and y of the fill_rect aren't equal.
    • The renderer now automatically flushes instead of panicking if it hits capacity.
    • The renderer will now batch up to 2048 sprites, instead of 1024.
    • 0๏ธโƒฃ The default shaders have been rewritten in an older/more compatible syntax, in order to fix some issues with black screens on Mesa drivers.
    • The is_mouse_button_pressed and is_mouse_button_released functions now work correctly.
  • v0.1.6 Changes

    December 09, 2018

    โž• Added

    • The Font and Text types have been added, allowing you to render out text using a TTF font.
    • Inspired by FNA, the TETRA_OPENGL_FORCE_CORE_PROFILE environment variable can now be set to force the application to run using the 3.2 core profile. This might end up getting removed in favour of a more robust solution later on, but it's handy for testing (e.g. Renderdoc requires the core profile to be enabled).

    ๐Ÿ›  Fixed

    • The internal framebuffer is now an RGB texture instead of an RGBA texture - this was causing some strange issues with blending.