Merge branch 'master' into improvement/docs

This commit is contained in:
Héctor Ramón Jiménez 2019-11-22 20:30:57 +01:00
commit 42e775fece
36 changed files with 683 additions and 383 deletions

View file

@ -1,6 +1,6 @@
[package]
name = "iced_native"
version = "0.1.0-alpha"
version = "0.1.0"
authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>"]
edition = "2018"
description = "A renderer-agnostic library for native GUIs"
@ -8,6 +8,6 @@ license = "MIT"
repository = "https://github.com/hecrj/iced"
[dependencies]
iced_core = { version = "0.1.0-alpha", path = "../core", features = ["command"] }
iced_core = { version = "0.1.0", path = "../core", features = ["command"] }
twox-hash = "1.5"
raw-window-handle = "0.3"

35
native/README.md Normal file
View file

@ -0,0 +1,35 @@
# `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
## Installation
Add `iced_native` as a dependency in your `Cargo.toml`:
```toml
iced_native = "0.1.0"
```
__Iced moves fast and the `master` branch can contain breaking changes!__ If
you want to learn about a specific release, check out [the release list].
[the release list]: https://github.com/hecrj/iced/releases

View file

@ -108,11 +108,7 @@ where
let layout = if hash == cache.hash {
cache.layout
} else {
let layout_start = std::time::Instant::now();
let layout = renderer.layout(&root);
dbg!(std::time::Instant::now() - layout_start);
layout
renderer.layout(&root)
};
UserInterface {