Commit graph

2051 commits

Author SHA1 Message Date
Emil Ernerfeldt
931e716b97
Add egui_wgpu crate (#1564)
Based on https://github.com/hasenbanck/egui_wgpu_backend

`egui-wgpu` is now an official backend for `eframe` (opt-in).

Use the `wgpu` feature flag on `eframe` and the `NativeOptions::renderer` settings to pick it.

Co-authored-by: Nils Hasenbanck <nils@hasenbanck.de>
Co-authored-by: Sven Niederberger <niederberger@embotech.com>
Co-authored-by: Sven Niederberger <73159570+s-nie@users.noreply.github.com>
2022-05-12 09:02:28 +02:00
4JX
3d52cc8867
Fix docstring in area.rs (#1620) 2022-05-11 22:44:29 +02:00
sy1ntexx
d850b47f9e
Added Extra1 & Extra2 pointer buttons (#1603)
Extra1 is usually extra back button on most mice & Extra2 is usually extra forward button.
2022-05-11 22:44:00 +02:00
Emil Ernerfeldt
9624de6c41
Fix dead-lock when alt-tabbing while also showing a tooltip (#1618)
Closes https://github.com/emilk/egui/issues/1609
2022-05-11 20:56:57 +02:00
4JX
c47e20c733
Allow manually painting the CollapsingState icon (#1592)
* Allow manually painting the CollapsingState icon

* Update egui/src/containers/collapsing_header.rs

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>

* Oops

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2022-05-11 19:02:37 +02:00
Luke Newcomb
e44c9b8e54
Fix image button padding on hover (#1595) 2022-05-11 11:58:15 +02:00
Emil Ernerfeldt
7b18fab7a4
Optimize tessellation of filled circles (#1616)
When painting a scatter plot we sometimes want to paint hundreds of thousands of points (filled circles) on screen every frame.

In this PR the font texture atlas is pre-populated with some filled circled of various radii. These are then used when painting (small) filled circled, which means A LOT less triangles and vertices are generated for them.

In a new benchmark we can see a 10x speedup in circle tessellation, but the the real benefit comes in the painting of these circles: since we generate a lot less vertices, the backend painter has less to do.

In a real-life scenario with a lot of things being painted (including around 100k points) I saw tessellation go from 35ms -> 7ms and painting go from 45ms -> 1ms. This means the total frame time went from 80ms to 8ms, or a 10x speedup.
2022-05-10 19:31:19 +02:00
Emil Ernerfeldt
28efc0e1c8 emath: Implement NumExt on all integer types 2022-05-09 12:44:28 +02:00
Emil Ernerfeldt
d69ce546fa Release egui_glow 0.18.1 - remove unnecessary calls to gl.get_error 2022-05-09 12:43:37 +02:00
Nigecat
87ca29173d
Fix typo in ui.rs (waker -> weaker) (#1586) 2022-05-06 10:36:49 +02:00
Alejandro Perea
fe6e1ce28f
Add *_released & *_clicked PointerState methods (#1582) 2022-05-05 23:26:15 +02:00
Emil Ernerfeldt
e82b87ca73
Remove calls to gl.getError in release builds (#1583)
This slows down the web version a lot, especially on some browsers

Publish new web demo
2022-05-05 23:17:33 +02:00
carrotflakes
cb2298e98b
Fix CircleShape::visual_bounding_rect() (#1575) 2022-05-05 09:16:00 +02:00
Reilly Moore
1dd014cbed
mark the response of a toggle_value as changed on click (#1573) 2022-05-04 21:45:14 +02:00
René Rössler
d3af3a6de1
egui_extras date picker: fix Feb 29 crash (#1571) 2022-05-04 19:30:41 +02:00
Emil Ernerfeldt
32b4781da2
Improve web demo for mobile (#1556)
`egui_demo_app/lib`: add "About egui" window, and improve mobile layout

This makes the app responsive, removing the side bars on mobile and turning them into drop-down menus instead.
2022-05-02 13:13:35 +02:00
Emil Ernerfeldt
078be52ff8 README.md: Fix broken links to toggle_switch.rs example code 2022-05-01 15:27:12 +02:00
Emil Ernerfeldt
b30224471c
Release 0.18.1 of egui & epaint - Change Shape::Callback to &mut dyn Any (#1552) 2022-05-01 11:35:29 +02:00
Emil Ernerfeldt
dc26890a80 Release 0.18.0 - Shape::Callback, Table, and better text contrast 2022-04-30 20:27:27 +02:00
Emil Ernerfeldt
9394e7ea22 Publish new web demo 2022-04-30 20:23:40 +02:00
Emil Ernerfeldt
f0e6332b42
Fix cargo deny (#1549)
* Make the strip demo less ugly

* revert duplicated windows dependency in Cargo.lock

* cargo update

* Remove duplicated windows dependency by reverting rfd

* And again for parking_lot_core
2022-04-30 20:18:59 +02:00
Emil Ernerfeldt
d24599f3cc Revert tts version to 0.20 2022-04-30 19:23:44 +02:00
Emil Ernerfeldt
45b0a071c8 Clean up changelogs and add contributors section 2022-04-30 19:21:40 +02:00
Emil Ernerfeldt
b41fb585fe Add doclinks to egui_extras::RetainedImage 2022-04-30 18:36:24 +02:00
Emil Ernerfeldt
ec57683c1a Update some crates 2022-04-30 18:05:58 +02:00
Emil Ernerfeldt
00471f2887 Update cint 0.2 -> 0.3 2022-04-30 18:01:24 +02:00
Emil Ernerfeldt
ed4fe43e7a Update tts 0.20 -> 0.21 2022-04-30 17:59:30 +02:00
Emil Ernerfeldt
30aeb2a94f Update webbrowser 0.6 -> 0.7 2022-04-30 17:58:12 +02:00
Emil Ernerfeldt
11e8ffa079 Reduce Plot::show code bloat by adding Plot::show_dyn 2022-04-30 17:51:07 +02:00
Emil Ernerfeldt
003dc4aac9 egui_demo_app: add link to my twitter 2022-04-30 17:50:39 +02:00
Emil Ernerfeldt
051deb293f mute warning when building for wasm 2022-04-30 17:47:30 +02:00
Emil Ernerfeldt
51f6cd9c58 Simplify plot demo code 2022-04-30 17:45:39 +02:00
Emil Ernerfeldt
e5ccfedd61 Escape some strings in build_demo_web.sh 2022-04-30 17:18:31 +02:00
Emil Ernerfeldt
462ad5a7f6 egui_demo_app: fall back to dark mode if there is no system preference 2022-04-30 17:18:31 +02:00
Emil Ernerfeldt
3ace620f37 Code cleanup in eframe web backend 2022-04-30 17:18:31 +02:00
Emil Ernerfeldt
9b9c5005d3 CI and check.sh: run cargo doc for all crates 2022-04-30 15:51:46 +02:00
Emil Ernerfeldt
603e5bc5fb Add Rect::lerp 2022-04-30 15:50:12 +02:00
Emil Ernerfeldt
b137f16472 Make members of Response public, but hide documentation
Discourage their direct use, but allow it
2022-04-30 15:49:50 +02:00
Emil Ernerfeldt
c869f67066 Simplify file_dialog example 2022-04-30 15:49:22 +02:00
Emil Ernerfeldt
8a2470b45e example hello_world: remove frame.set_window_size
it doesn't work very well
2022-04-30 15:47:55 +02:00
Emil Ernerfeldt
afd27ca664 Simplify eframe web panic handler code 2022-04-30 15:47:34 +02:00
Emil Ernerfeldt
1983d19614 eframe: fix wrong clear color on native 2022-04-30 15:42:35 +02:00
Emil Ernerfeldt
da2ce58127 egui_demo_app: don't do a transparent native window
It doesn't work great on Mac
2022-04-30 15:42:18 +02:00
Emil Ernerfeldt
e1bcaeebe5 App::clear_color: give egui::Visuals as argument 2022-04-30 15:41:43 +02:00
Emil Ernerfeldt
8303523ccf
Precompute rounded vertices (#1547)
Co-authored-by: Daniel Buch Hansen <boogiewasthere@gmail.com>
2022-04-30 13:14:33 +02:00
Emil Ernerfeldt
3a83a600bb
Add a custom 3D demo using glow to egui_demo_app (#1546) 2022-04-30 12:58:29 +02:00
Emil Ernerfeldt
bb421c7e8a
Remove egui_web and epi (#1545)
* 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
2022-04-30 10:44:35 +02:00
Emil Ernerfeldt
18d529203a Publish new web demo to fix source links following PR #1540
https://github.com/emilk/egui/pull/1540
2022-04-29 08:23:56 +02:00
Emil Ernerfeldt
ed002acc68
Refactor: move things into eframe (#1542)
* Move all epi-related code from egui_glow into eframe

* Move epi stuff from egui-winit into eframe

* Remove mention of epi in egui

* Remove mention of epi in egui_glium

* Remove trait epi::NativeTexture

* Remove confusing mentions of epi

* Refactor egui_web: break up into smaller files

* Clean up feature flags further, and update changelogs

* Clean up check.sh

* Small cleanup of egui_web/Cargo.toml

* Fix dependencies for pure_glow example

* Fix clippy false positive
2022-04-29 08:17:49 +02:00
Nihaal Sangha
5ea51c3f0b
Fix typo in README (#1533) 2022-04-29 00:36:04 +02:00