summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-20 09:41:04 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-20 09:41:04 +0100
commitcb4827059fdb34fa9b0cea714fb81b28741a08e7 (patch)
tree4980866f610c0c6a27aa99638c43f7eeee170d46
parentc47f5095c85d5b259b298dd2446929dc9cbf1753 (diff)
downloadiced-cb4827059fdb34fa9b0cea714fb81b28741a08e7.tar.gz
iced-cb4827059fdb34fa9b0cea714fb81b28741a08e7.tar.bz2
iced-cb4827059fdb34fa9b0cea714fb81b28741a08e7.zip
Add `README` for each subcrate
-rw-r--r--core/README.md13
-rw-r--r--native/README.md23
-rw-r--r--web/README.md15
-rw-r--r--wgpu/README.md37
-rw-r--r--winit/README.md15
5 files changed, 103 insertions, 0 deletions
diff --git a/core/README.md b/core/README.md
new file mode 100644
index 00000000..8f967796
--- /dev/null
+++ b/core/README.md
@@ -0,0 +1,13 @@
+# `iced_core`
+[![Documentation](https://docs.rs/iced_core/badge.svg)][documentation]
+[![Crates.io](https://img.shields.io/crates/v/iced_core.svg)](https://crates.io/crates/iced_core)
+[![License](https://img.shields.io/crates/l/iced_core.svg)](https://github.com/hecrj/iced/blob/master/LICENSE)
+[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](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.
+
+![iced_core](../docs/graphs/core.png)
+
+[documentation]: https://docs.rs/iced_core
diff --git a/native/README.md b/native/README.md
new file mode 100644
index 00000000..60f350b8
--- /dev/null
+++ b/native/README.md
@@ -0,0 +1,23 @@
+# `iced_native`
+[![Documentation](https://docs.rs/iced_native/badge.svg)][documentation]
+[![Crates.io](https://img.shields.io/crates/v/iced_native.svg)](https://crates.io/crates/iced_native)
+[![License](https://img.shields.io/crates/l/iced_native.svg)](https://github.com/hecrj/iced/blob/master/LICENSE)
+[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](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.
+
+![iced_native](../docs/graphs/native.png)
+
+[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
diff --git a/web/README.md b/web/README.md
new file mode 100644
index 00000000..f86b2cb7
--- /dev/null
+++ b/web/README.md
@@ -0,0 +1,15 @@
+# `iced_web`
+[![Documentation](https://docs.rs/iced_web/badge.svg)][documentation]
+[![Crates.io](https://img.shields.io/crates/v/iced_web.svg)](https://crates.io/crates/iced_web)
+[![License](https://img.shields.io/crates/l/iced_web.svg)](https://github.com/hecrj/iced/blob/master/LICENSE)
+[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](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`].
+
+![iced_core](../docs/graphs/web.png)
+
+[documentation]: https://docs.rs/iced_web
+[`iced_core`]: ../core
+[`dodrio`]: https://github.com/fitzgen/dodrio
diff --git a/wgpu/README.md b/wgpu/README.md
new file mode 100644
index 00000000..47038c10
--- /dev/null
+++ b/wgpu/README.md
@@ -0,0 +1,37 @@
+# `iced_wgpu`
+[![Documentation](https://docs.rs/iced_wgpu/badge.svg)][documentation]
+[![Crates.io](https://img.shields.io/crates/v/iced_wgpu.svg)](https://crates.io/crates/iced_wgpu)
+[![License](https://img.shields.io/crates/l/iced_wgpu.svg)](https://github.com/hecrj/iced/blob/master/LICENSE)
+[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](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.
+
+![iced_wgpu](../docs/graphs/wgpu.png)
+
+[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
diff --git a/winit/README.md b/winit/README.md
new file mode 100644
index 00000000..b11184cb
--- /dev/null
+++ b/winit/README.md
@@ -0,0 +1,15 @@
+# `iced_winit`
+[![Documentation](https://docs.rs/iced_winit/badge.svg)][documentation]
+[![Crates.io](https://img.shields.io/crates/v/iced_winit.svg)](https://crates.io/crates/iced_winit)
+[![License](https://img.shields.io/crates/l/iced_winit.svg)](https://github.com/hecrj/iced/blob/master/LICENSE)
+[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](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.
+
+![iced_winit](../docs/graphs/winit.png)
+
+[documentation]: https://docs.rs/iced_winit
+[`iced_native`]: ../native
+[`winit`]: https://github.com/rust-windowing/winit