Commit graph

2201 commits

Author SHA1 Message Date
Emil Ernerfeldt
97ce103209 Release 0.19.0 - wgpu backend, repaint_after, continue-after-close 2022-08-20 16:49:58 +02:00
Emil Ernerfeldt
13f5d62b4b Commit a new web demo 2022-08-20 16:37:59 +02:00
Emil Ernerfeldt
127931ba45
eframe: rename quit/exit to "close" (#1943)
Since https://github.com/emilk/egui/pull/1919 we can continue
the application after closing the native window. It therefore makes
more sense to call `frame.close()` to close the native window,
instead of `frame.quit()`.
2022-08-20 16:08:59 +02:00
Emil Ernerfeldt
2453756782 Fix broken GitHub source links due to #1940 2022-08-20 15:18:02 +02:00
Emil Ernerfeldt
8737933101 Improve documentation and logging 2022-08-20 15:06:43 +02:00
Emil Ernerfeldt
725aa5277b Update crate rfd to 0.10 (in file_dialog example)
Also update ab_glyph from 0.2.15 to 0.2.16
2022-08-20 14:42:37 +02:00
Emil Ernerfeldt
eb10ef94f7 Build-fix for --no-default-features 2022-08-20 14:40:33 +02:00
Emil Ernerfeldt
f4cc1c5465
eframe: Don't follow system theme by default (#1941)
I have gone back and forth on this a bit, but I think the arguments
AGAINST following the system theme are many:

* `dark-light` is a big dependency with problems on Linux.
* Many people prefer the dark mode and ask how to set it as the default
  (even though they are using light mode in their OS).
* A developer may be surprised when the app changes theme when
  they run it on another computer.

So, the path of least surprise is to make this an opt-in feature
with dark mode as the default mode.

On native, you add the `dark-light` feature to enable it.
On web, you set `WebOptions::follow_system_theme`.
2022-08-20 11:11:07 +02:00
Emil Ernerfeldt
40e440b2f7 Update changelog with recent PR merges 2022-08-20 10:42:31 +02:00
Emil Ernerfeldt
041f2e64ba
Move all crates into a crates directory (#1940) 2022-08-20 10:41:49 +02:00
Emil Ernerfeldt
5c63648c02
clean up rust.yml (#1939) 2022-08-20 09:32:48 +02:00
Emil Ernerfeldt
193a434717 eframe persistence: persistence failure is now logged instead of a panic 2022-08-19 12:04:43 +02:00
Emil Ernerfeldt
277f199df4 eframe: make sure we can serialize i128/u128 with ron
Some eframe users may be relying on this.
2022-08-19 12:04:08 +02:00
Emil Ernerfeldt
5514a8afda
Update dependencies (#1933)
* Update ahash from 0.7 to 0.8

Opt to use ahash::HashMap over ahash::AHashMap

* Fix ahash compilation for web

* Update ron to 0.8

* Add note about why we cannot update tiny-skia

* cargo update

    Updating crates.io index
    Updating android_system_properties v0.1.2 -> v0.1.4
    Updating anyhow v1.0.58 -> v1.0.62
    Updating async-broadcast v0.4.0 -> v0.4.1
    Updating async-channel v1.6.1 -> v1.7.1
    Updating async-io v1.7.0 -> v1.8.0
    Updating async-task v4.2.0 -> v4.3.0
    Updating async-trait v0.1.56 -> v0.1.57
    Updating backtrace v0.3.65 -> v0.3.66
    Updating bit-set v0.5.2 -> v0.5.3
    Updating bumpalo v3.10.0 -> v3.11.0
    Updating bytemuck v1.10.0 -> v1.12.1
    Updating bytemuck_derive v1.1.0 -> v1.2.1
    Updating bytes v1.1.0 -> v1.2.1
    Updating cast v0.2.7 -> v0.3.0
    Updating chrono v0.4.19 -> v0.4.22
    Updating clap v3.2.8 -> v3.2.17
    Updating clipboard-win v4.4.1 -> v4.4.2
    Updating combine v4.6.4 -> v4.6.6
    Updating concurrent-queue v1.2.2 -> v1.2.4
    Updating criterion v0.3.5 -> v0.3.6
    Updating criterion-plot v0.4.4 -> v0.4.5
    Updating crossbeam-channel v0.5.5 -> v0.5.6
    Updating crossbeam-deque v0.8.1 -> v0.8.2
    Updating crossbeam-epoch v0.9.9 -> v0.9.10
    Updating crossbeam-utils v0.8.10 -> v0.8.11
    Updating document-features v0.2.1 -> v0.2.3
    Updating dyn-clone v1.0.6 -> v1.0.9
    Removing easy-parallel v3.2.0
    Updating either v1.7.0 -> v1.8.0
    Updating enum-map v2.1.0 -> v2.4.1
    Updating enum-map-derive v0.8.0 -> v0.10.0
    Updating event-listener v2.5.2 -> v2.5.3
    Updating fastrand v1.7.0 -> v1.8.0
    Updating futures-core v0.3.21 -> v0.3.23
    Updating futures-io v0.3.21 -> v0.3.23
    Updating futures-sink v0.3.21 -> v0.3.23
    Updating futures-task v0.3.21 -> v0.3.23
    Updating futures-util v0.3.21 -> v0.3.23
    Updating gimli v0.26.1 -> v0.26.2
    Updating gpu-descriptor v0.2.2 -> v0.2.3
    Removing hashbrown v0.11.2
    Removing hashbrown v0.12.1
      Adding hashbrown v0.12.3
      Adding iana-time-zone v0.1.46
    Updating image v0.24.2 -> v0.24.3
    Updating inplace_it v0.3.3 -> v0.3.4
    Updating itoa v1.0.2 -> v1.0.3
    Updating js-sys v0.3.58 -> v0.3.59
    Updating libc v0.2.126 -> v0.2.132
    Updating libm v0.2.2 -> v0.2.5
    Removing memmap2 v0.3.1
    Removing memmap2 v0.5.4
      Adding memmap2 v0.5.7
    Removing num-iter v0.1.43
    Updating object v0.28.4 -> v0.29.0
    Updating once_cell v1.13.0 -> v1.13.1
    Updating os_str_bytes v6.1.0 -> v6.3.0
    Updating owned_ttf_parser v0.15.0 -> v0.15.1
    Removing parking_lot v0.11.2
    Removing parking_lot_core v0.8.5
    Updating plotters v0.3.1 -> v0.3.3
    Updating plotters-backend v0.3.2 -> v0.3.4
    Updating plotters-svg v0.3.1 -> v0.3.3
    Updating proc-macro-crate v1.1.3 -> v1.2.1
    Updating proc-macro2 v1.0.40 -> v1.0.43
    Updating quote v1.0.20 -> v1.0.21
    Updating redox_syscall v0.2.13 -> v0.2.16
    Updating regex v1.5.6 -> v1.6.0
    Updating regex-syntax v0.6.26 -> v0.6.27
    Updating rfd v0.8.0 -> v0.8.4
    Removing rustc_version v0.4.0
    Updating ryu v1.0.10 -> v1.0.11
    Updating sctk-adwaita v0.4.1 -> v0.4.2
    Removing semver v1.0.12
    Updating serde v1.0.138 -> v1.0.143
    Updating serde_derive v1.0.138 -> v1.0.143
    Updating serde_json v1.0.82 -> v1.0.83
    Updating serde_repr v0.1.8 -> v0.1.9
    Updating slab v0.4.6 -> v0.4.7
    Removing smithay-client-toolkit v0.15.4
    Updating smithay-clipboard v0.6.5 -> v0.6.6
    Updating syn v1.0.98 -> v1.0.99
    Updating thiserror v1.0.31 -> v1.0.32
    Updating thiserror-impl v1.0.31 -> v1.0.32
    Updating time v0.3.11 -> v0.3.13
      Adding tiny-skia v0.7.0
      Adding tiny-skia-path v0.7.0
    Updating tracing v0.1.35 -> v0.1.36
    Updating tracing-core v0.1.28 -> v0.1.29
    Updating tracing-subscriber v0.3.14 -> v0.3.15
    Updating unicode-ident v1.0.1 -> v1.0.3
    Updating unicode_names2 v0.5.0 -> v0.5.1
    Updating ureq v2.4.0 -> v2.5.0
    Updating wasm-bindgen-futures v0.4.31 -> v0.4.32
    Updating web-sys v0.3.58 -> v0.3.59
    Updating webpki-roots v0.22.3 -> v0.22.4
    Updating weezl v0.1.6 -> v0.1.7
    Updating wgpu-core v0.13.1 -> v0.13.2
    Updating wgpu-hal v0.13.1 -> v0.13.2
    Updating wgpu-types v0.13.0 -> v0.13.2
    Updating windows v0.32.0 -> v0.37.0
    Updating windows_aarch64_msvc v0.32.0 -> v0.37.0
    Updating windows_i686_gnu v0.32.0 -> v0.37.0
    Updating windows_i686_msvc v0.32.0 -> v0.37.0
    Updating windows_x86_64_gnu v0.32.0 -> v0.37.0
    Updating windows_x86_64_msvc v0.32.0 -> v0.37.0
    Updating x11-dl v2.19.1 -> v2.20.0
    Updating zbus_names v2.1.0 -> v2.2.0
    Updating zvariant v3.4.1 -> v3.6.0
    Updating zvariant_derive v3.4.1 -> v3.6.0

* Add "Unicode-DFS-2016" to deny.toml whitelist
2022-08-19 11:46:38 +02:00
Asger Nyman Christiansen
eeeb4b7de2
Improve custom_3d_three-d example (#1923)
* Use correct FBO to output

* custom_3d_three-d web

* Update .gitignore

* Do not free the FBO

* Use three-d 0.13

* ThreeDApp

* Only construct model and camera once

* Clean-up and docs

* Web build instructions

* Remove unused dependencies

* Update Cargo.lock

* Fix build

* More fixes

* omg
2022-08-17 21:33:34 +02:00
Emil Ernerfeldt
39b63f6163 Warn if using an TextShape from before a change to pixels_per_point
Closes https://github.com/emilk/egui/issues/1915
2022-08-16 22:47:23 +02:00
Emil Ernerfeldt
9c58f12a6c
eframe: several windows in series (#1919)
* Add example of opening several eframe windows in series

* Reuse the same winit event loop

* Ignore events to the wrong window

* Run run_return again
2022-08-15 16:31:03 +02:00
Zoxc
48e7f219a3
Add CI for android (#1900)
* Add CI for android

* Don't use arboard on Android

* Fix Android support for eframe
2022-08-15 10:19:59 +02:00
Emil Ernerfeldt
923b67ef9c
Update to winit 0.27.2, glutin 0.29.0, glium 0.32 (#1914) 2022-08-14 16:23:46 +02:00
eranfu
38a67f8646
Add PointerState::button_double_clicked() and PointerState::button_triple_clicked(). (#1907)
Co-authored-by: eranfu <eranfu@tencent.com>
2022-08-14 16:10:38 +02:00
Emil Ernerfeldt
7c25a9238e Remove get_ prefix from functions to better follow Rust API Guidelines 2022-08-08 12:21:53 +02:00
Emil Ernerfeldt
e38955fbac Fix: remember to call integration.post_rendering on wgpu path 2022-08-08 12:15:51 +02:00
Emil Ernerfeldt
9e41fa021a eframe: rename render_state to wgpu_render_state for added clarity 2022-08-08 12:15:31 +02:00
Emil Ernerfeldt
66c601f775
Continue execution after closing native eframe window (#1889)
This adds `NativeOptions::run_and_return` with default value `true`.

If `true`, execution will continue after the eframe window is closed. This is a new behavior introduced in this PR.
If `false`, the app will close once the eframe window is closed. The is the old behavior.

This is `true` by default, and the `false` option is only there so we can revert if we find any bugs.

When `true`, [`winit::platform::run_return::EventLoopExtRunReturn::run_return`](https://docs.rs/winit/latest/winit/platform/run_return/trait.EventLoopExtRunReturn.html#tymethod.run_return) is used. The winit docs warns of its usage, recommending `EventLoop::run`, but 🤷 
When `false`, [`winit::event_loop::EventLoop::run`](https://docs.rs/winit/latest/winit/event_loop/struct.EventLoop.html#method.run) is used.

This is a really useful feature. You can now use `eframe` to quickly open up a window and show some data or options, and then continue your program after the `eframe` window is closed

My previous attempt at this caused some problems, but my new attempt seems to be working much better, at least on my Mac.
2022-08-05 08:20:31 +02:00
Lorren Biffin
e3f993d7b4
Fixed bug in custom window example (#1750) 2022-08-04 12:32:27 +02:00
Barugon
2f3c2a360b
Add with_main_align method (#1891)
Co-authored-by: Barugon <barugon@dungeonbox.net>
2022-08-04 12:07:45 +02:00
Emil Ernerfeldt
a827c3e033 Add glow::Painter::intermediate_fbo()
This allow callbacks to restore to the correct framebuffer
after using their own temporary FBO.

See discussion in https://github.com/emilk/egui/issues/1744
2022-08-03 09:38:46 +02:00
Emil Ernerfeldt
53249d36df Remove superflous #[cfg(test)] 2022-08-03 09:31:43 +02:00
Dylan Ancel
1af446b9e8
Make egui_wgpu::RenderPass Send and Sync (#1883)
* Make RenderPass Send and Sync

* Add change to CHANGELOG

* Make CHANGELOG formatting match egui

* Add test
2022-08-03 09:26:16 +02:00
Emil Ernerfeldt
cb0d5a58ab Fix incorrect documentation for Response::context_menu
Closes https://github.com/emilk/egui/issues/1882
2022-08-03 08:26:42 +02:00
Asger Nyman Christiansen
bcc01c8b1c
Add egui/default_fonts feature to pure_glow example (#1881)
It seems to me like the `pure_glow` example was broken sometime in april because of changes to feature flags. The text simply didn't show up which is due to missing fonts unless you figured out that you needed the `egui/default_fonts` feature flag. This change enforces the use of the `egui/default_fonts` feature flag in this example.
2022-08-02 23:04:59 +02:00
Nicolas Musset
e288ca86fd
Remove dependency on AsRef trait for TextBuffer (#1824) 2022-08-02 20:35:37 +02:00
YgorSouza
e39410c37f
Make EasyMark numbered lists allow more than 2 digits (#1826)
Co-authored-by: Ygor Souza <ygor.souza@protonmail.com>
2022-08-02 20:35:25 +02:00
Emil Ernerfeldt
06adb09fa3 Make stick_to_bottom take a bool argument 2022-08-02 20:34:50 +02:00
Emil Ernerfeldt
263c9bd601 Make use of AppRunnerRef
Follow-up to #1650
2022-08-02 17:44:27 +02:00
Stanislav
64496cacb9
Graceful exit from web (#1650)
Return a handle that can be used to stop a running egui instance.
2022-08-02 17:42:55 +02:00
Asger Nyman Christiansen
3eccd341ad
Add depth buffer in native 3D example (#1878)
The `custom_3d_three-d` example does not enable a depth buffer since it is only rendering a triangle. However, if it is used as a starting point for other projects, it is highly likely that a depth buffer is actually needed, therefore I propose to enable it by default.
Also see [this](https://github.com/asny/three-d/issues/268) issue for full context.
2022-08-02 17:31:15 +02:00
Emil Ernerfeldt
10788ccc92
More newlines for improved readability (#1880)
* Add blank lines above all `fn`, `impl`, `struct`, etc
* Even newlines between docstringed struct and enum fields
* Improve some documentation
2022-08-02 17:26:33 +02:00
Emil Ernerfeldt
5d8ef5326b Change build_demo_web.sh option from --fast to --optimize 2022-08-02 09:56:38 +02:00
Emil Ernerfeldt
2500a60062 Code cleanup and improved docs 2022-07-30 18:40:49 +02:00
Kubik
5fb4efa768
Improve documentation about panel order (#1869) 2022-07-30 17:11:56 +02:00
Emil Ernerfeldt
d659e5d24f Add Shape::hline and Shape::vline 2022-07-30 15:34:24 +02:00
Emil Ernerfeldt
c62f3409bd Fix misnamed variable (content_is_too_small -> content_is_too_large)
See https://github.com/emilk/egui/issues/1376
2022-07-30 15:33:08 +02:00
quietvoid
8997519eb2
Fix valign typo (#1870) 2022-07-30 14:55:34 +02:00
Emil Ernerfeldt
235d77713d Improve README.md files 2022-07-29 16:07:48 +02:00
Emil Ernerfeldt
6de9d89b65 Add emath::exponential_smooth_factor 2022-07-29 16:07:35 +02:00
Emil Ernerfeldt
4e8a6e3370 misc code cleanup 2022-07-29 16:07:26 +02:00
Emil Ernerfeldt
b0fa0c65cc fix typo 2022-07-29 15:56:04 +02:00
Emil Ernerfeldt
2612dd1064 Add Visuals::error_fg_color and Visuals::warn_fg_color 2022-07-29 15:32:32 +02:00
Emil Ernerfeldt
8c09804abd
eframe: selectively expose parts of the API based on compile target (#1867)
A lot of the `eframe` API is native-only or web-only. With this PR, only the parts that are implemented for each platform is exposed.

This means you'll need to add `#[cfg(target_arch = "wasm32")]` around code that uses the web-parts of the eframe API, and add `#[cfg(not(target_arch = "wasm32"))]` around the parts that are for native/desktop.
2022-07-29 14:37:23 +02:00