Skip to content

Commit

Permalink
Merge pull request #136 from jmorton06/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
jmorton06 committed Mar 13, 2024
2 parents a30d441 + de5dbf5 commit 4afcd4a
Show file tree
Hide file tree
Showing 166 changed files with 3,763 additions and 2,210 deletions.
43 changes: 30 additions & 13 deletions Editor/Source/ApplicationInfoPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#include <Lumos/Core/Application.h>
#include <Lumos/Scene/SceneManager.h>
#include <Lumos/Scene/Scene.h>
#include <Lumos/Utilities/AssetManager.h>

#include "Editor.h"

#include <Lumos/Core/Engine.h>
#include <Lumos/Core/OS/Window.h>
Expand Down Expand Up @@ -47,7 +50,7 @@ namespace Lumos

ApplicationInfoPanel::ApplicationInfoPanel()
{
m_Name = "Application Info##ApplicationInfo";
m_Name = "Application Info###appinfo";
m_SimpleName = "Application Info";
}

Expand Down Expand Up @@ -75,7 +78,7 @@ namespace Lumos
}

static ImPlotAxisFlags rt_axis = ImPlotAxisFlags_NoTickLabels;
static bool PlotFrameTime = true;
static bool PlotFrameTime = false;
static bool PlotFramerate = false;

ImGui::Checkbox("Plot Frame Time", &PlotFrameTime);
Expand All @@ -92,6 +95,7 @@ namespace Lumos

ImPlot::EndPlot();
}

if(PlotFrameTime && ImPlot::BeginPlot("Frametime", ImVec2(-1, 350), 0))
{
ImPlot::SetupAxis(ImAxis_X1, nullptr, rt_axis);
Expand Down Expand Up @@ -133,27 +137,40 @@ namespace Lumos
Application::Get().GetWindow()->GetSwapChain()->SetVSync(VSync);
Graphics::Renderer::GetRenderer()->OnResize(Application::Get().GetWindow()->GetWidth(), Application::Get().GetWindow()->GetHeight()); });
}

QualitySettings& qs = Application::Get().GetQualitySettings();
int shadowQuality = (int)qs.ShadowQuality;
int shadowRes = (int)qs.ShadowResolution;

if(ImGuiUtilities::Property("Shadow Quality", shadowQuality, 0, 3))
qs.ShadowQuality = (ShadowQualitySetting)shadowQuality;

if(ImGuiUtilities::Property("Shadow Resolution", shadowRes, 0, 3))
qs.ShadowResolution = (ShadowResolutionSetting)shadowRes;

ImGui::Columns(1);
ImGui::Text("FPS : %5.2i", Engine::Get().Statistics().FramesPerSecond);
ImGui::Text("UPS : %5.2i", Engine::Get().Statistics().UpdatesPerSecond);
ImGui::Text("Frame Time : %5.2f ms", Engine::Get().Statistics().FrameTime);
ImGui::Text("Arena Count : %i", GetArenaCount());

uint64_t totalAllocated = 0;
for(int i = 0; i < GetArenaCount(); i++)
if(ImGui::TreeNodeEx("Arenas", 0))
{
auto arena = GetArena(i);
totalAllocated += arena->Size;
float percentageFull = (float)arena->Position / (float)arena->Size;
ImGui::ProgressBar((float)arena->Position / (float)arena->Size);
Lumos::ImGuiUtilities::Tooltip((Lumos::StringUtilities::BytesToString(arena->Position) + " / " + Lumos::StringUtilities::BytesToString(arena->Size)).c_str());
uint64_t totalAllocated = 0;
for(int i = 0; i < GetArenaCount(); i++)
{
auto arena = GetArena(i);
totalAllocated += arena->Size;
float percentageFull = (float)arena->Position / (float)arena->Size;
ImGui::ProgressBar(percentageFull);
Lumos::ImGuiUtilities::Tooltip((Lumos::StringUtilities::BytesToString(arena->Position) + " / " + Lumos::StringUtilities::BytesToString(arena->Size)).c_str());
}
ImGui::Text("Total %s", Lumos::StringUtilities::BytesToString(totalAllocated).c_str());
ImGui::TreePop();
}

