mirror of
https://github.com/Ed94/Cog.git
synced 2026-07-31 03:40:07 +00:00
simplify integration
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
#include "CogWindowManager.h"
|
||||
|
||||
#include "CogDebugDrawImGui.h"
|
||||
#include "CogImguiModule.h"
|
||||
#include "CogImguiWidget.h"
|
||||
#include "CogWindowWidgets.h"
|
||||
#include "CogWindow_Spacing.h"
|
||||
#include "CogWindowWidgets.h"
|
||||
#include "Engine/Engine.h"
|
||||
#include "imgui_internal.h"
|
||||
|
||||
@@ -13,10 +14,9 @@ UCogWindowManager::UCogWindowManager()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void UCogWindowManager::Initialize(UWorld* InWorld, TSharedPtr<SCogImguiWidget> InImGuiWidget)
|
||||
void UCogWindowManager::InitializeInternal()
|
||||
{
|
||||
World = InWorld;
|
||||
ImGuiWidget = InImGuiWidget;
|
||||
ImGuiWidget = FCogImguiModule::Get().CreateImGuiViewport(GEngine->GameViewport, [this](float DeltaTime) { Render(DeltaTime); });
|
||||
|
||||
ImGuiSettingsHandler IniHandler;
|
||||
IniHandler.TypeName = "Cog";
|
||||
@@ -50,6 +50,16 @@ void UCogWindowManager::Shutdown()
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void UCogWindowManager::Tick(float DeltaTime)
|
||||
{
|
||||
if (GEngine->GameViewport == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (ImGuiWidget.IsValid() == false)
|
||||
{
|
||||
InitializeInternal();
|
||||
}
|
||||
|
||||
if (LayoutToLoad != -1)
|
||||
{
|
||||
FString Filename = FCogImguiHelper::GetIniFilePath(FString::Printf(TEXT("ImGui_Layout_%d"), LayoutToLoad));
|
||||
@@ -112,6 +122,8 @@ void UCogWindowManager::Render(float DeltaTime)
|
||||
}
|
||||
|
||||
TickDPI();
|
||||
|
||||
FCogDebugDrawImGui::Draw();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -19,8 +19,6 @@ class COGWINDOW_API UCogWindowManager : public UObject
|
||||
public:
|
||||
UCogWindowManager();
|
||||
|
||||
void Initialize(UWorld* World, TSharedPtr<SCogImguiWidget> InImGuiWidget);
|
||||
|
||||
void Shutdown();
|
||||
|
||||
void SortMainMenu();
|
||||
@@ -61,7 +59,7 @@ public:
|
||||
|
||||
bool GetShowHelp() const { return bShowHelp; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
|
||||
struct FMenu
|
||||
{
|
||||
@@ -70,6 +68,8 @@ private:
|
||||
TArray<FMenu> SubMenus;
|
||||
};
|
||||
|
||||
void InitializeInternal();
|
||||
|
||||
void RefreshDPIScale();
|
||||
|
||||
void DrawMainMenu();
|
||||
@@ -79,9 +79,13 @@ private:
|
||||
void DrawMenu(FMenu& Menu);
|
||||
|
||||
static void SettingsHandler_ClearAll(ImGuiContext* ctx, ImGuiSettingsHandler*);
|
||||
|
||||
static void SettingsHandler_ApplyAll(ImGuiContext* ctx, ImGuiSettingsHandler*);
|
||||
|
||||
static void* SettingsHandler_ReadOpen(ImGuiContext*, ImGuiSettingsHandler*, const char* name);
|
||||
|
||||
static void SettingsHandler_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line);
|
||||
|
||||
static void SettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf);
|
||||
|
||||
void TickDPI();
|
||||
@@ -109,10 +113,13 @@ private:
|
||||
|
||||
TSharedPtr<SCogImguiWidget> ImGuiWidget;
|
||||
|
||||
TWeakObjectPtr<UWorld> World;
|
||||
FMenu MainMenu;
|
||||
|
||||
int32 LayoutToLoad = -1;
|
||||
|
||||
int32 HideAllWindowsCounter = 0;
|
||||
|
||||
bool bHideAllWindows = false;
|
||||
|
||||
bool bRefreshDPIScale;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user