This commit is contained in:
Asuro
2025-03-07 00:37:44 +01:00
parent 467a4a0491
commit 96a122f932
17 changed files with 944 additions and 16 deletions

View File

@@ -390,9 +390,9 @@ namespace Game
inst.Time.StartTime = bx::getHPCounter();
}
if (inst.ImguiIniSize > 0)
if (inst.DebugData.ImguiIniSize > 0)
{
ImGui::LoadIniSettingsFromMemory(inst.ImguiIni, inst.ImguiIniSize);
ImGui::LoadIniSettingsFromMemory(inst.DebugData.ImguiIni, inst.DebugData.ImguiIniSize);
}
else
{
@@ -453,6 +453,8 @@ namespace Game
ImGui_ImplSDL3_NewFrame();
ImGui::DockSpaceOverViewport(0, 0, ImGuiDockNodeFlags_PassthruCentralNode);
auto& level = GetInstance().GameLevel;
auto& debug = GetInstance().DebugData;
if (UIVisible == UIVisibilityState::Debug)
{
if (ImGui::Begin("Rendering"))
@@ -500,12 +502,39 @@ namespace Game
{
ImGui::Image(DitherTextures.RampTex.idx, {BX_COUNTOF(DitherTextures.BrightnessRamp), 8});
}
Vec3 quadPos = GetInstance().GameLevel.UIQuads.Get({0}).EData.Transform.GetPosition();
Vec3 quadPos = level.UIQuads.Get({0}).EData.Transform.GetPosition();
ImGui::Text("%f %f %f", quadPos.x, quadPos.y, quadPos.z);
ImGui::Text("Shader log:");
ImGui::TextWrapped("%s", GetShared().Dev.ShaderLog);
}
ImGui::End();
if (ImGui::Begin("Puzzles"))
{
ImGui::Text("List");
for (int32_t i = 0; i < BX_COUNTOF(level.Puzzles); ++i)
{
auto& puzzleData = level.Puzzles[i].Data;
bool isSelected = debug.SelectedDebugLevel == i;
ImGui::PushID("selectable");
if (ImGui::Selectable(puzzleData.PuzzleName, isSelected))
{
debug.SelectedDebugLevel = isSelected ? UINT16_MAX : i;
}
ImGui::PopID();
if (isSelected)
{
ImGui::PushID("edit field");
ImGui::InputText("", puzzleData.PuzzleName, sizeof(Puzzle::PuzzleData::PuzzleName));
ImGui::PopID();
if (!puzzleData.RenderDebugUI())
{
debug.SelectedDebugLevel = UINT16_MAX;
}
}
}
}
ImGui::End();
}
GetInstance().GameLevel.Update();
@@ -536,10 +565,10 @@ namespace Game
{
LOG("--- RENDERING_SHUTDOWN ---");
ImGui::SaveIniSettingsToDisk("imgui.ini");
const char* iniData = ImGui::SaveIniSettingsToMemory(reinterpret_cast<uint64_t*>(&GetInstance().ImguiIniSize));
assert(GetInstance().ImguiIniSize <= BX_COUNTOF(GameInstance::ImguiIni));
bx::memCopy(
GetInstance().ImguiIni, iniData, bx::min(GetInstance().ImguiIniSize, BX_COUNTOF(GameInstance::ImguiIni)));
auto& debug = GetInstance().DebugData;
const char* iniData = ImGui::SaveIniSettingsToMemory(reinterpret_cast<uint64_t*>(&debug.ImguiIniSize));
assert(debug.ImguiIniSize <= BX_COUNTOF(InstanceDebugData::ImguiIni));
bx::memCopy(debug.ImguiIni, iniData, bx::min(debug.ImguiIniSize, BX_COUNTOF(InstanceDebugData::ImguiIni)));
ImGui_ImplSDL3_Shutdown();
imguiDestroy();
bgfx::shutdown();