ImGui::Text("Total %s", Lumos::StringUtilities::BytesToString(totalAllocated).c_str());
ImGui::NewLine();
ImGui::Text("Scene : %s", Application::Get().GetSceneManager()->GetCurrentScene()->GetSceneName().c_str());
ImGui::TreePop();
};
}

ImGuiUtilities::PopID();
}
Expand Down
88 changes: 88 additions & 0 deletions Editor/Source/AssetManagerPanel.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#include "AssetManagerPanel.h"

#include <Lumos/Core/Application.h>
#include <Lumos/Scene/SceneManager.h>
#include <Lumos/Scene/Scene.h>
#include <Lumos/Utilities/AssetManager.h>

#include "Editor.h"

#include <Lumos/Core/Engine.h>
#include <Lumos/Core/OS/Window.h>
#include <Lumos/Graphics/Renderers/RenderPasses.h>
#include <Lumos/ImGui/ImGuiUtilities.h>
#include <Lumos/Utilities/StringUtilities.h>
#include <imgui/imgui.h>
#include <imgui/Plugins/implot/implot.h>

namespace Lumos
{
AssetManagerPanel::AssetManagerPanel()
{
m_Name = "AssetManagerPanel###AssetManagerPanel";
m_SimpleName = "Asset Manager";
}

void AssetManagerPanel::OnImGui()
{
auto flags = ImGuiWindowFlags_NoCollapse;
if(ImGui::Begin(m_Name.c_str(), &m_Active, flags))
{
ImGuiUtilities::PushID();

enum MyItemColumnID
{
MyItemColumnID_ID,
MyItemColumnID_Name,
MyItemColumnID_Type,
MyItemColumnID_Accessed
};

if(ImGui::BeginTable("Asset Registry", 4, ImGuiTableFlags_NoSavedSettings | ImGuiTableFlags_Borders | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_ScrollY | ImGuiTableFlags_RowBg))
{
ImGui::TableSetupColumn("ID", ImGuiTableColumnFlags_NoSort | ImGuiTableColumnFlags_WidthFixed, 0.0f, MyItemColumnID_ID);
ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_NoSort | ImGuiTableColumnFlags_WidthFixed, 0.0f, MyItemColumnID_Name);
ImGui::TableSetupColumn("Type", ImGuiTableColumnFlags_NoSort, 0.0f, MyItemColumnID_Type);
ImGui::TableSetupColumn("Last Accessed", ImGuiTableColumnFlags_NoSort, 0.0f, MyItemColumnID_Accessed);

ImGui::TableSetupScrollFreeze(0, 1);

ImGui::TableHeadersRow();
ImGui::TableNextRow();
Lumos::AssetRegistry& registry = m_Editor->GetAssetManager()->GetAssetRegistry();

auto DrawEntry = [&registry](AssetMetaData& metaData, uint64_t ID)
{
{
ImGui::TableNextColumn();
ImGui::TextUnformatted(fmt::format("{0}", ID).c_str()); //"%lld", ID);

ImGui::TableNextColumn();
std::string name = "Unnamed";
#ifndef LUMOS_PRODUCTION
registry.GetName(ID, name);
#endif
ImGui::TextUnformatted(name.c_str());

ImGui::TableNextColumn();
ImGui::TextUnformatted(AssetTypeToString(metaData.Type));

ImGui::TableNextColumn();
ImGui::Text("%.2f", metaData.lastAccessed);

ImGui::TableNextRow();
}
};

for(auto& current : registry)
{
DrawEntry(current.second, current.first);
}

ImGui::EndTable();
}
ImGuiUtilities::PopID();
}
ImGui::End();
}
}
15 changes: 15 additions & 0 deletions Editor/Source/AssetManagerPanel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once

#include "EditorPanel.h"

namespace Lumos
{
class AssetManagerPanel : public EditorPanel
{
public:
AssetManagerPanel();
~AssetManagerPanel() = default;

void OnImGui() override;
};
}
2 changes: 1 addition & 1 deletion Editor/Source/ConsolePanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ namespace Lumos
{
for(auto messIt = messageStart; messIt != s_MessageBuffer.end(); ++messIt)
{
if(message->GetMessageID() == (*messIt)->GetMessageID())
if((*messIt) && message->GetMessageID() == (*messIt)->GetMessageID())
{
(*messIt)->IncreaseCount();
return;
Expand Down

0 comments on commit 4afcd4a

Please sign in to comment.