UserInterface Maintenance
This commit is contained in:
parent
73492dc415
commit
e02a4850e0
6 changed files with 121 additions and 182 deletions
|
@ -14,24 +14,125 @@
|
||||||
|
|
||||||
#include "Graphics/GraphicsContext.h"
|
#include "Graphics/GraphicsContext.h"
|
||||||
|
|
||||||
|
#include "Input/KeyCodes.h"
|
||||||
|
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
|
|
||||||
namespace Light {
|
namespace Light {
|
||||||
|
|
||||||
Scope<UserInterface> UserInterface::Create(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
|
Scope<UserInterface> UserInterface::Create(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
|
||||||
{
|
{
|
||||||
|
Scope<UserInterface> scopeUserInterface = nullptr;
|
||||||
|
|
||||||
|
|
||||||
switch (GraphicsContext::GetGraphicsAPI())
|
switch (GraphicsContext::GetGraphicsAPI())
|
||||||
{
|
{
|
||||||
case GraphicsAPI::OpenGL:
|
case GraphicsAPI::OpenGL:
|
||||||
return CreateScope<glUserInterface>(windowHandle);
|
scopeUserInterface = CreateScope<glUserInterface>();
|
||||||
|
break;
|
||||||
|
|
||||||
case GraphicsAPI::DirectX: LT_WIN(
|
case GraphicsAPI::DirectX: LT_WIN(
|
||||||
return CreateScope<dxUserInterface>(windowHandle, std::dynamic_pointer_cast<dxSharedContext>(sharedContext));)
|
scopeUserInterface = CreateScope<dxUserInterface>();)
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LT_ENGINE_ASSERT(false, "UserInterface::Create: invalid/unsupported 'GraphicsAPI' {}", GraphicsContext::GetGraphicsAPI());
|
LT_ENGINE_ASSERT(false, "UserInterface::Create: invalid/unsupported 'GraphicsAPI' {}", GraphicsContext::GetGraphicsAPI());
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scopeUserInterface->Init(windowHandle, sharedContext);
|
||||||
|
return std::move(scopeUserInterface);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UserInterface::Init(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
|
||||||
|
{
|
||||||
|
// create context
|
||||||
|
IMGUI_CHECKVERSION();
|
||||||
|
ImGui::CreateContext();
|
||||||
|
|
||||||
|
// configure io
|
||||||
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
||||||
|
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
||||||
|
|
||||||
|
io.ConfigFlags |= ImGuiBackendFlags_PlatformHasViewports;
|
||||||
|
io.ConfigFlags |= ImGuiBackendFlags_RendererHasViewports;
|
||||||
|
|
||||||
|
// #todo: handle this in a better way
|
||||||
|
if (std::filesystem::exists("user_gui_layout.ini"))
|
||||||
|
io.IniFilename = "user_gui_layout.ini";
|
||||||
|
else
|
||||||
|
io.IniFilename = "default_gui_layout.ini";
|
||||||
|
|
||||||
|
// style
|
||||||
|
ImGui::StyleColorsDark();
|
||||||
|
|
||||||
|
PlatformImplementation(windowHandle, sharedContext);
|
||||||
|
|
||||||
|
// keyboard map
|
||||||
|
io.KeyMap[ImGuiKey_Tab] = Key::Tab;
|
||||||
|
io.KeyMap[ImGuiKey_LeftArrow] = Key::LeftArrow;
|
||||||
|
io.KeyMap[ImGuiKey_RightArrow] = Key::RightArrow;
|
||||||
|
io.KeyMap[ImGuiKey_UpArrow] = Key::UpArrow;
|
||||||
|
io.KeyMap[ImGuiKey_DownArrow] = Key::DownArrow;
|
||||||
|
io.KeyMap[ImGuiKey_PageUp] = Key::PageUp;
|
||||||
|
io.KeyMap[ImGuiKey_PageDown] = Key::PageDown;
|
||||||
|
io.KeyMap[ImGuiKey_Home] = Key::Home;
|
||||||
|
io.KeyMap[ImGuiKey_End] = Key::End;
|
||||||
|
io.KeyMap[ImGuiKey_Insert] = Key::Insert;
|
||||||
|
io.KeyMap[ImGuiKey_Delete] = Key::Delete;
|
||||||
|
io.KeyMap[ImGuiKey_Backspace] = Key::BackSpace;
|
||||||
|
io.KeyMap[ImGuiKey_Space] = Key::Space;
|
||||||
|
io.KeyMap[ImGuiKey_Enter] = Key::Enter;
|
||||||
|
io.KeyMap[ImGuiKey_Escape] = Key::Escape;
|
||||||
|
io.KeyMap[ImGuiKey_KeyPadEnter] = Key::Enter;
|
||||||
|
io.KeyMap[ImGuiKey_A] = Key::A;
|
||||||
|
io.KeyMap[ImGuiKey_C] = Key::C;
|
||||||
|
io.KeyMap[ImGuiKey_V] = Key::V;
|
||||||
|
io.KeyMap[ImGuiKey_X] = Key::X;
|
||||||
|
io.KeyMap[ImGuiKey_Y] = Key::Y;
|
||||||
|
io.KeyMap[ImGuiKey_Z] = Key::Z;
|
||||||
|
|
||||||
|
io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Bold.ttf", 18.0f);
|
||||||
|
io.FontDefault = io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Regular.ttf", 18.0f);
|
||||||
|
|
||||||
|
SetDarkThemeColors();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserInterface::SetDarkThemeColors()
|
||||||
|
{
|
||||||
|
auto& colors = ImGui::GetStyle().Colors;
|
||||||
|
colors[ImGuiCol_WindowBg] = ImVec4{ 0.1f, 0.105f, 0.11f, 1.0f };
|
||||||
|
|
||||||
|
// Headers
|
||||||
|
colors[ImGuiCol_Header] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
||||||
|
colors[ImGuiCol_HeaderHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
||||||
|
colors[ImGuiCol_HeaderActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
colors[ImGuiCol_Button] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
||||||
|
colors[ImGuiCol_ButtonHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
||||||
|
colors[ImGuiCol_ButtonActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
|
||||||
|
// Frame BG
|
||||||
|
colors[ImGuiCol_FrameBg] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
||||||
|
colors[ImGuiCol_FrameBgHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
||||||
|
colors[ImGuiCol_FrameBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
|
||||||
|
// Tabs
|
||||||
|
colors[ImGuiCol_Tab] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
colors[ImGuiCol_TabHovered] = ImVec4{ 0.38f, 0.3805f, 0.381f, 1.0f };
|
||||||
|
colors[ImGuiCol_TabActive] = ImVec4{ 0.28f, 0.2805f, 0.281f, 1.0f };
|
||||||
|
colors[ImGuiCol_TabUnfocused] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
colors[ImGuiCol_TabUnfocusedActive] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
||||||
|
|
||||||
|
// Title
|
||||||
|
colors[ImGuiCol_TitleBg] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
colors[ImGuiCol_TitleBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
|
colors[ImGuiCol_TitleBgCollapsed] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -21,6 +21,10 @@ namespace Light {
|
||||||
|
|
||||||
virtual ~UserInterface() = default;
|
virtual ~UserInterface() = default;
|
||||||
|
|
||||||
|
void Init(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext);
|
||||||
|
|
||||||
|
virtual void PlatformImplementation(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext) = 0;
|
||||||
|
|
||||||
virtual void Begin() = 0;
|
virtual void Begin() = 0;
|
||||||
virtual void End() = 0;
|
virtual void End() = 0;
|
||||||
|
|
||||||
|
@ -28,6 +32,9 @@ namespace Light {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UserInterface() = default;
|
UserInterface() = default;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void SetDarkThemeColors();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
|
@ -14,63 +14,13 @@
|
||||||
|
|
||||||
namespace Light {
|
namespace Light {
|
||||||
|
|
||||||
dxUserInterface::dxUserInterface(GLFWwindow* windowHandle, Ref<dxSharedContext> sharedContext)
|
void dxUserInterface::PlatformImplementation(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
|
||||||
{
|
{
|
||||||
// create context
|
|
||||||
IMGUI_CHECKVERSION();
|
|
||||||
ImGui::CreateContext();
|
|
||||||
|
|
||||||
// configure io
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
Ref<dxSharedContext> context = std::dynamic_pointer_cast<dxSharedContext>(sharedContext);
|
||||||
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
|
||||||
|
|
||||||
io.ConfigFlags |= ImGuiBackendFlags_PlatformHasViewports;
|
|
||||||
io.ConfigFlags |= ImGuiBackendFlags_RendererHasViewports;
|
|
||||||
|
|
||||||
// #todo: handle this in a better way
|
|
||||||
if(std::filesystem::exists("user_gui_layout.ini"))
|
|
||||||
io.IniFilename = "user_gui_layout.ini";
|
|
||||||
else
|
|
||||||
io.IniFilename = "default_gui_layout.ini";
|
|
||||||
|
|
||||||
// style
|
|
||||||
ImGui::StyleColorsDark();
|
|
||||||
|
|
||||||
// init
|
|
||||||
ImGui_ImplWin32_Init(glfwGetWin32Window(windowHandle));
|
ImGui_ImplWin32_Init(glfwGetWin32Window(windowHandle));
|
||||||
ImGui_ImplDX11_Init(sharedContext->GetDevice().Get(), sharedContext->GetDeviceContext().Get());
|
ImGui_ImplDX11_Init(context->GetDevice().Get(), context->GetDeviceContext().Get());
|
||||||
|
|
||||||
// keyboard map
|
|
||||||
io.KeyMap[ImGuiKey_Tab] = Key::Tab;
|
|
||||||
io.KeyMap[ImGuiKey_LeftArrow] = Key::LeftArrow;
|
|
||||||
io.KeyMap[ImGuiKey_RightArrow] = Key::RightArrow;
|
|
||||||
io.KeyMap[ImGuiKey_UpArrow] = Key::UpArrow;
|
|
||||||
io.KeyMap[ImGuiKey_DownArrow] = Key::DownArrow;
|
|
||||||
io.KeyMap[ImGuiKey_PageUp] = Key::PageUp;
|
|
||||||
io.KeyMap[ImGuiKey_PageDown] = Key::PageDown;
|
|
||||||
io.KeyMap[ImGuiKey_Home] = Key::Home;
|
|
||||||
io.KeyMap[ImGuiKey_End] = Key::End;
|
|
||||||
io.KeyMap[ImGuiKey_Insert] = Key::Insert;
|
|
||||||
io.KeyMap[ImGuiKey_Delete] = Key::Delete;
|
|
||||||
io.KeyMap[ImGuiKey_Backspace] = Key::BackSpace;
|
|
||||||
io.KeyMap[ImGuiKey_Space] = Key::Space;
|
|
||||||
io.KeyMap[ImGuiKey_Enter] = Key::Enter;
|
|
||||||
io.KeyMap[ImGuiKey_Escape] = Key::Escape;
|
|
||||||
io.KeyMap[ImGuiKey_KeyPadEnter] = Key::Enter;
|
|
||||||
io.KeyMap[ImGuiKey_A] = Key::A;
|
|
||||||
io.KeyMap[ImGuiKey_C] = Key::C;
|
|
||||||
io.KeyMap[ImGuiKey_V] = Key::V;
|
|
||||||
io.KeyMap[ImGuiKey_X] = Key::X;
|
|
||||||
io.KeyMap[ImGuiKey_Y] = Key::Y;
|
|
||||||
io.KeyMap[ImGuiKey_Z] = Key::Z;
|
|
||||||
|
|
||||||
io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Bold.ttf", 18.0f);
|
|
||||||
io.FontDefault = io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Regular.ttf", 18.0f);
|
|
||||||
|
|
||||||
SetDarkThemeColors();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dxUserInterface::~dxUserInterface()
|
dxUserInterface::~dxUserInterface()
|
||||||
|
@ -113,37 +63,4 @@ namespace Light {
|
||||||
LT_ENGINE_INFO("________________________________________");
|
LT_ENGINE_INFO("________________________________________");
|
||||||
}
|
}
|
||||||
|
|
||||||
void dxUserInterface::SetDarkThemeColors()
|
|
||||||
{
|
|
||||||
auto& colors = ImGui::GetStyle().Colors;
|
|
||||||
colors[ImGuiCol_WindowBg] = ImVec4{ 0.1f, 0.105f, 0.11f, 1.0f };
|
|
||||||
|
|
||||||
// Headers
|
|
||||||
colors[ImGuiCol_Header] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_HeaderHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_HeaderActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Buttons
|
|
||||||
colors[ImGuiCol_Button] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_ButtonHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_ButtonActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Frame BG
|
|
||||||
colors[ImGuiCol_FrameBg] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_FrameBgHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_FrameBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Tabs
|
|
||||||
colors[ImGuiCol_Tab] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabHovered] = ImVec4{ 0.38f, 0.3805f, 0.381f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabActive] = ImVec4{ 0.28f, 0.2805f, 0.281f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabUnfocused] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabUnfocusedActive] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
|
|
||||||
// Title
|
|
||||||
colors[ImGuiCol_TitleBg] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TitleBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TitleBgCollapsed] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -16,16 +16,15 @@ namespace Light {
|
||||||
class dxUserInterface : public UserInterface
|
class dxUserInterface : public UserInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
dxUserInterface(GLFWwindow* windowHandle, Ref<dxSharedContext> sharedContext);
|
dxUserInterface() = default;
|
||||||
~dxUserInterface();
|
~dxUserInterface();
|
||||||
|
|
||||||
|
void PlatformImplementation(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext) override;
|
||||||
|
|
||||||
void Begin() override;
|
void Begin() override;
|
||||||
void End() override;
|
void End() override;
|
||||||
|
|
||||||
void LogDebugData() override;
|
void LogDebugData() override;
|
||||||
|
|
||||||
private:
|
|
||||||
void SetDarkThemeColors();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
|
@ -12,63 +12,12 @@
|
||||||
|
|
||||||
namespace Light {
|
namespace Light {
|
||||||
|
|
||||||
glUserInterface::glUserInterface(GLFWwindow* windowHandle)
|
void glUserInterface::PlatformImplementation(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
|
||||||
: m_WindowHandle(windowHandle)
|
|
||||||
{
|
{
|
||||||
// create context
|
m_WindowHandle = windowHandle;
|
||||||
IMGUI_CHECKVERSION();
|
|
||||||
ImGui::CreateContext();
|
|
||||||
|
|
||||||
// configure io
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
|
||||||
|
|
||||||
io.ConfigFlags |= ImGuiBackendFlags_PlatformHasViewports;
|
|
||||||
io.ConfigFlags |= ImGuiBackendFlags_RendererHasViewports;
|
|
||||||
|
|
||||||
// #todo: handle this in a better way
|
|
||||||
if (std::filesystem::exists("user_gui_layout.ini"))
|
|
||||||
io.IniFilename = "user_gui_layout.ini";
|
|
||||||
else
|
|
||||||
io.IniFilename = "default_gui_layout.ini";
|
|
||||||
|
|
||||||
// style color
|
|
||||||
ImGui::StyleColorsDark();
|
|
||||||
|
|
||||||
// init
|
|
||||||
ImGui_ImplGlfw_InitForOpenGL(windowHandle, false);
|
ImGui_ImplGlfw_InitForOpenGL(windowHandle, false);
|
||||||
ImGui_ImplOpenGL3_Init();
|
ImGui_ImplOpenGL3_Init();
|
||||||
|
|
||||||
// keyboard map
|
|
||||||
io.KeyMap[ImGuiKey_Tab] = Key::Tab;
|
|
||||||
io.KeyMap[ImGuiKey_LeftArrow] = Key::LeftArrow;
|
|
||||||
io.KeyMap[ImGuiKey_RightArrow] = Key::RightArrow;
|
|
||||||
io.KeyMap[ImGuiKey_UpArrow] = Key::UpArrow;
|
|
||||||
io.KeyMap[ImGuiKey_DownArrow] = Key::DownArrow;
|
|
||||||
io.KeyMap[ImGuiKey_PageUp] = Key::PageUp;
|
|
||||||
io.KeyMap[ImGuiKey_PageDown] = Key::PageDown;
|
|
||||||
io.KeyMap[ImGuiKey_Home] = Key::Home;
|
|
||||||
io.KeyMap[ImGuiKey_End] = Key::End;
|
|
||||||
io.KeyMap[ImGuiKey_Insert] = Key::Insert;
|
|
||||||
io.KeyMap[ImGuiKey_Delete] = Key::Delete;
|
|
||||||
io.KeyMap[ImGuiKey_Backspace] = Key::BackSpace;
|
|
||||||
io.KeyMap[ImGuiKey_Space] = Key::Space;
|
|
||||||
io.KeyMap[ImGuiKey_Enter] = Key::Enter;
|
|
||||||
io.KeyMap[ImGuiKey_Escape] = Key::Escape;
|
|
||||||
io.KeyMap[ImGuiKey_KeyPadEnter] = Key::Enter;
|
|
||||||
io.KeyMap[ImGuiKey_A] = Key::A;
|
|
||||||
io.KeyMap[ImGuiKey_C] = Key::C;
|
|
||||||
io.KeyMap[ImGuiKey_V] = Key::V;
|
|
||||||
io.KeyMap[ImGuiKey_X] = Key::X;
|
|
||||||
io.KeyMap[ImGuiKey_Y] = Key::Y;
|
|
||||||
io.KeyMap[ImGuiKey_Z] = Key::Z;
|
|
||||||
|
|
||||||
io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Bold.ttf", 18.0f);
|
|
||||||
io.FontDefault = io.Fonts->AddFontFromFileTTF("res/Fonts/OpenSans/OpenSans-Regular.ttf", 18.0f);
|
|
||||||
|
|
||||||
SetDarkThemeColors();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glUserInterface::~glUserInterface()
|
glUserInterface::~glUserInterface()
|
||||||
|
@ -112,37 +61,4 @@ namespace Light {
|
||||||
LT_ENGINE_INFO("________________________________________");
|
LT_ENGINE_INFO("________________________________________");
|
||||||
}
|
}
|
||||||
|
|
||||||
void glUserInterface::SetDarkThemeColors()
|
|
||||||
{
|
|
||||||
auto& colors = ImGui::GetStyle().Colors;
|
|
||||||
colors[ImGuiCol_WindowBg] = ImVec4{ 0.1f, 0.105f, 0.11f, 1.0f };
|
|
||||||
|
|
||||||
// Headers
|
|
||||||
colors[ImGuiCol_Header] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_HeaderHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_HeaderActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Buttons
|
|
||||||
colors[ImGuiCol_Button] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_ButtonHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_ButtonActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Frame BG
|
|
||||||
colors[ImGuiCol_FrameBg] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
colors[ImGuiCol_FrameBgHovered] = ImVec4{ 0.3f, 0.305f, 0.31f, 1.0f };
|
|
||||||
colors[ImGuiCol_FrameBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
|
|
||||||
// Tabs
|
|
||||||
colors[ImGuiCol_Tab] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabHovered] = ImVec4{ 0.38f, 0.3805f, 0.381f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabActive] = ImVec4{ 0.28f, 0.2805f, 0.281f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabUnfocused] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TabUnfocusedActive] = ImVec4{ 0.2f, 0.205f, 0.21f, 1.0f };
|
|
||||||
|
|
||||||
// Title
|
|
||||||
colors[ImGuiCol_TitleBg] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TitleBgActive] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
colors[ImGuiCol_TitleBgCollapsed] = ImVec4{ 0.15f, 0.1505f, 0.151f, 1.0f };
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -14,16 +14,15 @@ namespace Light {
|
||||||
GLFWwindow* m_WindowHandle;
|
GLFWwindow* m_WindowHandle;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
glUserInterface(GLFWwindow* windowHandle);
|
glUserInterface() = default;
|
||||||
~glUserInterface();
|
~glUserInterface();
|
||||||
|
|
||||||
|
void PlatformImplementation(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext) override;
|
||||||
|
|
||||||
void Begin() override;
|
void Begin() override;
|
||||||
void End() override;
|
void End() override;
|
||||||
|
|
||||||
void LogDebugData() override;
|
void LogDebugData() override;
|
||||||
|
|
||||||
private:
|
|
||||||
void SetDarkThemeColors();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue