All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Problem around chrono, time, and an CVE - (fb4a22f)
- Fixed build badge - (0a01708)
- Fix setting cursor without support - (c4baf4d) and (fc3b038)
- Updated MSRV - (032f7b1)
- Added
Features
section toREADME
. - Avoid computing
target_delta_time
each frame - Increased MSRV to
1.61.0
- Changed
Unsupported
Event
variants toUnhandled
to better reflect intention. - Renamed
AppState
toPixEngine
andPixEngine
toEngine
. - Renamed
engine::Builder
toengine::EngineBuilder
. - Updated
PixEngine::on_event
to return abool
, which consumes the event. - Removed
with_
prefix from builder methods. EngineBuilder::texture_cache
andEngineBuilder::text_cache
now take aNonZeroUsize
instead ofusize
.- Changed
PixState::with_texture
toPixState::set_texture_target
andPixState::clear_texture_target
. - Changed
PixState::with_window
toPixState::set_window_target
andPixState::clear_window_target
. - Changed
PixState::focused
to return whether the current window target is focused instead of any window.
- Added
PixState::ui_width
andPoixState::ui_height
methods which take into account remaining screen space with regards to current UI cursor position and frame padding. - Added configurable
scroll_size
to the UI theme for the width of rendered scrollbars. - Added
PixState::mouse_dbl_clicked
method indicating mouse was double clicked last frame. - Added
PixState::dbl_clicked
method indicating mouse was double clicked on the previous UI widget drawn. - Added
PixState::set_column_offset
andPixState::reset_column_offset
to allow controlling thex-offset
cursor position when rendering UI elements. - Added
ThemeBuilder
topix_engine::prelude
. - Added
PixState::focused_window
that takes aWindowId
to check for focus. - Added
PixState::audio_size
to query the current size of the audio queue device. - Added
Triangle
contains
Point
implementation. - Added arrow keyboard navigation to
PixState::select_box
while focused.
- Improved element focus and blur.
- Increased the relative font size of
PixState::monospace
. - Removed indent of children under
PixState::collapsing_header
. - Fixed UI elements being able to take focus if disabled.
- Blur focus by clicking outside on UI elements and by pressing escape/enter in input fields.
- Default types and dimensions for
Point
,Vector
,Line
,Triangle
,Quad
,Light
andLightSource
are now defined. - Changed how
PixState::on_update
handles frame rates and no longer sleeps whenvsync
is enabled. - Changed vertical scroll direction to be natural.
- Set default audio buffer size to 4096.
- Updated audio buffer doucmentation.
- Changed default audio settings to use device defaults.
- Swapped
lazy_static
foronce_cell
.
- Fixed widgets to properly render the label with the current
fill
color. - Fixed
PixState::bullet
to be more indented. - Fixed
PixState::tab
size - Fixed
PixState::select_list
padding - Fixed
PixState::mod_down
to correctly returntrue
when multiple modifiers are pressed. - Fixed off-by-one error in
Ellipse::bounding_rect
. - Fixed
target_frame_rate
epsilon. - Fixed update rate limiting when
vsync
is disabled and notarget_frame_rate
- set.
- Fixed
PixState::select_box
expanding on focus and unexpanding when focus is lost. - Fixed
PixState::font_size
affectingTheme
font size.
- Changed
PixState::tab_bar
to take aselected
parameter to control the initial selected tab and changed the callback to take a generic type instead of ausize
. PixState::enqueue_audio
now returns aPixResult
in the event the audio device fails, or the max queue size is reached.- Removed clearing the screen by default in
AppState::on_update
, leaving it to the application to choose when to clear the screen. - Changed
PixState::focused
to returntrue
whether any active windows have focus. - Renamed
PixState::keymods
toPixState::keymod
which now returns a single&KeyMod
value instead of aHashSet<KeyMod>
sinceKeyMod
is already a set of bitflags. - Changed
PixState::delta_time
andPixState::elapsed
to return aDuration
instead of milliseconds. - Changed
PixState::avg_frame_rate
to return anf32
instead ofusize
. - Changed
PixState::stroke_weight
to accept au16
instead of au8
. - Removed generic type aliases for all types that now have reasonable defaults.
- Removed
PixState::no_*
(e.g.no_stroke
,no_fill
, etc) methods in favor of the main setter method acceptingfalse
orNone
. - Added
PartialEq
toNum
trait. - Modified
Contains
andIntersects
traits to be more generic and have a singlecontains
orintersects
method to allow for future implementations of other shapes. - Added
PixState::audio_queued_size
and changedPixState::audio_size
to return the buffer capacity instead of the queued size. - Added support for multiple concrete channel types for
AudioCallback
via an associated trait type. - Removed
vcpkg
feature support due to flaky error rates.Windows
builds now can utilize a build script with static linking.macOS
andLinux
can continue usinghomebrew
or their distros package manager. - Changed
PixEngineBuilder::scale
to only set rendering scale and to not affect window size, to mirrorPixState::scale
. RemovedWindowBuilder::scale
. - Renamed all primitive
as_bytes
andas_array
methods topoints
andcoords
.
- Added
PixState::smooth
andPixState::no_smooth
to toggle anti-alias drawing of shapes. - Added
PixState::day
,PixState::month
,PixState::year
,PixState::hour
,PixState::minute
, andPixState::second
met