Repository navigation
a_0.3.0
Support Text Editing
- Add safe wrappers for text/glyph API to support text editing functionality.
Support Linking to User-Provided Libraries
We really don't want to support source builds (too much storage required). So, we instead let people do their own custom from-source build and provide them to us, so that we can link them.
- Add docs to README about linking their own binaries of impeller library.
- changed build.rs to only download prebuilt libraries if the libs don't exist in cache. This skips downloding prebuilt zips when user provides custom libs for linking.
Thread-Safety
As aliasing doesn't travel through pointers, we used &self for mutating methods (eg: Paint::set_color). This was convenient, as you could clone the paint and modify it as you wanted.
But to support multi-threaded access to these structs (eg: Mutex<Paint>), we need to implement Sync which requires mutating methods to take &mut self and also remove Clone (to avoid multiple references pointing to same object and calling mutating methods).
- Add mutability to methods to make structs like Paint (and other builders) implement Sync (thread-safe).
- Remove clone for the structs which have mutability, to make them thread-safe (breaking change).
Surface::draw_display_list
- Found out that this method clears the surface before drawing, so, documented that in the method.
- Add some animating draw calls to vk/hello examples. These also showcase how you are supposed to merge display lists into a single display list before drawing to surface.
Extras
- Added functions to get and extract components from impeller version
- Add a context type tag (vk/mtl/gl) to impeller context to add more checks in backend specific methods.
- Add draw shadow method
- enabled links property in Cargo
Full Changelog: a_0.2.1...a_0.3.0