- Initial release
- Fixed issue when deleting a texture while binding a new one
- Fixed build issue when using without windowing enabled
- Fixed negative overflow issue where monitor size is misdetected or less than window size
- No longer specifies core profile for GL 2.0 (fixes issue on Macs)
- Setting multisampling level to 16 by default
- Ensure event loop gets woken up when redrawing on Windows
- Fix error on some platforms due to GL shader program validation
WindowCreationOptions::with_resizable()
WindowCreationOptions::with_always_on_top()
WindowCreationOptions::with_maximized()
WindowCreationOptions::with_decorations()
Graphics2D::create_image_from_file_path()
Graphics2D::create_image_from_file_bytes()
GLRenderer::create_image_from_file_path()
GLRenderer::create_image_from_file_bytes()
GLRenderer::new_for_gl_context()
, to create aGLRenderer
from a GL loader function
Graphics2D::draw_image()
is now able to take a tuple as a position- When creating an image from raw bytes, the number of bytes is checked
- Fixed texture load issues where the horizontal byte stride was not a multiple of 4
- Now works correctly in Wayland
- Fixed error when primary monitor is not found
- Fixed issue with lines under text when a dark background and antialiasing are used
Thanks to Revertron:
Graphics2D::set_clip()
ModifiersState::default()
- WebGL support introduced
WebCanvas
, providing full rendering and event handling for an HTML canvasGLRenderer::new_for_web_canvas_by_id()
, for rendering only (no event handling)- The
time
module, for access to the system clock in a cross-platform way.
WindowHandler::on_mouse_grab_status_changed()
WindowHandler::on_fullscreen_status_changed()
- Ensure that mouse position is scaled using device pixel ratio
- Line breaks (
\n
) now handled when laying out text
WindowHandler::on_mouse_wheel_scroll()
(thanks to GreatGodOfFire)TextLayout::empty_line_vertical_metrics()
- Ability to draw polygons (thanks to chilipepperhott)
Thanks to dnlmlr:
- Set the position before making the window visible
- Added option to create transparent windows
Thanks to UdHo
- Fixed Wayland regression
- Remove
Sized
requirement fromTextLayout
functions (allowing them to be called on&dyn TextLayout
)
- Added convenient type aliases for:
Vector2
types:Vec2
,IVec2
, andUVec2
Rectangle
types:Rect
,IRect
, andURect
- Allow adding tuples to vectors, for example
my_vec + (1.0, 2.0)
- Added example code for managing GL context with glutin (thanks to btbaggin)
Vector2::new_x()
Vector2::new_y()
Rectangle::with_negative_offset()
Rectangle::ZERO
Color::from_gray()
Graphics2D::draw_text_cropped()
, for efficiently drawing a block of text cropped to the specified areaGraphics2D::capture()
, for capturing the current contents of the window- Added assignment operators (
+=
,-=
,*=
,/=
) toVector2
(thanks to amarao)
- Text drawn at a non-pixel-aligned position was getting snapped to the nearest pixel -- this is now fixed.
Rectangle::as_f32()
- Fix for issue #55 (text appearing as solid rectangles due to texture not being unbound correctly)
- Fix for issue #74 (in some cases, dropping an
ImageHandle
resulted in a panic)
- Fix for issue #34 (incorrect alpha compositing on a transparent background)
- Functions which previously took a
Rectangle
now accept anything which implementsAsRef<Rectangle>
. This allows you to either pass in a reference to a Rectangle, or move the Rectangle as before.
WindowHelper.get_size_pixels()
(thanks to dennisorlando)
- APIs which previously returned or accepted an
Rc<FormattedTextBlock>
now use aFormattedTextBlock
directly FormattedTextBlock
can now be cheaply cloned, and sent between threads.- Removed the deprecated function
new_for_current_context
-- please switch tonew_for_gl_context
instead. UserEventSender
now implementsClone
even if the event type doesn't (thanks to Alex Kladov)
TextOptions::with_trim_each_line()
(thanks to InfiniteCoder01)
Ability to draw rounded rectangles, thanks to dennisorlando:
RoundedRectangle
structRectangle.rounded(radius)
Graphics2D.draw_rounded_rectangle()