- Derive Debug and Clone on
Timer - Apply the inverse of
set_viewinscreen_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_surfaceandflush_window - [BREAKING] Remove
Graphics::set_projectionin favor ofGraphics::set_view - [BREAKING] Remove
transform_for_sizeandprojectionfromResizeHandler, in favor ofGraphics::set_resize_handler - Add the
set_camera_sizetoGraphicsto manage the new virtual camera abstraction - Add
screen_to_cameratoGraphicsfor mapping the mouse position to the camera space - Fix images failing to draw when their destructors run before they are flushed
- Fix
Timer::remainingreturning the time until next tick, instead of returning how late the tick is. - Add methods to
Timer:late_by,period, andelapsed - [BREAKING] Remove
Scalarand replace it withf32 - [BREAKNNG] Remove all uses of
impl Into<Vector>in the public API - Deprecate
Line,Triangle, and a handful ofShapemethods - [BREAKING] Automatically re-set the viewport to the size of the window when
presentis called - Actually add
ResizeHandlerto 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
EventStreamtoInput - Integrate the input state cache directly into
Input - [BREAKING] The
blinds::Windowstruct and theEventenums are now wrapped with methods that usequicksilver::geom::Vectorinstead ofmint::Vector2
- [BREAKING] Rename
- Implement
Frominstead ofIntofor some types
- Update
golemtov0.1.1to fix non-power-of-2 textures impl std::iter::Sum for geom::Vector- Implement
std::ops::MulAssign,std::ops::AddAssign, andstd::ops::SubAssignforTransforms. - Addition and subtraction of Tranforms supported to help with easing function calculations
- Added an example with loading progress bar
- Add
Timerstruct to help timing draw calls and a consistent update cycle - Add
exhaustandresetfunction to timer so they can be used for more than just an update cycle lifecycle::runcan now accept any kind of Error.- Add
into_raw_contexton Graphics, to allow lower-level graphics programming - Add font support!
VectorFontallows you to load TTF files via rusttypeFontRendererallows you to draw glyphs to the screen
- Fix the "easy-log" feature
- [BREAKING]
fill_circlenow takes a&Circleinstead 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::flushwhich 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
ResizeHandlerto 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-sysbehind the feature namedweb-sys - [Breaking] Moved
stdwebsupport 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
lyonintegration
- [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
immiintegrationnalgebraintegration (replaced withmintintegration)
- Fix gamepad buttons mistakenly marked as
Releasedinstead 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_boxtoShape - 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 intodrawanddraw_ex - Update docs for
saveandload
- 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
preludemodule 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_rgbaandfrom_hexfunctions 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
Stateimplementors 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-webto 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::newin favor of the above - Added dynamic full screen to the web backend
- Add
Image::from_bytesto 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
MouseWheelevent being reported asMouseMoveon non-wasm platforms. - Fix alpha blending working incorrectly
- Add new methods of initializing fonts
Font::from_sliceandFont::from_bytesusing byte sequences - [Breaking] Add more fields to
Error, and add a Result alias to make error bubbling more convenient - [Breaking] Rename type
QuicksilverErrortoError - [Breaking] Add
SaveError, a new error type - [Breaking] Made the letterbox a configurable color
- [Breaking] Replace the
Drawstruct with aDrawabletrait 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
Lineas drawable object - Implemented
Triangleas drawable object - Added
distancemethod 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
Lineas drawable object - Implement
Triangleas drawable object - Add
distancemethod toVector - [Breaking] Use constants instead of functions for
Vectors' "presets" - Add an optional method to
Stateto handle error logging - Re-export the
futures::futuremodule as thecombinatorsmodule - [Breaking] Remove
Line::new_sized - [Breaking] Take
Vectors in any function-argument where sensible (positions and sizes) - [Breaking] Replace the
newfunctions by thenewvfunctions (newtakesVectors now) - Add a conversion from tuples with two
Scalars twoVectors - Create a Mesh structure that caches drawing
- Create a Background enum that can either be a color or an image
- Add optional
lyonintegration for vector graphics - [Breaking] Replace the
Shapeenum and thePositionedtrait with aShapeenum - [Breaking] Remove the
presentfunction and automatically switch the buffers after a draw call - [Breaking] Move
Stateandruninto a newlifecyclemodule - Add functions to determine the current framerate
- Add the ability to customize the update and draw rate independently
- [Breaking] Use
staticas the directory to place assets for cargo-web compatibility - [Breaking] Remove
WindowBuilderand create a newSettingsstruct 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
Stopwatchexample - Added configurable
vsyncoption 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
saveandload - 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
QuicksilverErrortype - Added TTF font support through
Font - Integrated with the
randcrate - Added support for borderless fullscreen to WindowBuilder
- Added a
constrainfunction toCircle - Switched from a game loop macro to a
runfunction - 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
ncollideandnalgebra - Create a single unified drawing function
- Removed the
Linestruct