Commit Graph

148 Commits

Author SHA1 Message Date
Emil Ernerfeldt a8320881ba remove native screen reader spam 2021-03-09 19:47:41 +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 84cc227f11 eframe: always provide a texture allocator 2021-02-28 19:09:48 +01:00
Patrik Höglund a859b2a26e
Add icon support to eframe (#193)
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2021-02-26 15:59:30 +01:00
Emil Ernerfeldt 02a65132e4 Add epi::App::initial_window_size to control initial native window size 2021-02-23 20:28:55 +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
Emil Ernerfeldt 82350a2f1e Improve documentation 2021-02-21 10:12:08 +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 5906bf7a87 Fix clippy 1.50 lints 2021-02-12 17:40:53 +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 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 31b7eda51e Rename Egui to egui
Also update iamges in README.md
2021-01-17 14:48:59 +01:00
Emil Ernerfeldt 718eec4b89 [egui_glium] Fix set_window_size for non-native pixels_per_point 2021-01-17 12:24:17 +01:00
Emil Ernerfeldt d0fc77fe9b [egui_glium] minor code cleanup 2021-01-17 02:31:37 +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 4933bb3c30 [egui_glium] Fix a bug where key releases weren't sent to Egui
Fixes https://github.com/emilk/egui/issues/102
2021-01-11 18:09:09 +01:00
walterpie b08870dcee
Make `egui_glium::painter::Painter::paint_job` pub (#100)
* Make `egui_glium::painter::Painter::paint_job` pub

The background is: I'm working on an engine where I would like to draw the gui and the game to the same `glium::Frame`. Haven't found any other obvious, trivial solution. I could of course write my own integration, but I just think this makes sense to be public.

* Make two other necessary functions public
2021-01-11 09:35:47 +01:00
Emil Ernerfeldt fb2317c993 Rename `PaintCmd` to `Shape` 2021-01-10 11:43:01 +01:00
Emil Ernerfeldt fe491c3b75 [egui_glium] Explicitly use bilinear texture sampling
This is the reference renderer, so it is good to be explicit.
2021-01-09 10:27:32 +01:00
Emil Ernerfeldt 5ef9f35d1e [epi] Simplify TextureAllocator interface 2021-01-07 16:29:58 +01:00
Emil Ernerfeldt 1bcf35d774 Update ureq to 2.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 10a23d18e1 Support additive colors in color picker 2021-01-03 18:16:12 +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 8fd58dc827 [egui_glium] make GliumInputState::raw public
Closes https://github.com/emilk/egui/issues/90
2021-01-02 16:37:39 +01:00
Emil Ernerfeldt 948d8ec6ed clippy fixes 2021-01-02 16:31:45 +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 d7459bc13d Move `egui::app` into new `epi` crate 2020-12-29 14:15:46 +01:00
Emil Ernerfeldt d38b16f1ea Learn how to spell to "tessellation" 2020-12-29 12:18:41 +01:00
Emil Ernerfeldt 958fc2753a RepaintSignal now implements Sync so it can be sent to another thread
Fixes https://github.com/emilk/egui/issues/82
2020-12-27 10:49:26 +01:00
Patrik Höglund bb469bf52f
Make it possible to set Glium windows as not resizable. (#69) 2020-12-22 15:20:38 +01:00
Emil Ernerfeldt dbab277658 [egui_glium] Restore window position when starting app 2020-12-21 22:10:31 +01:00
Emil Ernerfeldt 8f034d391d [egui_glium] Your app state will auto-save to a good directory
Directory found with https://docs.rs/directories-next/2.0.0/directories_next/struct.ProjectDirs.html#method.data_dir
2020-12-19 21:06:59 +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 c3c4f28a9d Added App::clear_color() that apps can use to specify background color 2020-12-18 22:44:26 +01:00
Emil Ernerfeldt b0e17638df trait App now has fn name() for specifying egui_glium window title 2020-12-18 22:30:59 +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 f1b4353039 [egui_glium]: Store window size in points instead of physical pixels 2020-12-16 19:38:28 +01:00
Emil Ernerfeldt 09aa905f7c egui_glium::run parameter `app` now has signature Box<dyn App> 2020-12-14 11:24:37 +01:00
Daniel Collin 69dc13ed2d Allow user to check for Key::Space 2020-12-13 10:00:20 +01:00
Tom Solberg 601e4f3e09 actually take path for `FileStorage::from_path` 2020-12-11 11:31:42 +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 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 8a0bc97e8c [egui_glium] Fix paste 2020-11-13 11:04:45 +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 daa7a2bdb2 [egui_glium] refactor 2020-10-24 18:49:44 +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 8ccc36937f [egui_glium] Add option not to persist app to file 2020-10-19 20:25:05 +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 5cba44eaa8 Clean up various small TODOs 2020-10-01 22:40:49 +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 6e7507373a [egui_glium] clean up the code for the glium OpenGL painter 2020-09-21 19:19:24 +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
Jay Oster 0ea80ae10a
Fix continuous RunMode in glium backend on Windows (#21) 2020-09-14 20:55:35 +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 8984302122 [user textures] switch WHITE_UV to (0,0) and require clamped sampling 2020-09-09 15:24:09 +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 dc40a5d31d [refactor] represent colors with arrays 2020-09-02 22:04:10 +02:00
Emil Ernerfeldt 1f8d3a699f [egui_glium] sRGBA: blend vertex colors in linear space 2020-08-29 12:04:41 +02:00
Emil Ernerfeldt 73cea29f7d [docs] Improve README.md and documentation 2020-08-21 18:53:43 +02:00
Emil Ernerfeldt f693a558c5 [web/glium] better text input filtering
CapsLock and function keys (F1, F2, ...) are now ignored on web.

All special keys are ignored on glium.
2020-07-30 11:58:24 +02:00
Emil Ernerfeldt 554e6e7120 [app] unify web and glium demo app 2020-07-23 19:04:23 +02:00
Emil Ernerfeldt 61cdec8fca [refactor] rename 'example' to 'demo', and add simple example_glium 2020-07-23 12:18:19 +02:00
Emil Ernerfeldt 48bad68257 [glium] implement reactive run mode 2020-07-22 22:26:49 +02:00
Emil Ernerfeldt a14bfa0e73 [glium] make it super easy to make an Egui app using glium 2020-07-22 18:46:12 +02:00
Emil Ernerfeldt e84412dec5 [glium] break out persistence 2020-07-22 18:01:27 +02:00
Emil Ernerfeldt 4e52a960e5 [glium] refactor and simplify glium example code 2020-07-22 12:10:14 +02:00
Emil Ernerfeldt 9b9cd01c5c [glium] update to latest glium with EventLoop and vsync 2020-07-22 00:36:17 +02:00
Emil Ernerfeldt fccd135254 [refactor] rename 'PaintBatches' to 'PaintJobs' 2020-07-19 00:01:13 +02:00
Emil Ernerfeldt 520e42c11c [backend] use hardware scissor rect in WebGL and glium 2020-07-17 10:29:21 +02:00
Emil Ernerfeldt fd5ab736bb Rename from "Emigui" to "Egui"
Shorter to type (especially in code).
2020-05-30 10:22:35 +02:00