Commit Graph

268 Commits

Author SHA1 Message Date
AsmPrgmC3 3a634ff46e
Reintroduce color fixes to WebGL1 backend, but only if sRGB textures are supported (#652)
Also removed the 300es shaders, as they'd be identical to the 100es ones.
2021-08-26 18:40:35 +02:00
AsmPrgmC3 31a1882997
Fix alpha blending in WebGL2 backend (#650)
Add a render-to-texture step with an sRGBA8 texture
2021-08-25 21:28:42 +02:00
Emil Ernerfeldt cb566fc295 Release 0.14.0 - Ui panels and bug fixes 2021-08-24 16:47:10 +02:00
Emil Ernerfeldt 91bdf9ba6e
egui_web: make text thicker and less pixelated (#640)
Closes https://github.com/emilk/egui/issues/516
2021-08-21 21:18:00 +02:00
Emil Ernerfeldt a256ca115b
Drag and drop files into egui_glium and egui_web (#637)
* Implement file drag-and-drop for egui_glium

* Implement file drag-and-drop into egui_web

* Cleanup
2021-08-20 22:20:45 +02:00
Emil Ernerfeldt d6299bcd91 Expand egui_web/README.md with list of shortcomings 2021-08-16 21:17:15 +02:00
skuzins 6a8a93e120
Generalize http fetch (#488)
* Generalize http fetch

- allow bytes as request body
- expose request and response headers in API
- update http example to show response headers and allow POST requests

* clippy fixes

* add missing comment, pub

* doc comment fix

* fix: missing argument when feature syntect not enabled

* formatting fixes

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

* remove commented out code

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

* formatting fixes

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

* cargo fmt

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-08-15 16:56:46 +02:00
mental eefc56c213
fix and pin web-sys breakage in `Navigator::clipboard` (#608) 2021-08-15 16:55:33 +02:00
Emil Ernerfeldt 784bac53f1 Improve error message on bad texture allocation
Fixes https://github.com/emilk/egui/issues/592
2021-07-29 22:20:22 +02:00
Emil Ernerfeldt 4feee59f84 Improve README files for all crates 2021-07-29 22:04:20 +02:00
Emil Ernerfeldt d807451348 Release 0.13.0 - Better panels, plots and new visual style 2021-06-24 20:00:06 +02:00
Emil Ernerfeldt eb6c293774 Update crates glium, tts, and run cargo update 2021-06-24 17:51:39 +02:00
Emil Ernerfeldt 6e7e88ba80
Use old 1.51 toolchain instead of bleeding edge (#505)
* Use old 1.51 toolchain instead of bleeding edge

1.52 and 1.53 has problems with incremental compilation,
so some people chose to stay on 1.51 for now.

So let's make sure egui supports 1.51 for a while!

* Update to cint 0.2.2 to get rust 1.51.0 compatability
2021-06-23 09:16:39 +02:00
Emil Ernerfeldt 269a4538d9 clippy fixes for rust 1.53 2021-06-22 23:38:34 +02:00
Emil Ernerfeldt 62f58a3b05 egui_web: default to light mode unless prefers-color-scheme: dark 2021-06-07 20:56:18 +02:00
Emil Ernerfeldt 44b573f6a6 epi: merge App::load into App::setup, and provide Frame argument
This gives users more control over the order of load/setup.

It also allows users to load textures in setup.
2021-06-07 20:53:33 +02:00
Emil Ernerfeldt effd3c7440 egui_web: Vastly improve WebGL alpha blending
This finally fixes the rough edges on text, especially in light mode
2021-06-04 23:03:48 +02:00
Emil Ernerfeldt ec6268e4ac egui_web: document how to fill the full width of the browser 2021-06-03 18:56:37 +02:00
Emil Ernerfeldt 6a576f4c34 Rename Output::text_cursor to text_cursor_pos 2021-05-20 21:58:44 +02:00
Ivo Vollrath 67c6002578
Fix mac scroll modifier (#402)
* fix modifier key for mouse wheel zoom

* update CHANGELOG

* fix zoom modifier for web backend

* improve instructions in plot demo window

* accept emilk's proposed change

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

* update UI instructions for Plot demo

* improve UI instructions for plot demo

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-05-20 19:56:33 +02:00
Emil Ernerfeldt 442b953964 Tell docs.rs to use the --all-features flag when generating docs
Closes https://github.com/emilk/egui/issues/381
2021-05-12 20:02:25 +02:00
Emil Ernerfeldt 934bb7f5e9 egui_web: fix double-paste bug 2021-05-11 19:25:31 +02:00
Emil Ernerfeldt 8f8ba16696 Release 0.12.0 - Multitouch, user memory, window pivots, and improved plots 2021-05-10 18:27:39 +02:00
Emil Ernerfeldt 7747a1f171 Update tts 0.15 -> 0.16 2021-05-09 14:42:14 +02:00
Emil Ernerfeldt 4022b84ae7 group rustdoc lints under rustdoc:: prefix 2021-05-09 14:01:57 +02:00
Emil Ernerfeldt 04d9ce227b Tidy up multitouch code: remove double spaces after full stop
Weirdest thing I've seen in my life.
2021-05-08 22:49:40 +02:00
Ivo Vollrath 03721dbfd8
Basic multi touch support (issue #279) (#306)
* translate touch events from glium to egui

Unfortunately, winit does not seem to create _Touch_ events for the touch pad
on my mac.  Only _TouchpadPressure_ events are sent.

Found some issues (like
[this](https://github.com/rust-windowing/winit/issues/54)), but I am not sure
what they exactly mean:  Sometimes, touch events are mixed with
touch-to-pointer translation in the discussions.

* translate touch events from web_sys to egui

The are a few open topics:
- egui_web currently translates touch events into pointer events.
  I guess this should change, such that egui itself performs this kind of
  conversion.
- `pub fn egui_web::pos_from_touch_event` is a public function, but I
  would like to change the return type to an `Option`.  Shouldn't this
  function be private, anyway?

* introduce `TouchState` and `Gesture`

InputState.touch was introduced with type `TouchState`, just as
InputState.pointer is of type `Pointer`.

The TouchState internally relies on a collection of `Gesture`s.  This commit
provides the first rudimentary implementation of a Gesture, but has no
functionality, yet.

* add method InputState::zoom()

So far, the method always returns `None`, but it should work as soon as the
`Zoom` gesture is implemented.

* manage one `TouchState` per individual device

Although quite unlikely, it is still possible to connect more than one touch
device. (I have three touch pads connected to my MacBook in total, but
unfortunately `winit` sends touch events for none of them.)

We do not want to mix-up the touches from different devices.

* implement control loop for gesture detection

The basic idea is that each gesture can focus on detection logic and does not
have to care (too much) about managing touch state in general.

* streamline `Gesture` trait, simplifying impl's

* implement first version of Zoom gesture

* fix failing doctest

a simple `TODO` should be enough

* get rid of `Gesture`s

* Provide a Zoom/Rotate window in the demo app

For now, it works for two fingers only.  The third finger interrupts the
gesture.

Bugs:
- Pinching in the demo window also moves the window -> Pointer events must be
  ignored when touch is active
- Pinching also works when doing it outside the demo window -> it would be nice
  to return the touch info in the `Response` of the painter allocation

* fix comments and non-idiomatic code

* update touch state *each frame*

* change egui_demo to use *relative* touch data

* support more than two fingers

This commit includes an improved Demo Window for egui_demo, and a complete
re-write of the gesture detection.  The PR should be ready for review, soon.

* cleanup code and comments for review

* minor code simplifications

* oops – forgot the changelog

* resolve comment fee8ed83db (r623226656)

* accept suggestion https://github.com/emilk/egui/pull/306#discussion_r623229228

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

* fix syntax error (dough!)

* remove `dbg!` (why didnt clippy see this?)

* apply suggested diffs from review

* fix conversion of physical location to Pos2

* remove redundanct type `TouchAverages`

* remove trailing space

* avoid initial translation jump in plot demo

* extend the demo so it shows off translation

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-05-06 21:01:10 +02:00
Emil Ernerfeldt 0d71017ad4 clippy fixes for rust 1.52 2021-05-06 20:49:22 +02:00
Emil Ernerfeldt c2744a1437
Implement trackpad pinch-to-zoom for plots in egui_web (#333)
This adds a new `zoom_delta` to input.
This is hooked up to ctrl-scroll on egui_web and egui_glium.

Browsers convert trackpad pinch gestures to ctrl-scroll,
so this means you can not pinch-to-zoom plots (on trackpad).

In the future we can support multitouch pinch-to-zoom via the same
`InputState::zoom_factor()` function
2021-04-25 17:04:34 +02:00
Emil Ernerfeldt b69bc2c06a egui_web: Scroll faster when scrolling with mouse wheel
Closes https://github.com/emilk/egui/issues/159
2021-04-24 11:08:29 +02:00
Emil Ernerfeldt 76d5229821
CI: run cargo doc (#309)
* Deny doc errors

* Add intentional bad intradoc link to test CI

* Add cargo doc to CI

* Fix carg doc web (add wasm32 target)

* Fix intentionally broken doc-link
2021-04-15 10:35:15 +02:00
Lin Han 20bf09560e
IME: Handle composition events to show suggestion on web (#278)
* Handle composition message to show suggestion.

* CI check

* Apply suggestions from code review

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

* Some minor changes

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-04-12 20:57:14 +02:00
Emil Ernerfeldt b30cb3313a
Try to allow turning off default_fonts for all libs (#266) 2021-04-07 20:14:44 +02:00
Emil Ernerfeldt d544c3dd8b Release 0.11.0 - Optimization, screen reader & new layout logic 2021-04-05 14:49:06 +02:00
Emil Ernerfeldt 7792ee0422 Update tts from 0.14 -> 0.15 (screen reader feature) 2021-04-05 14:23:42 +02:00
Emil Ernerfeldt aba2108159 Replace JSON with RON for persistence (epi/eframe/glium/web) 2021-04-05 14:23:42 +02:00
Emil Ernerfeldt 1068750bbc Clean up egui_web code a bit 2021-04-01 23:07:15 +02:00
Emil Ernerfeldt 1f965d16a2 Try the new cargo dependency resolver added in rust 1.51 2021-03-31 23:07:37 +02:00
Lin Han 22cd1a8e10
Move IME candidate window following text cursor (#258)
* egui_web: enable IME support on web.

* Move candidate window following text cursor.

* Preclude too frequent agent movement.

* IME candidate window move on native app.
2021-03-30 08:48:55 +02:00
Emil Ernerfeldt 1bb100d766 Updated changelogs 2021-03-27 10:37:31 +01:00
Lin Han 795282edc0
egui_web: enable IME support on web. (#253) 2021-03-26 13:56:26 +01:00
Emil Ernerfeldt 70c6f4596a Add checkbox in demo app to turn screen reader on/off 2021-03-24 21:35:29 +01:00
Emil Ernerfeldt f5c372910c Replace emath::clamp with f32::clamp (new in rustc 1.50) 2021-03-21 17:47:03 +01:00
triangle drawer b1883d5d48
Add functions to register textures in egui_web and egui_glium (#226)
* add texture registering function

* fmt

* Revert "add texture registering function"

This reverts commit f9b4db12

* make get_texture public to get render target owned by Painter .

* revert egui_web painter.rs change
2021-03-13 12:41:51 +01:00
Emil Ernerfeldt 958aea922f Add a lot more CursorIcon's 2021-03-13 12:38:03 +01:00
Emil Ernerfeldt 4c45ca113e Make sure to include license files in the next release 2021-03-09 18:35:13 +01:00
Emil Ernerfeldt 44cd304cdf Add experimental screen_reader feature
Part of https://github.com/emilk/egui/issues/167
2021-03-08 20:58:01 +01:00
Emil Ernerfeldt 1c06622dbc Hold down a modifier key when clicking a link to open it in a new tab 2021-03-08 17:48:23 +01:00
Emil Ernerfeldt cd4c07e09a Output events when widgets gain keyboard focus
Part of https://github.com/emilk/egui/issues/167
2021-03-07 19:45:20 +01:00
Ridan Vandenbergh 4df8418e41
fix: Modern browsers encode Space as ' ' (#208) 2021-03-07 10:20:11 +01:00
Emil Ernerfeldt fb2db4940e Release 0.10.0 - Plot and polish 2021-02-28 20:11:37 +01:00
Emil Ernerfeldt 8fb1472560 Add glsl files to egui_web and egui_glium includes 2021-02-28 20:11:37 +01:00
Emil Ernerfeldt e417fac52e Fix web shaders
Got broken in https://github.com/emilk/egui/pull/187
2021-02-28 19:47:01 +01:00
Emil Ernerfeldt 84cc227f11 eframe: always provide a texture allocator 2021-02-28 19:09:48 +01:00
Emil Ernerfeldt 5f6a468812 Add Context::set_pixels_per_point to control the scale of the UI 2021-02-21 11:23:33 +01:00
Kayo Phoenix c9919daa11
Added shaders on GLSL 1.2 (#187)
* Added shaders on GLSL 1.2

- Used `glium::program` to create shaders
- Moved shaders code to its own sources and include it as str
- Added shaders implementation on GLSL which allows run egui on old hardware
  (Raspberry Pi 1/zero in game again)

* Moved webgl shaders code to sources in `shader` subdir

* Added GLSL ES shaders to glium backend to support OpenGL ES

* Described changes related to GLSL versions support
2021-02-20 19:48:02 +01:00
Emil Ernerfeldt 7dad76b913 Use explicit `epaint` over `paint` alias (re-export)
egui reexports the `epaint` crate both under its original name
and under the alias `paint` (for historical reasons)
2021-02-14 10:53:39 +01:00
Emil Ernerfeldt 6d255cd179 Use explicit `emath` to `math` alias
egui exports `emath` under its original name AND under the alias `math`
(for historical reasons).
2021-02-14 10:44:46 +01:00
Emil Ernerfeldt dbc6a620cd Control the maximum egui web canvas size with App::max_size_points 2021-02-12 17:58:02 +01:00
Emil Ernerfeldt 5906bf7a87 Fix clippy 1.50 lints 2021-02-12 17:40:53 +01:00
Emil Ernerfeldt b61db038f2 Release 0.9.0 - light mode, right clicks and more 2021-02-07 17:06:51 +01:00
Emil Ernerfeldt 0f33bc7c34
Fix web blur (#151)
* [egui_web] Always use an even canvas size

Fixes https://github.com/emilk/egui/issues/103

* [egui_web] Position canvas at top of screen

This avoids jumpyness when resizing,
caused by rounding height to an even number
2021-02-01 20:44:39 +01:00
PauloMelo eedb63bb3b
Add support for a HTTP body for POST (#139)
Closes https://github.com/emilk/egui/issues/137

Co-authored-by: Emil Ernerfeldt <emilernerfeldt@gmail.com>
2021-01-26 21:32:16 +01:00
Emil Ernerfeldt 2a10747843 Mesh::split_to_u16 now returns a 16-bit indexed Mesh16 2021-01-25 22:06:06 +01:00
Emil Ernerfeldt b493bc6efc Wrap tesselated output in struct ClippedMesh(Rect, Mesh) 2021-01-25 21:43:17 +01:00
Emil Ernerfeldt 75fa77e040 Rename Triangles to Mesh 2021-01-25 21:23:24 +01:00
Emil Ernerfeldt 247026149c
Multiple mouse button support (#135)
Add support for primary, secondary and middle mouse buttons. Also improve ability to click things in low FPS situations.

This introduces a lot of breaking changes:

    Backends/integrations now pass mouse events via the even stream.
    Response has an interface of mostly methods instead of public members.
    input.mouse is now input.pointer and has new interface.


* Rename 'mouse' to 'pointer' everywhere (pointer = mouse or touch)

* Make Response::clicked and Response::double_clicked into methods

* Remove Response::active and add dragged() and interact_pointer_pos()

* Support multiple mouse buttons

* Make PointerState interface all methods

* Make most members of Response private
2021-01-25 18:50:19 +01:00
Emil Ernerfeldt 37a3fe7f76 Release 0.8.0 - Grid layout & new visual style 2021-01-17 15:28:52 +01:00
Emil Ernerfeldt 31b7eda51e Rename Egui to egui
Also update iamges in README.md
2021-01-17 14:48:59 +01:00
Emil Ernerfeldt b869db728b [egui_web] Call prevent_default for arrow keys when entering text
Closes https://github.com/emilk/egui/issues/58
2021-01-17 12:24:17 +01:00
Emil Ernerfeldt 2854a84728 Improve documentation about how to write a painter for egui 2021-01-17 02:12:29 +01:00
Emil Ernerfeldt ef595153c9 [egui_web] Improve alpha blending + add WebGL2 painter 2021-01-16 20:48:00 +01:00
Emil Ernerfeldt fb2317c993 Rename `PaintCmd` to `Shape` 2021-01-10 11:43:01 +01:00
Emil Ernerfeldt 5ef9f35d1e [epi] Simplify TextureAllocator interface 2021-01-07 16:29:58 +01:00
Emil Ernerfeldt d0d22ea09b Release 0.7.0 2021-01-04 15:52:29 +01:00
Emil Ernerfeldt 69d31a5e47 [eframe] Make persistence, http and time optional features
Saves on compile times.
2021-01-04 10:25:13 +01:00
Emil Ernerfeldt c6a5af19e6 Add all alpha-numeric keys to egui::Key
Closes https://github.com/emilk/egui/issues/91
2021-01-03 11:25:13 +01:00
Emil Ernerfeldt 73f3d8cf46 Rename Srgba to Color32 2021-01-02 17:02:18 +01:00
Emil Ernerfeldt 14a96ca5d0 Add a dummy warm-up frame to the demo app to pre-cache emojis 2021-01-02 14:42:43 +01:00
Emil Ernerfeldt d229b6fc23 Enforce rust_2018_idioms in all libs 2021-01-02 12:02:26 +01:00
Emil Ernerfeldt 4e3251c300 Improve ecosystem documentation and add changelogs for epi and eframe 2021-01-02 11:59:20 +01:00
Emil Ernerfeldt b1022d01c1 Rename epi::App::ui to epi::App::update 2021-01-01 20:22:18 +01:00
Emil Ernerfeldt 375e317547 Move http fetch api from eframe to epi 2021-01-01 14:54:26 +01:00
Emil Ernerfeldt 9db1b8dbf9 Add http fetch to eframe and implement it in egui_glium using ureq 2020-12-30 20:56:50 +01:00
Emil Ernerfeldt 6d9cdafbc9 Rename egui_demo to egui_demo_app to avoid confusion with egui_demo_lib 2020-12-29 17:54:52 +01:00
Emil Ernerfeldt 84414e62a3 Add new crate `eframe` which wraps egui, epi, egui_web and egui_glium 2020-12-29 15:57:13 +01:00
Emil Ernerfeldt d7459bc13d Move `egui::app` into new `epi` crate 2020-12-29 14:15:46 +01:00
Emil Ernerfeldt 650450bc3a Make cfg=web_sys_unstable_apis optional, fixing `cargo check` 2020-12-29 12:42:15 +01:00
Emil Ernerfeldt d38b16f1ea Learn how to spell to "tessellation" 2020-12-29 12:18:41 +01:00
Emil Ernerfeldt 07e96ca17f Add syntax highlighting in egui web fetch example 2020-12-28 19:55:03 +01:00
Emil Ernerfeldt dca7f85f21 Release Egui 0.6.0 2020-12-26 22:43:29 +01:00
Emil Ernerfeldt 6f5fd1b9c0 Replace parking_lot with atomic_refcell
You can still opt-in to use parking_lot if you plan to use the same
egui::Context from multiple threads.
2020-12-26 20:36:25 +01:00
Emil Ernerfeldt d0f6954900 Combine demo_glium and demo_web into one egui_demo crate 2020-12-19 21:38:44 +01:00
Emil Ernerfeldt fb941cf618 [egui_web] Simplify the arguments you pass to `start()` 2020-12-19 21:15:07 +01:00
Emil Ernerfeldt 89937bf636 [egui_web] Auto-save app state to Local Storage every 30 seconds 2020-12-19 20:50:00 +01:00
Emil Ernerfeldt 99808d2df8 Implement Storage trait for egui_web:s local storage bindings 2020-12-19 14:58:00 +01:00
Emil Ernerfeldt 01c65b0dcb Replace Arc<Context> with struct CtxRef 2020-12-19 14:48:04 +01:00
Emil Ernerfeldt 82a3997188 [egui_web] Add max canvas size to help perf issues on some platforms
Related: https://github.com/emilk/egui/issues/67
2020-12-18 22:51:23 +01:00
Emil Ernerfeldt c3c4f28a9d Added App::clear_color() that apps can use to specify background color 2020-12-18 22:44:26 +01:00
Emil Ernerfeldt 9ea8d907fd [egui_glium] Fix: disable scissor before clearing 2020-12-18 22:31:28 +01:00
Emil Ernerfeldt 71449fe61c Only forbid warnings in release builds 2020-12-18 22:19:56 +01:00
Emil Ernerfeldt 709e711364 Deprecated RawInput::screen_size and replaced with screen_rect 2020-12-16 21:52:28 +01:00
Emil Ernerfeldt 2c766aa540 Make RawInput::time an Option 2020-12-16 21:22:45 +01:00
Emil Ernerfeldt 8528d8c5f7 Update parking_lot_core
Required turning on features = ["wasm-bindgen"] in egui_web
2020-12-16 15:36:58 +01:00
Emil Ernerfeldt 273d466f19 Nicer spacing in changelogs 2020-12-15 14:51:23 +01:00
Emil Ernerfeldt 403e2dfe5f Release Egui 0.5.0
## 0.5.0 - 2020-12-13

### Added 

* Emoji support: 1216 different emojis that work in any text.
  * The Demo app comes with a Font Book to explore the available glyphs.
* `ui.horizontal_wrapped(|ui| ...)`: Add widgets on a row but wrap at `max_size`.
* `ui.horizontal_wrapped_for_text`: Like `ui.horizontal_wrapped`, but with spacing made for embedding text.
* `ui.horizontal_for_text`: Like `ui.horizontal`, but with spacing made for embedding text.
* `egui::Layout` now supports justified layouts where contents is _also_ centered, right-aligned, etc.
* `ui.allocate_ui(size, |ui| ...)`: Easily create a child-`Ui` of a given size.
* `SelectableLabel` (`ui.selectable_label` and `ui.selectable_value`): A text-button that can be selected.
* `ui.small_button`: A smaller button that looks good embedded in text.
* `ui.drag_angle_tau`: For those who want to specify angles as fractions of τ (a full turn).
* Add `Resize::id_source` and `ScrollArea::id_source` to let the user avoid Id clashes.

### Changed 🔧

* New default font: [Ubuntu-Light](https://fonts.google.com/specimen/Ubuntu).
* Make it simpler to override fonts in `FontDefinitions`.
* Remove minimum button width.
* Refactor `egui::Layout` substantially, changing its interface.
* Calling `on_hover_text`/`on_hover_ui` multiple times will stack tooltips underneath the previous ones.
* Text wrapping on labels, buttons, checkboxes and radio buttons is now based on the layout.

### Removed 🔥

* Removed the `label!` macro.
2020-12-13 21:15:57 +01:00
Daniel Collin 69dc13ed2d Allow user to check for Key::Space 2020-12-13 10:00:20 +01:00
Emil Ernerfeldt 8c82eb1970 Add CHANGELOG.md for egui_glium 2020-12-10 23:52:51 +01:00
Emil Ernerfeldt 99fa650fa7 [egui_web] Document required RUSTFLAGS=--cfg=web_sys_unstable_apis 2020-11-28 13:54:47 +01:00
Emil Ernerfeldt a7e7826d2c Release 0.4.0 of egui, egui_web and egui_glium 2020-11-28 13:47:00 +01:00
Emil Ernerfeldt 8de74e4250 [egui_web] respect the native zoom/scale of the browser
Remove all complexity with own scale slider.

Closes https://github.com/emilk/egui/issues/53
2020-11-28 10:46:31 +01:00
Emil Ernerfeldt 633b19ee99 [egui_web] Repaint on finished fetch in example app 2020-11-20 20:35:16 +01:00
Emil Ernerfeldt 99a2a52510 Code cleanup 2020-11-20 20:32:38 +01:00
Emil Ernerfeldt c6ce0b9e8c [example_web] show loading of an image
Required some redesign of `TextureAllocator` as well as
some improvements to the fetch API.
2020-11-18 22:16:01 +01:00
Emil Ernerfeldt 90cecace0c [egui_web] Fix for pressing tab and backspace in a text field
Fixes https://github.com/emilk/egui/issues/48
2020-11-18 19:16:13 +01:00
Emil Ernerfeldt 86cfd0dcd3 egui_web: Repaint at least every seconds
Just in case the app needs it, e.g. because it has finished a download.
2020-11-18 01:07:32 +01:00
Emil Ernerfeldt fad0029119 egui_web: Add simple fetch API and demostrate it in example_web 2020-11-18 00:43:58 +01:00
Emil Ernerfeldt 7651e2f15b egui_web: Implement copy, cut and paste 2020-11-15 21:20:38 +01:00
Emil Ernerfeldt fe0d159324 Support Cmd+A ^W ^U ^K and shift-click 2020-11-15 14:21:21 +01:00
Emil Ernerfeldt c4ed507d63 Add modifier keys and implement moving cursors one word at a time 2020-11-14 21:01:21 +01:00
Emil Ernerfeldt b6dcae4651 Update versions to 0.3.0 2020-11-07 14:47:22 +01:00
Emil Ernerfeldt af11d766fc Split out tesselation from Context::end_frame() 2020-11-07 11:44:32 +01:00
Emil Ernerfeldt ed8a69ab2f [drag-and-drop] Add Grab and Grabbing CursorIcon:s 2020-11-02 17:40:05 +01:00
Emil Ernerfeldt ca96172552 You can override the default Egui fonts
Closes https://github.com/emilk/egui/issues/32
2020-10-31 18:03:13 +01:00
Emil Ernerfeldt 7638ca9962 [app] Simplify interface to egui::app::App 2020-10-24 19:23:16 +02:00
Emil Ernerfeldt c364403d44 [app] Give apps the ability to resize integration 2020-10-24 18:45:31 +02:00
Emil Ernerfeldt 44a7cac046 `Context::begin_frame()` no longer returns anything.
Put your widgets into a `SidePanel`, `TopPanel`,
`Window` or into `ctx.background_ui()`.
2020-10-24 10:56:23 +02:00
Emil Ernerfeldt df056d2ce4 [egui_web] Disable face culling in WebGL renderer
Closes https://github.com/emilk/egui/issues/29
2020-10-21 23:14:12 +02:00
Emil Ernerfeldt 92cfbe643c Add #![forbid(unsafe_code)] and safety badge 2020-10-18 15:40:23 +02:00
Emil Ernerfeldt a4e19d7207 [app] Add demo app slider to change scale of all of Egui 2020-10-17 23:54:46 +02:00
Emil Ernerfeldt 251cde60f0 [app] Refactor egui::app::App interface to be more data oriented 2020-10-17 16:13:20 +02:00
Emil Ernerfeldt 570860ec5f [refactor] Create helper struct Mutex (with double-lock detection) 2020-10-17 10:38:22 +02:00
Emil Ernerfeldt 42b433a204 [release] bump version numbers to 0.2.0 2020-10-10 14:00:07 +02:00
Emil Ernerfeldt 6fcfb52aa0 [demo] add frame time graph to demo app 2020-10-01 22:25:44 +02:00
Emil Ernerfeldt b77151fb64 remove seconds_from_midnight from core egui input
It is only used by demo app, and so does not belong to egui proper.
Instead it is now passed as part of a DemoEnvironment
2020-09-23 08:57:23 +02:00
Emil Ernerfeldt 5856cded95
refactor RunMode: move it from backend to the demo App (#23)
This simplifies the egui_glium and egui_web backends substantially,
reduces the scope of RunMode to a single file, and
removes duplicated code.

Basically: this is how I should have written it from the beginning.
2020-09-16 08:03:40 +02:00
Emil Ernerfeldt 1069ad8496 add color test window to troubleshoot your Egui painter backend
egui_glium passes the test, but the egui_web WebGL painter fails it.
2020-09-13 09:28:54 +02:00
Emil Ernerfeldt d49aec4079 Add user texture support to egui_glium and egui_web backends 2020-09-11 18:54:57 +02:00
Emil Ernerfeldt 13060d495b [user texture] change uv to normalized texture coords in 0-1 range 2020-09-09 17:14:42 +02:00
Emil Ernerfeldt bb367752cf [text] support non-latin characters by dynamically adding them to atlas 2020-09-09 14:33:30 +02:00
Emil Ernerfeldt 0e870dae3e [refactor] rename Texture::id to version 2020-09-09 13:32:40 +02:00
Emil Ernerfeldt b9a3240ca3 Bump Egui version to 0.1.4 2020-09-08 09:47:42 +02:00
Emil Ernerfeldt dc40a5d31d [refactor] represent colors with arrays 2020-09-02 22:04:10 +02:00
Emil Ernerfeldt c27e53a7b2 [color] Rename Color to Srgba + sRGBA correct fading of thin lines
Also remove the extra large `aa_size` hack,
so everything now looks slightly crispier.

I also took the opportunity to tweak some colors.
2020-08-29 16:58:59 +02:00
Emil Ernerfeldt 3d7b5ea6fe [egui_web] sRGBA: blend vertex colors in linear space 2020-08-29 12:04:33 +02:00
Emil Ernerfeldt 73cea29f7d [docs] Improve README.md and documentation 2020-08-21 18:53:43 +02:00
Emil Ernerfeldt ad9783a33d Update links to point to https://github.com/emilk/egui
because I renamed the github repository from "emigui" to "egui"
2020-08-10 19:38:46 +02:00
Emil Ernerfeldt 1483455630 Fix some links 2020-08-09 17:46:00 +02:00
Emil Ernerfeldt d35be05731 add descriptions for egui_glium and egui_web crates 2020-08-09 17:39:05 +02:00
Emil Ernerfeldt b06c9e94fb [egui] rename "with_serde" feature flag to just "serde" 2020-08-09 17:34:26 +02:00