Closed patowen closed 6 months ago
Draft status: This version currently crashes intermittently when switching materials with a Vulkan validation error. Based on my own testing, I believe that this can be resolved when https://github.com/SecondHalfGames/yakui/pull/155 is merged, and this PR points to the new branch. See comment thread of https://github.com/Ralith/hypermine/pull/391 for details.
Otherwise, I think it's ready for review.
EDIT: Now that the PR has been merged, I'll upgrade this to a regular PR, although I am aware that some changes will still be needed. Thanks for reviewing!
While testing this, I encountered a (potentially rare) warning log after I closed the application saying the following:
WARN sendmsg error: Os { code: 10093, kind: Uncategorized, message: "Either the application has not called WSAStartup, or WSAStartup failed." }, Transmit: { destination: [::1]:60027, src_ip: None, enc: None, len: 202, segment_size: None }
This seems to be a log from quinn-udp::log_sendmsg_error
. I'm not sure whether it's important, since that might mean that Quinn tried to send a message after something was already finalized.
My cargo.lock
has quinn
at version 0.10.0 with quinn-udp
at version 0.4.1 and quinn-proto
at 0.10.5.
EDIT: Now that Quinn has been upgraded, this comment is likely irrelevant now. Thanks for upgrading it!
I had renamed the gui
module to gui_state
because it only contained a struct called GuiState
and its implementation. However, I'm starting to prefer the name gui
again because it seems like a good place to put future things, such as custom widgets etc.
I expect this code might see a fair bit of churn in future PRs just due to the uncertainty of how all the UI elements will work together.
EDIT: Now that Quinn has been upgraded, this comment is likely irrelevant now. Thanks for upgrading it!
I don't think we changed anything that would be relevant to that error, FWIW. Sounds like something called WSACleanup
unexpectedly, so if we ever see it reproducibly, that might be something to try to catch in a debugger. Out of scope of this PR, though.
This PR adds a GUI with the following features: