-
-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proof of concept egui
integration.
#642
Conversation
This is sufficient for compilation to succeed but doesn't enable any visible functionality yet.
Note: Doesn't yet create or render anything visible. Doesn't yet process any input events. Also includes some notes on the process/references used for the implementation.
This should now be visible but won't respond to input. The existing UI should still respond to input (e.g. keypress, mouse-).
(Originally removed while troubleshooting unintentional managed texture 0 dropping.)
Used by future commit. Encapsulation? Coupling? Never heard of 'em :D
(To match the existing UI toggles.)
Code in formatting function is copied from `config_ui.rs`.
...I mean, what else are GUIs for, right?
(Since we're currently passing `window` for other reasons, we might as well make use of it here too.)
This displays arbitrary text alongside the file/line reference of the macro call. It's particularly useful for determining layout-related values without spamming stdout or logs every frame.
Works better than default wrapping.
Is a floating window preferable for any reason?
This handles changing label text/widths better IMO.
The new name is of a length that avoids code automated reformatting.
To assist with debugging and/or style development.
Thank you, @follower, this is awesome! Do you think we can start merging this soon? I haven't properly reviewed this yet, but the changes look really reasonable. And the GUI itself looks great. A bit overloaded maybe, with all the egui debug stuff, but a great base to build upon. I think the main problem might be, that this is based on a pretty old (~2 months) version of the |
*sigh* (That's an existential sigh, not one directed at you...) TL;DR: Yeah, I was aware of it being an outdated version, but as the computer I'm using is not ever likely to be mistaken for "what peak performance looks like", I wanted to avoid a re-compilation stage of unknown duration in order to update at that point. Anyway, I had an updated (to May 26th) almost working version about a month ago but ran into a couple of issues & life. But tonight I managed to fix/workaround the issues and got And, yeah, that specific UI was mostly included for pedagogical reasons. Architectural questionAlso, while I have something working I also realised that in order to know how to proceed it would be good to clarify the architecture you're wanting because currently the "integration" of egui with the existing fj-app/viewer is somewhat "reinventing the wheel" when we could use Essentially the three options are:
Assuming you still want to continue down this road, what would be your preference? |
That's great, @follower! Thank you for your continued work on this! There haven't been many changes to Could you push your latest branch? I'd love to take a look and get it merged as soon as possible.
At this point, I have no problem with reinventing the wheel. You have a working
I have no idea what the best long-term solution is, but right now option 1 seems like the lowest risk to me (with the caveat that it shouldn't get integrated into Since I have no experience with either There are also other considerations, like I'd like to replace our custom rendering code with an external library, if that is practical (#657). I don't know how that will affect our options. |
Closing in favour: of #763 |
[TODO: Add some context. ]