1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-28 07:23:13 -04:00
Commit Graph

2665 Commits

Author SHA1 Message Date
Konkitoman
d1b00b6fdc Add Window::show_async!
A refactoring of crates/egui/src/containers/window.rs is needed
2023-08-03 20:13:04 +03:00
Konkitoman
1448c5047f Remove viewport_id and parent_viewport_id from Window::show arguments because can be accessed from Context::get_viewport_id and Context::get_parent_viewport_id 2023-08-03 19:53:17 +03:00
Konkitoman
7f791f4bf9 Add Window::embedded 2023-08-03 19:39:51 +03:00
Konkitoman
9e1e0a55a5 Fix interactions for sync viewport 2023-08-03 19:00:26 +03:00
Konkitoman
70b9d8f1c5 Making the Window::show to be sync 2023-08-02 21:29:24 +03:00
Konkitoman
2057993f54 Some more work now stuff is rendered corectly 2023-08-02 20:49:41 +03:00
Konkitoman
141421547b Fix: a sync viewport cannot render itself he needs his parent to be rendered now when sync viewport needs a redraw that redraw will be redirected to his parent 2023-08-02 19:58:12 +03:00
Konkitoman
34fea8a0e5 Some more work on making possible to render viewport_sync in glutin
Context::current_rendering_viewport was replaced by Context::get_viewport_id
Added Context::get_parent_viewport_id
Changed Context::run to need parent_viewport_id
Changed Context::beagin to need parent_viewport_id
Added ImplContext::frame_stack
Some work on making posibile to render multiples frames at the same time
A lot of more things in glutin backend is not Arc<RwLock<T>>
2023-08-02 17:14:31 +03:00
Konkitoman
c7c9713bf8 create_viewport_sync prep Glutin
WGPU Unimplemented again, use Arc<RwLock<T>> for a lot of things
2023-08-01 17:30:36 +03:00
Konkitoman
b75fe9bbc4 Now Context will say what viewport_id and parent_viewport_id when calling render_sync to the backend 2023-08-01 15:26:33 +03:00
Konkitoman
1e6c1b55d3 Some work on frontend for making create_viewport_sync possible 2023-08-01 15:19:18 +03:00
Konkitoman
e6e1463062 Now the redraw hack introduced in "Some hacky fixes" is no more needed!
This fixes other problems that was caused by that hack!
2023-07-30 22:11:49 +03:00
Konkitoman
63f4b486e3 This compained with b8e8d09 fixes every thing about interaction per viewport 2023-07-30 22:05:48 +03:00
Konkitoman
43ba09531b Fix window draging 2023-07-30 21:49:08 +03:00
Konkitoman
b8e8d095c8 Sets Areas per viewport
I don't really know why but fixes when other window is rendering to take focus from the main one, but apparently if the main window is rendering can take focus from other windows
2023-07-30 21:34:15 +03:00
Konkitoman
4b4414955a Now Memory::interaction is stored per viewport in Memory::interactions
This will allow in the future drag and drop betwen windows
Fixes if a an other window is rendered will forgot what was draging, this was very annoying
2023-07-30 21:07:07 +03:00
Konkitoman
cf05c3fa75 Now InputState is stored per viewport!
This fixes input collisions between viewports
2023-07-30 20:35:21 +03:00
Konkitoman
fd1c01cf1f Removed Context::set_current_rendering_viewport
Now we always need to say what viewport we rendering in Context::beagin or Context::run
2023-07-30 20:03:56 +03:00
Konkitoman
1f5d17cfcc Some hacky fixes 2023-07-29 21:32:57 +03:00
Konkitoman
bb0b80fb08 Fix some warnings 2023-07-28 18:28:16 +03:00
Konkitoman
c56d09a2e5 Fix WGPU implementation memory leak
Now unused surfaces will be cleared
2023-07-27 18:22:43 +03:00
Konkitoman
769c71a714 WGPU implementation 2023-07-27 18:18:14 +03:00
Konkitoman
46e85856b9 Update example for debuging purposes
There is a bug that some how makes the windows to be liked!
Winit events look fine but some thing i think is happening with area id or some thing
2023-07-27 15:32:26 +03:00
Konkitoman
0e74cf4ca0 Some work making the native window to look like the egui one, and to work the same 2023-07-27 15:08:21 +03:00
Konkitoman
cb09e630a2 Add a new example and change how embedding is stored 2023-07-25 16:40:03 +03:00
Konkitoman
2131f251fc Update example and now the viewport will always render if can create a native window will be embedded 2023-07-25 12:43:34 +03:00
Konkitoman
55a0f1f0c3 Added is_desktop checkbox in egui_demo_app
Fix window not rendering if is_desktop is false
2023-07-25 12:15:37 +03:00
Konkitoman
08b3afdc5e Now the window will have the correct size
Now window will not be resizable if is set to false
2023-07-25 12:10:56 +03:00
Konkitoman
19d1fecb99 Now we can drag any viewport but only the viewport that is focused will be draged because if not on x11 the input will be taken until the application is killed 2023-07-25 11:53:10 +03:00
Konkitoman
93a7c018d7 Now App::update will be responsabile for what viewport will be drawned and its content
A big refactoring was needed
2023-07-25 10:54:31 +03:00
Konkitoman
19f807b4e9 Fix 100% cpu usage because a non existen window is tryng to draw
Fix a small memory leak
2023-07-25 09:57:54 +03:00
Konkitoman
86068c6590 Fix small memory leak
Now windows that do not exist will not be able to stay in redraw requests
2023-07-25 09:48:12 +03:00
Konkitoman
199d4e53cd Fixed example 2023-07-24 16:49:09 +03:00
Konkitoman
4143f58cc8 Now if winit supports if the window cant be closed will not show the close button 2023-07-24 16:37:47 +03:00
Konkitoman
f4a196cddc Now a WindowEvent::CloseRequested is received will be sent to egui_winit::State in RawInput
Now when we press the close button from a native window if the window has a open variabile connected the window will be closed
2023-07-24 16:15:34 +03:00
Konkitoman
4d883b8217 Fix mouse input
Now on Context.create_viewport in the render function will we have viewport_id and parent_viewport_id
New problem if a windows is fucused and we interact with other window the first event will be send to the last window that was focused
2023-07-24 14:24:30 +03:00
Konkitoman
3a1d9f2e21 A lot of changes:
Now the Viewport render function is passed to the backend
I was needed to update the demo because now Window::show() needs a Fn before was a FnOnce
I changed from FnOnce to Fn because we want the window to be rendered separately from the main window
That means now the variabiles that we are moving to window need to be Rc or Arc!
This is making harder to use `Window`!
I'am waiting for more ideas!
In eframe now any Window has a property render that stores the current window render function, if has not function App::update will be called insted!
New problems in any other window excluding the main window we have no mouse input, i don't know why!
Now every window has embedded to false by default, for testing purposes!
2023-07-23 19:38:02 +03:00
Konkitoman
fdca2b9220 Now painter is not affected by the current_viewport 2023-07-23 14:32:54 +03:00
Konkitoman
ea2dcd8cb5 Rename every thing that i was implemented for multiples windows to Viewport 2023-07-23 12:47:36 +03:00
Konkitoman
cf01eff8d1 Now a embedded window will only render in his parent window 2023-07-23 11:57:36 +03:00
Konkitoman
41c4714199 Now the new window will have the same size as the embeded window 2023-07-22 13:39:11 +03:00
Konkitoman
63b8814bd5 Better rendering for a window 2023-07-22 00:04:54 +03:00
Konkitoman
0daafa0c0f Fixed the problem that cause a break in time space 2023-07-21 22:58:17 +03:00
Konkitoman
2b13572220 Now every window has egui-winit, but a big problem is that a window don't render if the window frame number is bigger the the current frame, this is a spaculation because i don't know if a window stores the current frame i don't know what happens because new window render from the first time but the egui-ctx don't want to render the new window
is like i have tow egui-ctx
2023-07-21 22:00:22 +03:00
Konkitoman
23bb315468 Now a window will not render other window content 2023-07-19 14:01:12 +03:00
Konkitoman
1d52990306 Update temporery example 2023-07-19 11:25:52 +03:00
Konkitoman
b66cf96343 Not will only redraw what is needed and the cpu will not be at 100% all the time 2023-07-19 11:16:51 +03:00
Konkitoman
cd48e2b1ad Added now window can be toggled embeded or not 2023-07-19 10:57:13 +03:00
Konkitoman
680a547a68 Now is rendering on the new windows 2023-07-19 10:48:35 +03:00
Konkitoman
28d5c6e62c Now window will be destroyed if is not rendered 2023-07-18 17:52:55 +03:00