diff --git a/SakuraVNE/src/AppLayer.cpp b/SakuraVNE/src/AppLayer.cpp index 953d4fb..c4aa74d 100644 --- a/SakuraVNE/src/AppLayer.cpp +++ b/SakuraVNE/src/AppLayer.cpp @@ -18,7 +18,7 @@ void AppLayer::OnImGuiRender() { } ImGui::End(); - ImGui::Begin("Layer Transition"); + ImGui::Begin("To TestLayer Transition"); if (ImGui::Button("Transition")) { TransitionTo(); } diff --git a/SakuraVNE/src/Overlay.cpp b/SakuraVNE/src/Overlay.cpp new file mode 100644 index 0000000..f3f0cb8 --- /dev/null +++ b/SakuraVNE/src/Overlay.cpp @@ -0,0 +1,24 @@ +#include "Overlay.h" +#include "AppLayer.h" +#include "Application.h" +#include "Layer.h" +#include "TestLayer.h" +#include "imgui.h" + +Overlay::Overlay() : Layer("Overlay", true) {} + +void Overlay::OnImGuiRender() { + ImGuiIO &io = ImGui::GetIO(); + + ImGui::Begin("Overlay Transition"); + if (ImGui::Button("Overlay Transition")) { + auto testLayer = Application::Get().GetLayer(); + if (testLayer) { + testLayer->TransitionTo(); + } else { + auto appLayer = Application::Get().GetLayer(); + appLayer->TransitionTo(); + } + } + ImGui::End(); +} diff --git a/SakuraVNE/src/Overlay.h b/SakuraVNE/src/Overlay.h new file mode 100644 index 0000000..483909a --- /dev/null +++ b/SakuraVNE/src/Overlay.h @@ -0,0 +1,11 @@ +#pragma once + +#include "Layer.h" + +class Overlay : public SakuraVNE::Layer { +public: + Overlay(); + virtual ~Overlay() = default; + + virtual void OnImGuiRender() override; +}; diff --git a/SakuraVNE/src/TestLayer.cpp b/SakuraVNE/src/TestLayer.cpp index 0113536..54d3d0b 100644 --- a/SakuraVNE/src/TestLayer.cpp +++ b/SakuraVNE/src/TestLayer.cpp @@ -8,7 +8,7 @@ TestLayer::TestLayer() : Layer("TestLayer", true) {} void TestLayer::OnImGuiRender() { ImGuiIO &io = ImGui::GetIO(); - ImGui::Begin("Layer Transition"); + ImGui::Begin("To AppLayer Transition"); if (ImGui::Button("Transition")) { TransitionTo(); } diff --git a/SakuraVNE/src/main.cpp b/SakuraVNE/src/main.cpp index be6e35d..cf82e68 100644 --- a/SakuraVNE/src/main.cpp +++ b/SakuraVNE/src/main.cpp @@ -1,5 +1,6 @@ #include "AppLayer.h" #include "Application.h" +#include "Overlay.h" int main(int argc, char *argv[]) { AppData appData; @@ -10,6 +11,7 @@ int main(int argc, char *argv[]) { Application app(appData); app.PushLayer(); + app.PushOverlay(); app.Run(); return 0; diff --git a/imgui.ini b/imgui.ini index c105956..c4c3920 100644 --- a/imgui.ini +++ b/imgui.ini @@ -9,10 +9,10 @@ Size=311,180 Collapsed=0 [Window][Dear ImGui Demo] -Pos=730,0 -Size=550,720 +Pos=592,0 +Size=688,720 Collapsed=0 -DockId=0x00000007,0 +DockId=0x00000006,0 [Window][Test window] Size=618,101 @@ -36,18 +36,113 @@ Collapsed=0 [Window][Framerate] Pos=0,0 -Size=442,720 +Size=590,364 Collapsed=0 -DockId=0x00000006,0 +DockId=0x00000009,0 + +[Window][Layer Transition] +Pos=0,362 +Size=590,358 +Collapsed=0 +DockId=0x00000008,0 + +[Window][Overlay Transition] +Pos=506,251 +Size=365,165 +Collapsed=0 + +[Window][To TestLayer Transition] +Pos=0,366 +Size=590,354 +Collapsed=0 +DockId=0x0000000A,0 + +[Window][To AppLayer Transition] +Pos=0,0 +Size=1280,720 +Collapsed=0 +DockId=0x00000009,0 + +[Table][0x51D6F5EA,3] +Column 0 Weight=1.0000 +Column 1 Weight=1.0000 +Column 2 Weight=1.0000 + +[Table][0xE102187A,3] +RefScale=13 +Column 0 Width=63 +Column 1 Width=63 +Column 2 Width=63 + +[Table][0xF1421304,3] +RefScale=13 +Column 0 Width=63 +Column 1 Width=63 +Column 2 Weight=1.0000 + +[Table][0xE212E0F0,6] +RefScale=13 +Column 0 Width=63 +Column 1 Width=63 +Column 2 Width=-1 +Column 3 Weight=1.0000 +Column 4 Weight=1.0000 +Column 5 Weight=-1.0000 + +[Table][0x86C9FC97,3] +Column 0 Weight=1.0000 +Column 1 Weight=1.0000 +Column 2 Weight=1.0000 + +[Table][0x95990F63,3] +RefScale=13 +Column 0 Width=63 +Column 1 Width=63 +Column 2 Width=63 + +[Table][0x603C335E,2] +Column 0 Weight=1.0000 +Column 1 Weight=1.0000 + +[Table][0xA6C6558A,2] +Column 0 Weight=1.0000 +Column 1 Weight=1.0000 + +[Table][0x3A20F3F3,3] +RefScale=13 +Column 0 Width=56 +Column 1 Width=56 +Column 2 Width=56 + +[Table][0xEA44DE71,3] +RefScale=13 +Column 0 Weight=1.0000 +Column 1 Width=84 +Column 2 Width=126 + +[Table][0x29CD9FF7,3] + +[Table][0x369EB90F,3] +Column 0 Weight=1.0000 +Column 1 Weight=1.0000 +Column 2 Weight=1.0000 + +[Table][0x2ACCE68A,3] +RefScale=13 +Column 0 Width=86 +Column 1 Width=86 +Column 2 Width=86 [Docking][Data] -DockSpace ID=0x08BD597D Window=0x1BBC0F80 Pos=0,0 Size=1280,720 Split=Y - DockNode ID=0x00000003 Parent=0x08BD597D SizeRef=1280,101 Split=X Selected=0xAA1D0058 - DockNode ID=0x00000001 Parent=0x00000003 SizeRef=618,101 Selected=0xAA1D0058 - DockNode ID=0x00000002 Parent=0x00000003 SizeRef=660,101 Selected=0x561EDE67 - DockNode ID=0x00000004 Parent=0x08BD597D SizeRef=1280,617 Split=X - DockNode ID=0x00000005 Parent=0x00000004 SizeRef=728,720 Split=X - DockNode ID=0x00000006 Parent=0x00000005 SizeRef=442,617 Selected=0x0FC82981 - DockNode ID=0x00000008 Parent=0x00000005 SizeRef=284,617 CentralNode=1 - DockNode ID=0x00000007 Parent=0x00000004 SizeRef=550,720 Selected=0x5E5F7166 +DockSpace ID=0x08BD597D Window=0x1BBC0F80 Pos=0,0 Size=1280,720 Split=Y + DockNode ID=0x00000003 Parent=0x08BD597D SizeRef=1280,101 Split=X Selected=0xAA1D0058 + DockNode ID=0x00000001 Parent=0x00000003 SizeRef=618,101 Selected=0xAA1D0058 + DockNode ID=0x00000002 Parent=0x00000003 SizeRef=660,101 Selected=0x561EDE67 + DockNode ID=0x00000004 Parent=0x08BD597D SizeRef=1280,617 Split=X + DockNode ID=0x00000005 Parent=0x00000004 SizeRef=590,724 Split=Y Selected=0x0FC82981 + DockNode ID=0x00000007 Parent=0x00000005 SizeRef=590,360 Split=Y Selected=0x0FC82981 + DockNode ID=0x00000009 Parent=0x00000007 SizeRef=590,364 CentralNode=1 Selected=0xB300D6F1 + DockNode ID=0x0000000A Parent=0x00000007 SizeRef=590,354 Selected=0x4443B0A2 + DockNode ID=0x00000008 Parent=0x00000005 SizeRef=590,358 Selected=0x5259B841 + DockNode ID=0x00000006 Parent=0x00000004 SizeRef=688,724 Selected=0x5E5F7166