enso/lib/rust/prelude
Paweł Grabarz 1578ed093a
Defer dropdown view initialization until opened and cache shaders between layers (#4046)
Fixes https://www.pivotaltracker.com/story/show/184216698

Reduced impact of node dropdown widgets on load times by deferring creation of grid views until each widget is opened. This also improves node editing time, as the dropdowns are not recreated immediately.

This approach of lazy initialization now caused a significant lag when opening the dropdown. Two major causes of the lag spike is glyph generation (msdfgen, `new_glyph`) and shader compilation (happened every time, because each dropdown has unique layer stack). To reduce the impact of that, the shader compiler now caches the shaders based on generated shader source. Glyph creation hasn't been changed and is still slow. The startup performance is now roughly where it was before introducing widgets.
2023-01-13 15:30:38 +00:00
..
src Defer dropdown view initialization until opened and cache shaders between layers (#4046) 2023-01-13 15:30:38 +00:00
Cargo.toml Bump wasm-bindgen (#3971) 2022-12-13 22:20:25 +01:00
README.md add rust libs 2021-10-30 02:28:55 +02:00

Enso Prelude

The Enso prelude is a library in the style of the Haskell prelude, pulling in a number of useful foundational features for writing Rust code in the Enso project.