All Versions
56
Latest Version
Avg Release Cycle
31 days
Latest Release
1032 days ago
Changelog History
Page 5
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)
- The
-
v0.2.7 Changes
January 23, 2019๐ Changed
- ๐ We now use the
hashbrown
implementation ofHashMap
/HashSet
instead of thefnv
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 usehashbrown
, 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.
- ๐ We now use the
-
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
andsdl2_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 onDrawParams
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 ofDrawable
. - 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.
- Shader errors are now properly reported via
-
v0.2.0 Changes
December 21, 2018โ Added
Texture
now has methods to get the width and height.- The
bundled
andstatic-link
features from thesdl2
crate can now be used through Tetra by enabling thesdl2_bundled
andsdl2_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
anddraw
methods onState
are now both optional. - The
graphics
module now re-exportsVec2
. - ๐ In addition to the normal
run
method, there is now also arun_with
method that uses a closure to construct theState
. This is handy when method chaining - see the examples for how it can be used. - ๐ฏ Public types now implement
Debug
andClone
where appropriate. TetraError
now implements the standard libraryError
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 usingContextBuilder::default
instead. - ๐
run
is now a method onContext
, instead of a free function. - โก๏ธ The
update
anddraw
methods onState
now returntetra::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 onContextBuilder
has been renamed towindow_scale
, to better reflect its behavior. Shader::from_file
is now calledShader::new
, andShader::new
is now calledShader::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 thewindow
module. set_tick_rate
has been moved to thetime
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 returnsResult
, 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 thefill_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
andis_mouse_button_released
functions now work correctly.
-
v0.1.6 Changes
December 09, 2018โ Added
- The
Font
andText
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.
- The