All notable changes to this project will be documented in this file.
- Updated EGUI to
0.27
. - The readme has gifs again.
- Added
app.mouse.clean_button_state
to clean the state of a button. - Added
xtask
to run project's script like building the examples for web. - Fixed an issue with EGUI that makes text looks blurry.
- Updated EGUI to
0.26
. - Removed
egui::plugin::Output.needs_repaint()
, now is only used internally and not exposed to users. - Exposed
notan::draw::DrawBuilder
allowing custom builders. - Exposed
notan::app::AppTimer
. - Added
draw.point
allowing to draw points. Checkexamples/draw_point.rs
. - Allow to compile the crate without a backend selected.
- Changed
WindowConfig::set_canvas_id
toWindowConfig::set_app_id
and is not available for wayland too. - Fixed
app.request_frame()
when using lazy lopps on Window OS.
- Added traits
Serialize
andDeserialize
toColor
with the featureserde
enabled. - Updated EGUI to
0.23
. - Fixed an error acquiring the GL Context due required samples configuration.
- Added
WindowConfig::set_position
to set x/y position before creating the window. - Changed
Renderer.begin
usesOption<ClearOption>
instead ofOption<&ClearOption>
. - Changed sizes and positions for Window and Textures from
i32
tou32
. - Added
AppTimer::elapsed
to return time since init asDuration
. - Changed
AppTimer::time_since_init
toAppTimer::elapsed_f32
. - Changed
WindowConfig
setter method to use the prefixset_
. - Removed deprecated
Mouse::local_position
. - Removed deprecated
mat3_screen_to_local
,mat3_local_to_screen
,mat3_local_to_local
. - Updated dependencies to latest versions.
- Enabled compilation with
--no-default-features
excluding shader compilation macros. - Deserializing
AtlasFrame
uses a defaultpivot
if is empty. - Added
WindowConfig::set_window_icon_data
. - Added
WindowConfig::set_taskbar_icon_data
. - Added example
window_icon_from_raw.rs
. - Changed
glsl_layout
dependency forcrevice
. - Updated EGUI to
0.22
. - Fixed
egui
panic when custom font are set. - Fixed slow scroll speed.
- Fixed
egui needs_repaint
not working right in some situations. - Fixed the order of the matrix multiplication for
Draw
methods. - Improved error messages when
WebGL
andWebGL2
contexts cannot be adquired. - Fixed
Buffer
to allow reuseUniform Buffers
between pipelines. - Changed some noisy logs from
debug
totrace
. - Added
Clone
toRandom
. - Reset values of
Mouse::wheel_delta
when the user stops scrolling. - Added
Mouse::is_scrolling
. - App's state can use now lifetimes, ie:
State<'n>
. - Added
Clone
toAssetsList
. - The
image
crate onnotan_graphics
is only used whentexture_to_file
is enabled. - Added
WindowBackend::set_cursor_position
,Event::MouseMotion
andMouse::is_moving
. - Added new example
window_initial_position.rs
. - Added mipmap and texture wrapping settings to
RenderTextureBuilder
. - Added new example
texture_params
. - Added new example
renderer_stencil
. - Fixed mouse wheel scroll being ignored when moving the mouse at same time
- Added alt mouse wheel scrolling code to example
- Fixed
set_multisamples
. It is no longer being ignored for winit backend - Fixed blurry text on egui when using on desktop
- Fixed mono channel audio playing in half of time set for the audio length.
- Added
is_focused()
for winit backend - Added
window_focus
example
- Increased mouse wheel scroll speed on native platforms.
- Added
WindowBackend::set_touch_as_mouse
andtouch_as_mouse
to enable/disable it at runtime. - Fix
Event::Exit
which is triggered now before the app is closed. - Add
WindowConfig::set_window_icon_data
andset_taskbar_icon_data
to set them using bytes. Checkexamples/window_icon_from_raw.rs
for more info. - Allow to load images without allocation limits, return an error if the image is bigger than the size supported by the GPU.
- Added
WindowBackend::set_title
andWindowBackend::title
to change or get the title at any time. - Improved stencil clearing when setting a mask on the draw api at the end of the pass.
- Fix panic using Draw API to draw text with
max_width
andsize
as 0. - Fix
debug_assert
inDevice::inner_read_pixels
. - Added support for
include
directives usingshaderc
. - Added optional feature
serde
to serialize/deserialize some core types.
- Added
WindowBackend::screen_size
to get the screen's resolution size. - Added
WindowBackend::container_size
to get the windows container size (screen on native, parent element on web). - Fix Draw2D masking issue about the stencil clearing.
- New example
draw_mask_animated.rs
.
- Added
Fn
keys toegui
. - New example
game_tic_tac_toe.rs
. - Fix corners of shapes using the Draw2D API.
- New example
draw_text_max_width.rs
. - Fix window's transparency issue on x11 linux.
- Fix an issue with some windows to select the OpenGL context.
- Fix docs compilation.
- Fix alpha blending mode issue with text rendering using the Draw2D API.
- Improve how the alpha blending behaves rendering from and to
RenderTexture
using Draw2D API. - Fix
Draw
structure is clonable again. - Change
SetupHandler
andAppBuilder::initialize
toFnOnce
allowing to embed notan easily. - Updated the crate
glutin
to0.30.2
. - New example
draw_arcs.rs
to show how to draw circle sections. - Added new texture format
R8Uint
. - Draw unsupported chars with a font does not panic anymore.
- Added
WindowConfig::window_icon
andWindowConfig::taskbar_icon
to add icons for windows os. - Added example
egui_custom_font.rs
. - Fix images loaded from files can set the texture format other rgba.
- Added
TextureFormat::Rgba32Float
. - Avoid some allocations when textures are loaded.
- Updated
notan_egui
to the latest version ofegui
0.19. - Added mipmapping support with
TextureBuilder::generate_mipmaps
. - Added
WindowBackend::position
andWindowBackend::set_position
. - Fix lint warning
notan_main
macro. - Added methods
.fill_color
andstroke_color
for the Draw2d shapes to allow to stroke and fill with the same builder. - Added method
Draw::star(spikes, outser_radius, inner_radius)
to draw stars. - Added method
Draw::polygon(sides, radius)
to draw regular polygons. - Added
shaderc
feature to compile shaders usingshaderc
instead ofglsl_to_spirv
. - Fix
RenderTexture
orientation when drawing using the Draw2d API. - Added
IndexBufferBuilder::with_data_u16
to create index buffers using u16 slices. - Added
Text::last_bounds
to get the bounding box of the latest text drawn. - Added
Text::bounds
to get the bounding box of all the text elements combined. - Added
Draw::last_text_bounds
to get the bounding box of the latest text drawn using the Draw2d API. - New examples
text_bounds.rs
anddraw_text_bounds.rs
to show how to measure the text size with real use cases. - Added a CI action to check if the code meets a minimal quality conditions.
- Added
WindowBackend::set_mouse_passthrough
to change the passthrough condition at runtime. - Fix custom pipelines for the Draw2d APIs. They were working only for images, now they work all (shapes, patterns, etc..)
- Added example
draw_shapes_shader.rs
to show how to set a custom pipeline drawing shapes. - Renamed
draw_shader.rs
todraw_image_shader.rs
- Added
Graphics::stats() -> GpuStats
to get more info about what the GPU did the last frame. - Added new texture formats.
TextureFormat::R16Uint
,R32Uint
,R32Float
. - New example
renderer_texture_r32.rs
to show how to use new texture types. - The method
Renderer::bind_texture
will set the slot automatically to the next one if using in a row. - Replaced
copypasta
dependency byarboard
and moved clipboard features to app level. - Added clipboard support for web browsers using
wasm
. - Added
.flip_x
and.flip_y
toImage
,Animation
andPattern
object from the Draw2d API. - Changed
Draw::set_blend_mode
needs anOption<BlendMode>
now, and passing None the blending mode can be canceled. - Added
Draw::set_alpha_mode
andDrawBuilder::alpha_mode
to set the blend mode for the alpha composition.
- Added support for clipboard events using
egui
behind the featureclipboard
. - Exposed
GlowBackend::add_inner_texture
to allow more flexibility extending the backend. - Example
input_keyboard
uses notdelta time
. - Added
WindowConfig::mouse_passtrhough
to allow mouse events to pass through the window. - Fix a minor bug in the
egui
plugin recognizing theCMD
key onosx
.
- Updated and upgraded all dependencies
- Fix audio bug that starts a sound with maximum volume and then fade.
- Added
WindowConfig::always_on_top
andWindowBackend::set_always_on_top/is_always_on_top
to force the window to the foreground. Has no effect on the web. - Added
notan_random
and featurerandom
to allow users to disable the default random features and use their own. - In EguiPlugin, handle
CMD
key on web. - Fix, inverted the direction of the horizontal mouse wheel on web.
- Added
TextureBuilder::from_source(raw)
to create textures that are backend dependent. - Added
TextureUpdater::with_source(raw)
to update textures that are backend dependent. - Added support to load and update
web_sys::HtmlImageElement
using the default backend.
- Fix the syntax in some example's shader.
- Glam type can be used as uniforms directly.
- Add
#[uniform]
macro to layout the data asstd140
. - On MacOS, disabled the high dpi resolution by default.
- On Web, disabled the high dpi resolution by default.
- Added
WindowConfig::high_dpi
to enable high resolution on MacOS and Web. - Added
Draw::screen_to_world_position
andDraw::world_to_screen_position
to convert coordinates. - Added
DrawBuilder::screen_to_local_position
andDrawBuilder::local_to_screen_position
to convert coordinates. - Fix 15 Puzzle game bug.
- Change
WindowConfig
to take values instead of set the!default
value. - Fix
wasm32
warnings due a leaked reference. - Add
WindowConfig::canvas_id
to use or create a custom canvas. - Remove the deprecated
notan::math::DEG_TO_RAD
andnotan::math::RAD_TO_DEG
. - Fix using
lazy_mode
an empty buffer after the first swap buffers. - Add
draw_projection.rs
example. - Add
extra
feature andnotan_extra
crate to add utils/struct that doesn't fit in other crates. - Add
extra::FpsLimit
to limit the maximum framerate and save CPU cycles putting it to sleep. - Removed
app::FpsPlugin
in favour ofextra::FpsLimit
.
- Fixed window shader compilation.
- Egui will call RequestRedraw when there is some animation, no need to call it manually anymore.
- Removed chrono due to a security issue.
- Fixed viewport issues where the Y axis was inverted and wasn't using DPI to calculate min position.
- Fixed EGUI 0.18.1. Paint callback feature.
- Added
Window::set_capture_cursor
andWindow::capture_cursor
to confine the cursor into the window's app. - Added
app.mouse.wheel_delta
to read the delta without checking the event loop. - Added
texture_to_file
feature to save textures as png files. UseTexture::to_file(gfx, path)
andRenderTexture::to_file(gfx, path)
. - Window can be hidden or displayer now setting the visibility on
WindowConfig
andWindow::set_visible
. - Fixed
wasm32
mouse drag event (it had a conflict with pointerevents). - Inlined docs for re-exported crates.
- Added
debug
checks for some OpenGL actions to avoid panics without info for bad API use. - Added example for
texture_to_file
.
- VAOs doesn't keep older attribute pointers anymore after a new VAO is bind
- Textures can use Wrap modes now with
TextureBuilder .with_wrap(x, y) // s,t
- Increased textures slots per shader from 8 to 16
- Deprecated
math::DEG_TO_RAD
andmath::RAD_TO_DEG
(rust provides.to_radians()
and.to_degrees()
) - Textures need to be declared on the pipeline with the location ID
.with_texture_location(0, "uniform_id")
- Added
15puzzle
example
- Added transparent and decorations windows options
- Removed
winit
(glutin
already used it) - Fix rotation issues with draw text
- Added touch support
- Audio API requires an initial volume when the sound is created
- Updated
egui
to 0.18.1 - Fix runtime error using Wayland and Mesa
- Dependencies updated to the latest version
- Created a new crate
notan_input
to keep organized all the user's input code
- Updated dependencies.
- Added mouse and keyboard types to the prelude.
- Audio Support using
oddio
.
- Force
egui
to repaint after a window's resize.
- Updated all dependencies to the latest version available.
- Migrated from 2018 edition to 2021.
- Added drag and drop file support.
- Added custom mouse cursors support.
- Added browser links support.
- Added lazy loop mode.
- Added
sRGB
texture support. - Added
Lines
andLineStrip
primitives. - Added new examples and improved the main page.
- Added support for premultiplied alpha images.
- Re-exported
glam
types as part ofnotan_math
. - Renamed
VertexFormat
to more explicit names. - Improved the API used to call
egui
code. - Other minor fixes and changes...
- Initial version.