You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Remove integration name (it is always eframe)
* Remove egui_web crate
* Move egui_web/CHANGELOG.md into eframe/CHANGELOG.md
* Remove all mentions of egui_web
* Remove epi crate and absorb into eframe
* egui_glow: only use puffin on native
* Remove WASM doc from CI (we don't generate it anyways!)
* Remove eframe::epi and improve eframe docs
Copy file name to clipboardexpand all lines: ARCHITECTURE.md
+3-10
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ Also see [`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/master/CONTRIBUT
5
5
6
6
7
7
## Crate overview
8
-
The crates in this repository are: `egui, emath, epaint, egui_extras, epi, egui-winit, egui_web, egui_glium, egui_glow, egui_demo_lib, egui_demo_app`.
8
+
The crates in this repository are: `egui, emath, epaint, egui_extras, egui-winit, egui_glium, egui_glow, egui_demo_lib, egui_demo_app`.
9
9
10
10
### `egui`: The main GUI library.
11
11
Example code: `if ui.button("Click me").clicked() { … }`
@@ -24,31 +24,24 @@ Depends on `emath`.
24
24
### `egui_extras`
25
25
This adds additional features on top of `egui`.
26
26
27
-
### `epi`
28
-
Depends only on `egui`.
29
-
Adds a thin application level wrapper around `egui` for hosting an `egui` app inside of `eframe`.
30
-
31
27
### `egui-winit`
32
28
This crates provides bindings between [`egui`](https://github.com/emilk/egui) and [winit](https://crates.io/crates/winit).
33
29
34
30
The library translates winit events to egui, handled copy/paste, updates the cursor, open links clicked in egui, etc.
35
31
36
-
### `egui_web`
37
-
Puts an egui app inside the web browser by compiling to WASM and binding to the web browser with [`js-sys`](https://crates.io/crates/js-sys) and [`wasm-bindgen`](https://crates.io/crates/wasm-bindgen). Paints the triangles that egui outputs using WebGL.
38
-
39
32
### `egui_glium`
40
33
Puts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glium](https://github.com/glium/glium).
41
34
42
35
### `egui_glow`
43
36
Puts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glow](https://github.com/grovesNL/glow).
44
37
45
38
### `eframe`
46
-
A wrapper around `egui_web` + `egui_glium`, so you can compile the same app for either web or native.
39
+
`eframe` is the official `egui` framework, built so you can compile the same app for either web or native.
47
40
48
41
The demo that you can see at <https://www.egui.rs> is using `eframe` to host the `egui`. The demo code is found in:
49
42
50
43
### `egui_demo_lib`
51
-
Depends on `egui` + `epi`.
44
+
Depends on `egui`.
52
45
This contains a bunch of uses of `egui` and looks like the ui code you would write for an `egui` app.
Copy file name to clipboardexpand all lines: CHANGELOG.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# egui changelog
2
2
All notable changes to the `egui` crate will be documented in this file.
3
3
4
-
NOTE: [`epaint`](epaint/CHANGELOG.md), [`eframe`](eframe/CHANGELOG.md), [`egui_web`](egui_web/CHANGELOG.md), [`egui-winit`](egui-winit/CHANGELOG.md), [`egui_glium`](egui_glium/CHANGELOG.md), and [`egui_glow`](egui_glow/CHANGELOG.md) have their own changelogs!
4
+
NOTE: [`epaint`](epaint/CHANGELOG.md), [`eframe`](eframe/CHANGELOG.md), [`egui-winit`](egui-winit/CHANGELOG.md), [`egui_glium`](egui_glium/CHANGELOG.md), and [`egui_glow`](egui_glow/CHANGELOG.md) have their own changelogs!
Copy file name to clipboardexpand all lines: README.md
+5-7
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ If you have questions, use [GitHub Discussions](https://github.com/emilk/egui/di
58
58
59
59
## Demo
60
60
61
-
[Click to run egui web demo](https://www.egui.rs/#demo) (works in any browser with WASM and WebGL support). Uses [`egui_web`](https://github.com/emilk/egui/tree/master/egui_web).
61
+
[Click to run egui web demo](https://www.egui.rs/#demo) (works in any browser with WASM and WebGL support). Uses [`eframe`](https://github.com/emilk/egui/tree/master/eframe).
62
62
63
63
To test the demo app locally, run `cargo run --release -p egui_demo_app`.
64
64
@@ -160,14 +160,12 @@ An integration needs to do the following each frame:
160
160
161
161
### Official integrations
162
162
163
-
If you're making an app, your best bet is using [`eframe`](https://github.com/emilk/egui/tree/master/eframe), the official egui framework. It lets you write apps that work on both the web and native. `eframe` is just a thin wrapper over `egui_web` and `egui_glow` (see below).
164
-
165
163
These are the official egui integrations:
166
164
165
+
*[`eframe`](https://github.com/emilk/egui/tree/master/eframe) for compiling the same app to web/wasm and desktop/native. Uses `egui_glow` and `egui-winit`.
167
166
*[`egui_glium`](https://github.com/emilk/egui/tree/master/egui_glium) for compiling native apps with [Glium](https://github.com/glium/glium).
168
167
*[`egui_glow`](https://github.com/emilk/egui/tree/master/egui_glow) for rendering egui with [glow](https://github.com/grovesNL/glow) on native and web, and for making native apps.
169
-
*[`egui_web`](https://github.com/emilk/egui/tree/master/egui_web) for making a web app. Compiles to WASM, renders with WebGL. [Click to run the egui demo](https://www.egui.rs/#demo). Uses `egui_glow`.
170
-
*[`egui-winit`](https://github.com/emilk/egui/tree/master/egui-winit) for integrating with [winit](https://github.com/rust-windowing/winit). `egui-winit` is used by `egui_glium` and `egui_glow`.
168
+
*[`egui-winit`](https://github.com/emilk/egui/tree/master/egui-winit) for integrating with [winit](https://github.com/rust-windowing/winit).
171
169
172
170
### 3rd party integrations
173
171
@@ -217,7 +215,7 @@ loop {
217
215
}
218
216
```
219
217
220
-
For a reference OpenGL backend, see [the `egui_glium` painter](https://github.com/emilk/egui/blob/master/egui_glium/src/painter.rs), [the `egui_glow` painter](https://github.com/emilk/egui/blob/master/egui_glow/src/painter.rs), or [the `egui_web``WebGL` painter](https://github.com/emilk/egui/blob/master/egui_web/src/webgl2.rs).
218
+
For a reference OpenGL backend, see [the `egui_glium` painter](https://github.com/emilk/egui/blob/master/egui_glium/src/painter.rs) or [the `egui_glow` painter](https://github.com/emilk/egui/blob/master/egui_glow/src/painter.rs).
221
219
222
220
### Debugging your integration
223
221
@@ -385,7 +383,7 @@ Notable contributions by:
385
383
*[@optozorax](https://github.com/optozorax): [Arbitrary widget data storage](https://github.com/emilk/egui/pull/257).
Copy file name to clipboardexpand all lines: eframe/CHANGELOG.md
+50-11
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,12 @@
1
1
# Changelog for eframe
2
-
All notable changes to the `eframe`and `epi` crates.
2
+
All notable changes to the `eframe`crate.
3
3
4
-
NOTE: [`egui_web`](../egui_web/CHANGELOG.md), [`egui-winit`](../egui-winit/CHANGELOG.md), [`egui_glium`](../egui_glium/CHANGELOG.md), and [`egui_glow`](../egui_glow/CHANGELOG.md) have their own changelogs!
4
+
NOTE: [`egui-winit`](../egui-winit/CHANGELOG.md), [`egui_glium`](../egui_glium/CHANGELOG.md), and [`egui_glow`](../egui_glow/CHANGELOG.md) have their own changelogs!
5
5
6
6
7
7
## Unreleased
8
-
* Change default for `NativeOptions::drag_and_drop_support` to `true` ([#1329](https://github.com/emilk/egui/pull/1329)).
9
-
* Remove the `egui_glium` feature. `eframe` will now always use `egui_glow` as the native backend ([#1357](https://github.com/emilk/egui/pull/1357)).
8
+
* Removed `eframe::epi` - everything is now in `eframe` (`eframe::App`, `eframe::Frame` etc) ([#1545](https://github.com/emilk/egui/pull/1545)).
10
9
* Removed `Frame::request_repaint` - just call `egui::Context::request_repaint` for the same effect ([#1366](https://github.com/emilk/egui/pull/1366)).
11
-
* Use full browser width by default ([#1378](https://github.com/emilk/egui/pull/1378)).
12
-
* Added new `NativeOptions`: `vsync`, `multisampling`, `depth_buffer`, `stencil_buffer`.
* Changed `App::update` to take `&mut Frame` instead of `&Frame`.
20
17
*`Frame` is no longer `Clone` or `Sync`.
21
18
* Add `glow` (OpenGL) context to `Frame` ([#1425](https://github.com/emilk/egui/pull/1425)).
22
-
* Fixed potential scale bug when DPI scaling changes (e.g. when dragging a window between different displays) ([#1441](https://github.com/emilk/egui/pull/1441)).
23
19
* MSRV (Minimum Supported Rust Version) is now `1.60.0` ([#1467](https://github.com/emilk/egui/pull/1467)).
20
+
21
+
#### Desktop/Native:
22
+
* Remove the `egui_glium` feature. `eframe` will now always use `egui_glow` as the native backend ([#1357](https://github.com/emilk/egui/pull/1357)).
23
+
* Change default for `NativeOptions::drag_and_drop_support` to `true` ([#1329](https://github.com/emilk/egui/pull/1329)).
24
+
* Added new `NativeOptions`: `vsync`, `multisampling`, `depth_buffer`, `stencil_buffer`.
24
25
*`dark-light` (dark mode detection) is now an opt-in feature ([#1437](https://github.com/emilk/egui/pull/1437)).
26
+
* Fixed potential scale bug when DPI scaling changes (e.g. when dragging a window between different displays) ([#1441](https://github.com/emilk/egui/pull/1441)).
25
27
* Added new feature `puffin` to add [`puffin profiler`](https://github.com/EmbarkStudios/puffin) scopes ([#1483](https://github.com/emilk/egui/pull/1483)).
26
28
* Moved app persistence to a background thread, allowing for smoother frame rates (on native).
27
29
30
+
#### Web:
31
+
* Use full browser width by default ([#1378](https://github.com/emilk/egui/pull/1378)).
32
+
* egui code will no longer be called after panic ([#1306](https://github.com/emilk/egui/pull/1306)).
33
+
28
34
29
35
## 0.17.0 - 2022-02-22
30
36
* Removed `Frame::alloc_texture`. Use `egui::Context::load_texture` instead ([#1110](https://github.com/emilk/egui/pull/1110)).
37
+
* Shift-scroll will now result in horizontal scrolling on all platforms ([#1136](https://github.com/emilk/egui/pull/1136)).
38
+
* Log using the `tracing` crate. Log to stdout by adding `tracing_subscriber::fmt::init();` to your `main` ([#1192](https://github.com/emilk/egui/pull/1192)).
39
+
40
+
#### Desktop/Native:
31
41
* The default native backend is now `egui_glow` (instead of `egui_glium`) ([#1020](https://github.com/emilk/egui/pull/1020)).
32
-
* The default web painter is now `egui_glow` (instead of WebGL) ([#1020](https://github.com/emilk/egui/pull/1020)).
33
42
* Automatically detect and apply dark or light mode from system ([#1045](https://github.com/emilk/egui/pull/1045)).
* Fixed `enable_drag` for Windows OS ([#1108](https://github.com/emilk/egui/pull/1108)).
38
-
* Shift-scroll will now result in horizontal scrolling on all platforms ([#1136](https://github.com/emilk/egui/pull/1136)).
39
-
* Log using the `tracing` crate. Log to stdout by adding `tracing_subscriber::fmt::init();` to your `main` ([#1192](https://github.com/emilk/egui/pull/1192)).
47
+
48
+
#### Web:
49
+
* The default web painter is now `egui_glow` (instead of WebGL) ([#1020](https://github.com/emilk/egui/pull/1020)).
50
+
* Fixed glow failure on Chromium ([#1092](https://github.com/emilk/egui/pull/1092)).
51
+
* Updated `eframe::IntegrationInfo::web_location_hash` on `hashchange` event ([#1140](https://github.com/emilk/egui/pull/1140)).
40
52
* Expose all parts of the location/url in `frame.info().web_info` ([#1258](https://github.com/emilk/egui/pull/1258)).
0 commit comments