All Versions
56
Latest Version
Avg Release Cycle
31 days
Latest Release
437 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.4.0 Changes
June 24, 2020โ Added
- The mouse can now be grabbed by the window. (@tatref in #184)
- This is exposed via the
grab_mouse
method onContextBuilder
, and theis_mouse_grabbed
/set_mouse_grabbed
functions in thewindow
module.
- This is exposed via the
๐ Changed
- ๐ฅ Breaking: The text rendering API has been rewritten from scratch.
- It now uses
ab_glyph
instead ofrusttype
, which allows us to support OTF fonts, and should be faster in general. - This also fixes several long-standing bugs with text rendering (#125, #161, #180).
- The new API has been written with the requirements of bitmap fonts in mind, and a loader for these will likely be added in a future version.
- As this API may expand in the future, it has been moved into the
tetra::graphics::text
submodule to avoid cluttering the maingraphics
module.
- It now uses
- ๐ Improved the documentation for various types' performance characteristics.
- ๐ฅ Breaking: Updated
vek
to 0.11.- As Vek is exposed via Tetra's API in the form of the
tetra::math
module, this is potentially a breaking change.
- As Vek is exposed via Tetra's API in the form of the
- โก๏ธ Updated
hashbrown
to 0.8.
โ Removed
- ๐ฅ Breaking:
Font
no longer implementsDefault
, and the Deja Vu Sans Mono font is no longer bundled with Tetra (#174).- It was previously a little murky whether or not the default font's license needed to be included even when you're not using it, due to the bytes being included in the binary.
๐ Fixed
- ๐ Fixed an issue where gamepad axis ranges were not being correctly mapped from integers to floats.
- The mouse can now be grabbed by the window. (@tatref in #184)
-
v0.3.6 Changes
May 15, 2020โ Added
- A new suite of functions has been added to the
window
module, allowing you to query info about the monitors that are connected to the current device.
๐ Changed
- ๐ฑ The window is now hidden when the game loop is not running. This avoids issues where the window would be displayed before the game has a chance to fully load assets, or to determine ideal rendering sizes.
๐ Fixed
- ๐ Fixed an issue where OpenGL objects would not be properly unbound when they were dropped.
- ๐ Fixed an issue where the OpenGL buffer attributes were not being set correctly.
- A new suite of functions has been added to the
-
v0.3.5 Changes
April 25, 2020โ Added
- File drag and drop events can now be detected via
Event::FileDropped
. - The clipboard can now be manipulated via
input::get_clipboard_text
andinput::set_clipboard_text
. input::get_key_modifier_down
andinput::get_key_modifier_up
have been added, allowing for code handling the control, alt and shift keys to be made more compact.- An
Animation
can now be set to stop playing after all the frames have been displayed, instead of looping. This can either be controlled by theset_repeating
method, or you can create a non-looping animation directly by callingAnimation::once
. hex
andtry_hex
constructors have been added toColor
.
๐ Changed
- โก๏ธ Updated
sdl2
to 0.34.
- File drag and drop events can now be detected via
-
v0.3.4 Changes
April 12, 2020โ Added
Animation
now exposes methods for getting and setting the current frame index, and the amount of time that the current frame has been displayed for. This can be useful when implementing more complex animation behaviors. (@VictorKoenders in #169)- Some utility methods have been added to
Rectangle
for getting the co-ordinates of the sides, center and corners. - A
content_mut
getter has been added toText
, allowing the content to be mutated using the standardString
API (e.g.push_str
,clear
, etc.).
-
v0.3.3 Changes
April 04, 2020โ Added
- The mouse wheel state can now be queried. (@VictorKoenders in #164)
๐ Changed
- ๐ The internal representation of
Texture
objects has been changed to improve performance. - โก๏ธ Updated
sdl2
to 0.33. - โก๏ธ Updated
hashbrown
to 0.7. - โก๏ธ Updated
image
to 0.23. - โก๏ธ Updated
rodio
to 0.11.
-
v0.3.2 Changes
January 15, 2020โ Added
Rectangle::intersects
,Rectangle::contains
andRectangle::contains_point
have been added.
๐ Changed
- Added a missing function parameter to
window::set_mouse_visible
, so that you can actually set the value.- This is technically a breaking change, but given that the functionality is completely broken, this will be included in a patch release rather than 0.4.
- ๐ Restructured the platform layer to better facilitate new backends in the future.
- ๐ Improved docs for the
math
module to make it clearer why a re-export is used. - โก๏ธ Updated
glow
to 0.4.
-
v0.3.1 Changes
December 15, 2019๐ Fixed
- ๐ Fixed an issue with variable timesteps causing an infinite loop.
-
v0.3.0 Changes
December 14, 2019โ Added
- The
State
trait now provides anevent
method for hooking into window/input events. This is useful in scenarios where you want to be notified of events rather than polling (for example, reacting to window size changes). - โก๏ธ A
Context
can now be configured to have a variable update rate, if that suits your game/architecture better. This is exposed via thetime_step
method onContextBuilder
. - ๐ Several new functions have been added to the
time
module, to support both variable and fixed timesteps. - Functions for getting and setting vsync have been added to
window
. - Details of the active graphics device can now be retrieved by calling
graphics::get_device_info
. Shader::from_vertex_string
andShader::from_fragment_string
constructors have been added.Color::RED
,Color::GREEN
andColor::BLUE
constants have been added.graphics::get_transform_matrix
,graphics::set_transform_matrix
andgraphics::reset_transform_matrix
has been added, which allows you to apply a transformation to your rendering.- The
Camera
struct has been added, which provides a simple way of creating a transform matrix. - ๐ Serde support has been added (via the
serde_support
Cargo feature) for the following types:graphics::Color
graphics::Rectangle
input::Key
input::MouseButton
input::GamepadButton
input::GamepadAxis
input::GamepadStick
- Various
math
types, as defined by theVek
crate.
๐ Changed
- โ Tetra now targets the latest stable Rust compiler, rather than a fixed minimum version. This will hopefully change once Cargo has better functionality for enforcing minimum supported compiler versions - currently it's impossible to make guarentees, as our dependencies can change their minimum versions at will.
State::draw
no longer takes the blend factor as a third parameter - instead, you can call the newtime::get_blend_factor
function.- ๐
Key
andMouseButton
are now Tetra-specific types, rather than re-exporting the SDL versions. Note that some names have been changed for consistency, and some variants have been removed to simplify the docs. - ๐
TetraError::Sdl
andTetraError::OpenGl
have been merged intoTetraError::PlatformError
, since they both represent the scenario where something's gone seriously wrong with the underlying platform. DEFAULT_VERTEX_SHADER
andDEFAULT_FRAGMENT_SHADER
are now const instead of static.- Screen scaling has been extracted from the core of the engine, and is now provided via the
ScreenScaler
struct. This allows it to be more flexibly integrated with the rest of your game's rendering. - Various functions now return errors instead of panicking.
TetraError
has been reorganized, so that the errors returned are more descriptive.- The
glm
module has been renamed tomath
, and thenalgebra-glm
dependency has been replaced withvek
. Vec2
is now exported frommath
, notgraphics
.- More types can now be passed into shader uniforms via the
UniformValue
trait. - 0๏ธโฃ The graphics device debugging info is now hidden by default. Set the
debug_info
option onGame
totrue
to bring this back. - The functions for setting the fullscreen/cursor visibility state have been changed to take booleans, instead of there being multiple functions.
- The
Shader::vertex
andShader::fragment
constructors have been renamed toShader::from_vertex_file
andShader::from_fragment_file
. - Animations now use a
Duration
to specify the frame length, and as such, they are no longer coupled to your game's tick rate. Calladvance
from yourdraw
method to advance the animation's timer. - โก๏ธ Updated
glow
to 0.3.0-alpha3. - โก๏ธ Updated
hashbrown
to 0.6. - โก๏ธ Updated
image
to 0.22. - โก๏ธ Updated
glyph_brush
to 0.6. - โก๏ธ Updated
rodio
to 0.10.
โ Removed
time::duration_to_f64
andtime::f64_to_duration
have been removed, as the standard library now provides this functionality (Duration::from_secs_f64
andDuration::as_secs_f64
respectively).- ๐
ContextBuilder::tick_rate
has been removed, asContextBuilder::time_step
now fulfils the same purpose. - โ Removed deprecated sub-modules from
graphics
. - โ Removed deprecated
color::BLACK
andcolor::WHITE
constants - useColor::BLACK
andColor::WHITE
instead. - Removed deprecated
from_data
constructors - usefrom_file_data
instead. - โ Removed deprecated
DrawParams::build_matrix
method. - โ Removed re-exports of
Animation
andNineSlice
fromgraphics
- from now on this functionality will be accessible viagraphics::animation
andgraphics::ui
respectively.
- The
-
v0.2.20 Changes
July 13, 2019๐ Changed
- All of the SDL2 code is now localized to a single
platform
module. This is a first step towards decoupling the engine from any particular windowing library. - The OpenGL backend is now implemented using glow.
- ๐ The public module structure of
graphics
has been simplified, so that only animation and GUI code is grouped into submodules, not 'primitive' types. The existing paths have been deprecated. - ๐ The
BLACK
andWHITE
color constants are now associated with the type, not the module. The existing constants have been deprecated. Color::rgb
,Color::rgba
andRectangle::new
are nowconst fn
.- โก๏ธ Updated
glyph-brush
to 0.5.3.
๐ Fixed
window::is_mouse_visible
now actually returns a value (whoops).
- All of the SDL2 code is now localized to a single
-
v0.2.19 Changes
June 13, 2019โ Added
- Textures and canvases now provide a method for setting the texture filtering mode.
๐ Changed
- โก๏ธ Updated
image
to 0.21.2. - โก๏ธ Updated
hashbrown
to 0.5.0. - โก๏ธ Updated
rodio
to 0.9.0.