diff --git a/libultraship b/libultraship index 3e46fe77..31df12cd 160000 --- a/libultraship +++ b/libultraship @@ -1 +1 @@ -Subproject commit 3e46fe77a4581a84f9c0edfab9c3a69a5320fe01 +Subproject commit 31df12cdb7b877f4f0790dcc216a2c9d3823d58b diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index a764d61f..9d577583 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -218,7 +218,6 @@ void GameEngine::StartFrame() const { default: break; } - this->context->GetWindow()->StartFrame(); } #if 0 @@ -329,9 +328,17 @@ void GameEngine::AudioExit() { } void GameEngine::RunCommands(Gfx* Commands, const std::vector>& mtx_replacements) { + auto wnd = std::dynamic_pointer_cast(Ship::Context::GetInstance()->GetWindow()); + + if (wnd == nullptr) { + return; + } + + // Process window events for resize, mouse, keyboard events + wnd->HandleEvents(); + for (const auto& m : mtx_replacements) { - gfx_run(Commands, m); - gfx_end_frame(); + wnd->DrawAndRunGraphicsCommands(Commands, m); } bool curAltAssets = CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0); diff --git a/src/port/ui/UIWidgets.cpp b/src/port/ui/UIWidgets.cpp index d89b697a..3bac9f3a 100644 --- a/src/port/ui/UIWidgets.cpp +++ b/src/port/ui/UIWidgets.cpp @@ -156,7 +156,7 @@ namespace UIWidgets { ImGui::RenderFrame(check_bb.Min, check_bb.Max, ImGui::GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); ImU32 check_col = ImGui::GetColorU32(ImGuiCol_CheckMark); ImU32 cross_col = ImGui::GetColorU32(ImVec4(0.50f, 0.50f, 0.50f, 1.00f)); - bool mixed_value = (g.LastItemData.InFlags & ImGuiItemFlags_MixedValue) != 0; + bool mixed_value = (g.LastItemData.ItemFlags & ImGuiItemFlags_MixedValue) != 0; if (mixed_value) { // Undocumented tristate/mixed/indeterminate checkbox (#2644) // This may seem awkwardly designed because the aim is to make ImGuiItemFlags_MixedValue supported by all widgets (not just checkbox)