Add README
for each subcrate
This commit is contained in:
parent
c47f5095c8
commit
cb4827059f
13
core/README.md
Normal file
13
core/README.md
Normal file
@ -0,0 +1,13 @@
|
||||
# `iced_core`
|
||||
[][documentation]
|
||||
[](https://crates.io/crates/iced_core)
|
||||
[](https://github.com/hecrj/iced/blob/master/LICENSE)
|
||||
[](https://iced.zulipchat.com)
|
||||
|
||||
`iced_core` holds basic reusable types of the public API. For instance, basic data types like `Point`, `Rectangle`, `Length`, etc.
|
||||
|
||||
This crate is meant to be a starting point for an Iced runtime.
|
||||
|
||||

|
||||
|
||||
[documentation]: https://docs.rs/iced_core
|
23
native/README.md
Normal file
23
native/README.md
Normal file
@ -0,0 +1,23 @@
|
||||
# `iced_native`
|
||||
[][documentation]
|
||||
[](https://crates.io/crates/iced_native)
|
||||
[](https://github.com/hecrj/iced/blob/master/LICENSE)
|
||||
[](https://iced.zulipchat.com)
|
||||
|
||||
`iced_native` takes [`iced_core`] and builds a native runtime on top of it, featuring:
|
||||
- A custom layout engine, greatly inspired by [`druid`]
|
||||
- Event handling for all the built-in widgets
|
||||
- A renderer-agnostic API
|
||||
|
||||
To achieve this, it introduces a bunch of reusable interfaces:
|
||||
- A `Widget` trait, which is used to implement new widgets: from layout requirements to event and drawing logic.
|
||||
- A bunch of `Renderer` traits, meant to keep the crate renderer-agnostic.
|
||||
- A `Windowed` trait, leveraging [`raw-window-handle`], which can be implemented by graphical renderers that target _windows_. Window-based shells (like [`iced_winit`]) can use this trait to stay renderer-agnostic.
|
||||
|
||||

|
||||
|
||||
[documentation]: https://docs.rs/iced_native
|
||||
[`iced_core`]: ../core
|
||||
[`iced_winit`]: ../winit
|
||||
[`druid`]: https://github.com/xi-editor/druid
|
||||
[`raw-window-handle`]: https://github.com/rust-windowing/raw-window-handle
|
15
web/README.md
Normal file
15
web/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# `iced_web`
|
||||
[][documentation]
|
||||
[](https://crates.io/crates/iced_web)
|
||||
[](https://github.com/hecrj/iced/blob/master/LICENSE)
|
||||
[](https://iced.zulipchat.com)
|
||||
|
||||
`iced_web` takes [`iced_core`] and builds a WebAssembly runtime on top. It achieves this by introducing a `Widget` trait that can be used to produce VDOM nodes.
|
||||
|
||||
The crate is currently a __very experimental__, simple abstraction layer over [`dodrio`].
|
||||
|
||||

|
||||
|
||||
[documentation]: https://docs.rs/iced_web
|
||||
[`iced_core`]: ../core
|
||||
[`dodrio`]: https://github.com/fitzgen/dodrio
|
37
wgpu/README.md
Normal file
37
wgpu/README.md
Normal file
@ -0,0 +1,37 @@
|
||||
# `iced_wgpu`
|
||||
[][documentation]
|
||||
[](https://crates.io/crates/iced_wgpu)
|
||||
[](https://github.com/hecrj/iced/blob/master/LICENSE)
|
||||
[](https://iced.zulipchat.com)
|
||||
|
||||
`iced_wgpu` is a [`wgpu`] renderer for [`iced_native`]. For now, it is the default renderer of Iced in native platforms.
|
||||
|
||||
[`wgpu`] supports most modern graphics backends: Vulkan, Metal, DX11, and DX12 (OpenGL and WebGL are still WIP). Additionally, it will support the incoming [WebGPU API].
|
||||
|
||||
Currently, `iced_wgpu` supports the following primitives:
|
||||
- Text, which is rendered using [`wgpu_glyph`]. No shaping at all.
|
||||
- Quads or rectangles, with rounded borders and a solid background color.
|
||||
- Images, lazily loaded from the filesystem.
|
||||
- Clip areas, useful to implement scrollables or hide overflowing content.
|
||||
|
||||

|
||||
|
||||
[documentation]: https://docs.rs/iced_wgpu
|
||||
[`iced_native`]: ../native
|
||||
[`wgpu`]: https://github.com/gfx-rs/wgpu-rs
|
||||
[WebGPU API]: https://gpuweb.github.io/gpuweb/
|
||||
[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph
|
||||
|
||||
## Current limitations
|
||||
|
||||
The current implementation is quite naive, it uses:
|
||||
|
||||
- A different pipeline/shader for each primitive
|
||||
- A very simplistic layer model: every `Clip` primitive will generate new layers
|
||||
- _Many_ render passes instead of preparing everything upfront
|
||||
- A glyph cache that is trimmed incorrectly when there are multiple layers (a [`glyph_brush`] limitation)
|
||||
|
||||
Some of these issues are already being worked on! If you want to help, [get in touch!]
|
||||
|
||||
[get in touch!]: ../CONTRIBUTING.md
|
||||
[`glyph_brush`]: https://github.com/alexheretic/glyph-brush
|
15
winit/README.md
Normal file
15
winit/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# `iced_winit`
|
||||
[][documentation]
|
||||
[](https://crates.io/crates/iced_winit)
|
||||
[](https://github.com/hecrj/iced/blob/master/LICENSE)
|
||||
[](https://iced.zulipchat.com)
|
||||
|
||||
`iced_winit` offers some convenient abstractions on top of [`iced_native`] to quickstart development when using [`winit`].
|
||||
|
||||
It exposes a renderer-agnostic `Application` trait that can be implemented and then run with a simple call. The use of this trait is optional. A `conversion` module is provided for users that decide to implement a custom event loop.
|
||||
|
||||

|
||||
|
||||
[documentation]: https://docs.rs/iced_winit
|
||||
[`iced_native`]: ../native
|
||||
[`winit`]: https://github.com/rust-windowing/winit
|
Loading…
Reference in New Issue
Block a user