- Derive Debug and Clone on
Timer
- Apply the inverse of
set_view
inscreen_to_camera
- Updated status to
passively-maintained
- Remove stray calls to
dbg!
- Do not crash if logging is already initalized
- Add optional dependency on serde, when enabled it adds the Serialize and Deserialize traits to Circle, Vector and Rectangle
- Fix a bug where text extents were improperly reported
- [BREAKING] Remove
set_viewport
,fit_to_surface
, andfit_to_window
; the viewport is now set automatically - [BREAKING] Remove
flush(Option<Surface>)
in favor offlush_surface
andflush_window
- [BREAKING] Remove
Graphics::set_projection
in favor ofGraphics::set_view
- [BREAKING] Remove
transform_for_size
andprojection
fromResizeHandler
, in favor ofGraphics::set_resize_handler
- Add the
set_camera_size
toGraphics
to manage the new virtual camera abstraction - Add
screen_to_camera
toGraphics
for mapping the mouse position to the camera space - Fix images failing to draw when their destructors run before they are flushed
- Fix
Timer::remaining
returning the time until next tick, instead of returning how late the tick is. - Add methods to
Timer
:late_by
,period
, andelapsed
- [BREAKING] Remove
Scalar
and replace it withf32
- [BREAKNNG] Remove all uses of
impl Into<Vector>
in the public API - Deprecate
Line
,Triangle
, and a handful ofShape
methods - [BREAKING] Automatically re-set the viewport to the size of the window when
present
is called - Actually add
ResizeHandler
to help with maintaing the same aspect ratio when the screen size changes
- Fix compile issues with font-related features
- [BREAKING] Replace 'lifecycle' module with 'input' module:
- [BREAKING] Rename
EventStream
toInput
- Integrate the input state cache directly into
Input
- [BREAKING] The
blinds::Window
struct and theEvent
enums are now wrapped with methods that usequicksilver::geom::Vector
instead ofmint::Vector2
- [BREAKING] Rename
- Implement
From
instead ofInto
for some types
- Update
golem
tov0.1.1
to fix non-power-of-2 textures impl std::iter::Sum for geom::Vector
- Implement
std::ops::MulAssign
,std::ops::AddAssign
, andstd::ops::SubAssign
forTransform
s. - Addition and subtraction of Tranforms supported to help with easing function calculations
- Added an example with loading progress bar
- Add
Timer
struct to help timing draw calls and a consistent update cycle - Add
exhaust
andreset
function to timer so they can be used for more than just an update cycle lifecycle::run
can now accept any kind of Error.- Add
into_raw_context
on Graphics, to allow lower-level graphics programming - Add font support!
VectorFont
allows you to load TTF files via rusttypeFontRenderer
allows you to draw glyphs to the screen
- Fix the "easy-log" feature
- [BREAKING]
fill_circle
now takes a&Circle
instead of a separate center and radius
- Fix the default blend mode: it should mix colors using their alphas
- [Breaking] Remove support for image types other than jpeg and png
- [Breaking] Add a parameter to
Graphics::flush
which determines what Surface to render to - Add the Surface API, for rendering to textures
- Add functions to set texture parameters and to set texture data
- Add the ability to set the blend pipeline
- Fix over-estimation of GPU buffer sizes
- Add functions on Graphics to set the viewport (
set_viewport
,fit_to_surfcae
,fit_to_window
) - Add
ResizeHandler
to help with maintaing the same aspect ratio when the screen size changes - Re-export
blinds
,golem
,mint
, andlog
- [Breaking] Update to blinds 0.1.0:
- [Breaking] Reworked the events API for forwards-compatibility
- Set the tab title on web
- Add an optional module to cache event states
The API change is very breaking. It can be considered nearly a full re-write of Quicksilver.
- Added the new async API, via
blinds
- Added experimental support for
web-sys
behind the feature namedweb-sys
- [Breaking] Moved
stdweb
support behind the feature namedstdweb
- [Breaking] Removed the following APIs/integrations, pending re-works (to be added before 0.4):
- BlendMode
- Font
- ImageScaleStrategy
- ResizeStrategy
- Sound
- Surface
lyon
integration
- [Breaking] Removed the following APIs/integrations, (possibly to be added before 0.4);
- Keyboard
- Mouse
- [Breaking] Removed the following APIs/integrations permanently:
- Asset
- Animation
- Atlas
- State
- combinators module
immi
integrationnalgebra
integration (replaced withmint
integration)
- Fix gamepad buttons mistakenly marked as
Released
instead ofNotPressed
- Fix gamepad Select/Start events misfiring when A is pressed
- Update dependencies
- Bump WebGL requirement from 2.0 down to 1.0
- Fix the circle fix (was mistakenly applied to triangles)
- Add
transform_bounding_box
toShape
- Fix a bug with circles being textured incorrectly
- Fix an issue creating non-RGBA images on web
- Deprecate Animation and Immi integration, pending removal in a future release
- Fix an issue with the viewport in
Surface::render_to()
- Fix a GL error in
Image::new_null()
for the WebGL backend - Fix a JavaScript error for WebGL backend in Firefox
- Unbind newly created FBOs and textures to prevent GL errors and unwanted behaviours
- Documentation fixes in src/lib.rs
- Allow any type that is
Into<Background>
to be passed intodraw
anddraw_ex
- Update docs for
save
andload
- Updated glutin to 0.21
- Expand the Event::Typed to include punctuation
- Add support for lyon's StrokeTessellator
- Updated lyon to 0.13
- Updated gilrs to 0.7, which brings macOS support
- Created a
prelude
module which contains commonly-used imports
- Fix web mouse positions to be consistent with native behaviour
- Fix web keycodes
- Add more characters to Event::Typed reporting on web
- Add
from_rgba
andfrom_hex
functions to create colors - Fix mouse clicks not registering in Immi
- Fix text rendering failing on immi (it's still not very good)
- Render string slices with newlines correctly
- Updated optional dependencies: nalgebra to ^0.17, ncollide2d to ^0.18
- Fix a crash in certain font & text combinations
- Add a blend background option for blending images and color
- Add a new event:
Typed(char)
that allows reading typed alphanumeric characters - Add support for touch events on web
- Fix a bug with swapping textures in the WebGL backend
- Add support for cursor style change
- Fix a bug with save / load on WASM
- Add support for saving raw bytes
- Add the ability to use a custom initializer for
State
implementors usingrun_with
- Updated stdweb to allow use of stable Rust for web builds
- This requires cargo web of >= 0.6.23, use
cargo install -f cargo-web
to update
- This requires cargo web of >= 0.6.23, use
- Add the ability to take screenshots of the window or surface with
Window::screenshot
- Fix a bug in web key input where any key past F15 would not map correctly
- Add a new ResizeStrategy: IntegerScale
- Fix bug in
Rectangle::contains
- Fix transformed lines not displaying properly
- Update to Rust 2018
- Fix immi draws and mouse pointer location being scaled incorrectly
- Added
ImmiRender::new_with_view
,ImmiRender::new_with_window
, andcreate_immi_ctx
- Deprecated
ImmiRender::new
in favor of the above - Added dynamic full screen to the web backend
- Add
Image::from_bytes
to load an Image from an encoded byte array - Fix Transform's impl of PartialEq always returning the wrong result
- Add implementing custom drawables to the mesh tutorial
- Mitigate a glutin bug on macOS Mojave that causes content to not be rendered to the window
- Add the ability to close the window programmatically through
Window::close
- Fix Asset loading bugs on Chromium
- Fix
MouseWheel
event being reported asMouseMove
on non-wasm platforms. - Fix alpha blending working incorrectly
- Add new methods of initializing fonts
Font::from_slice
andFont::from_bytes
using byte sequences - [Breaking] Add more fields to
Error
, and add a Result alias to make error bubbling more convenient - [Breaking] Rename type
QuicksilverError
toError
- [Breaking] Add
SaveError
, a new error type - [Breaking] Made the letterbox a configurable color
- [Breaking] Replace the
Draw
struct with aDrawable
trait that draws to a mesh object - Added a Result type alias
- [Breaking] Add a Result return to all of the State methods
- [Breaking] Move the Font parameters into their own structure
- [Breaking] Remove the Loader types in favor of a new Asset type
- Implemented
Line
as drawable object - Implemented
Triangle
as drawable object - Added
distance
method toVector
- Fixed bug with Windows not scaling the viewport by DPI
- Fixed bug with macOS not letterboxing correctly
- Added an implementation of the immi renderer
- Mark some functions #[must_use]
- Implement
Line
as drawable object - Implement
Triangle
as drawable object - Add
distance
method toVector
- [Breaking] Use constants instead of functions for
Vector
s' "presets" - Add an optional method to
State
to handle error logging - Re-export the
futures::future
module as thecombinators
module - [Breaking] Remove
Line::new_sized
- [Breaking] Take
Vector
s in any function-argument where sensible (positions and sizes) - [Breaking] Replace the
new
functions by thenewv
functions (new
takesVector
s now) - Add a conversion from tuples with two
Scalar
s twoVector
s - Create a Mesh structure that caches drawing
- Create a Background enum that can either be a color or an image
- Add optional
lyon
integration for vector graphics - [Breaking] Replace the
Shape
enum and thePositioned
trait with aShape
enum - [Breaking] Remove the
present
function and automatically switch the buffers after a draw call - [Breaking] Move
State
andrun
into a newlifecycle
module - Add functions to determine the current framerate
- Add the ability to customize the update and draw rate independently
- [Breaking] Use
static
as the directory to place assets for cargo-web compatibility - [Breaking] Remove
WindowBuilder
and create a newSettings
struct to replace it - Add functions to the window to allow changing settings at run-time
- Add the ability to set window icons and favicons
- Added new
Stopwatch
example - Added configurable
vsync
option toSettings
- Add multisampling anti-aliasing as an option
- Dependencies
- Versions
- alga:
0.5 -> 0.6
- glutin:
0.16 -> 0.17
- nalgebra:
0.14 -> 0.15.1
- ncollide2d
0.15 -> 0.16.0
- alga:
- Highlights
- Sebcrozet added official wasm32 support for nalgebra
- Added deps.rs badge to readme for a visual indicator
- Versions
- Revert the update to rodio v0.7, which caused compilation issues on some platforms
- Add the ability to save state cross-platform, through
save
andload
- Created a unified View system for input and camera
- Added the option to preserve pixelization with
ImageScaleStrategy
- Added render-to-texture support through
Surface
- Made geometry constructors able to receive i32 and u32 through
Scalar
- Added support for various drawing options through
BlendMode
- Added basic animation support through
Animation
- Added support for Futures-powered Async asset loading
- Added support for texture atlases through
Atlas
- Created a
QuicksilverError
type - Added TTF font support through
Font
- Integrated with the
rand
crate - Added support for borderless fullscreen to WindowBuilder
- Added a
constrain
function toCircle
- Switched from a game loop macro to a
run
function - Created JS bindings for Rust math operations
- Made the position of a shape a trait through
Positioned
- Created feature flags to allow users to pick and choose subsystems
- Added gamepad support to
Gamepad
- Added an input event system through
State::event
- Integrated with
ncollide
andnalgebra
- Create a single unified drawing function
- Removed the
Line
struct