feat: Add icons and change UI
This commit is contained in:
parent
86877d8345
commit
232f7fe0b3
BIN
editor/resources/fonts/Ruda-Bold.ttf
Normal file
BIN
editor/resources/fonts/Ruda-Bold.ttf
Normal file
Binary file not shown.
BIN
editor/resources/fonts/fa-regular-400.ttf
Normal file
BIN
editor/resources/fonts/fa-regular-400.ttf
Normal file
Binary file not shown.
BIN
editor/resources/fonts/fa-solid-900.ttf
Normal file
BIN
editor/resources/fonts/fa-solid-900.ttf
Normal file
Binary file not shown.
1409
engine/include/IconsFontAwesome6.h
Normal file
1409
engine/include/IconsFontAwesome6.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,7 @@
|
|||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <IconsFontAwesome6.h>
|
||||||
|
|
||||||
struct InspectorData
|
struct InspectorData
|
||||||
{
|
{
|
||||||
@ -22,6 +23,7 @@ public:
|
|||||||
~UI();
|
~UI();
|
||||||
|
|
||||||
static void Init(GLFWwindow* window);
|
static void Init(GLFWwindow* window);
|
||||||
|
static void LoadConfigs();
|
||||||
static void Run();
|
static void Run();
|
||||||
static void Render(const FrameBuffer& sceneBuffer);
|
static void Render(const FrameBuffer& sceneBuffer);
|
||||||
static void Shutdown();
|
static void Shutdown();
|
||||||
|
@ -17,24 +17,59 @@ void UI::Init(GLFWwindow* window)
|
|||||||
{
|
{
|
||||||
IMGUI_CHECKVERSION();
|
IMGUI_CHECKVERSION();
|
||||||
ImGui::CreateContext();
|
ImGui::CreateContext();
|
||||||
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
|
||||||
|
|
||||||
ImGuiStyle& style = ImGui::GetStyle();
|
LoadConfigs();
|
||||||
style.WindowBorderSize = 0;
|
|
||||||
style.WindowMenuButtonPosition = 1;
|
|
||||||
style.FrameRounding = 4;
|
|
||||||
style.GrabRounding = 4;
|
|
||||||
style.WindowRounding = 6;
|
|
||||||
m_StyleColors = style.Colors;
|
|
||||||
ImGui::StyleColorsDark();
|
|
||||||
|
|
||||||
// Setup Platform/Renderer backends
|
// Setup Platform/Renderer backends
|
||||||
ImGui_ImplGlfw_InitForOpenGL(window, true);
|
ImGui_ImplGlfw_InitForOpenGL(window, true);
|
||||||
ImGui_ImplOpenGL3_Init();
|
ImGui_ImplOpenGL3_Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UI::LoadConfigs()
|
||||||
|
{
|
||||||
|
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
||||||
|
|
||||||
|
float baseFontSize = 14.0f;
|
||||||
|
float iconFontSize = baseFontSize * 2.0f / 3.0f; // FontAwesome fonts need to have their sizes reduced by 2.0f/3.0f in order to align correctly
|
||||||
|
|
||||||
|
io.Fonts->AddFontFromFileTTF("fonts/Ruda-Bold.ttf", baseFontSize);
|
||||||
|
|
||||||
|
static const ImWchar iconsRanges[] = { ICON_MIN_FA, ICON_MAX_16_FA, 0 };
|
||||||
|
ImFontConfig iconsConfig;
|
||||||
|
iconsConfig.MergeMode = true;
|
||||||
|
iconsConfig.PixelSnapH = true;
|
||||||
|
iconsConfig.GlyphMinAdvanceX = iconFontSize;
|
||||||
|
io.Fonts->AddFontFromFileTTF( "fonts/" FONT_ICON_FILE_NAME_FAS, iconFontSize, &iconsConfig, iconsRanges );
|
||||||
|
|
||||||
|
ImGui::StyleColorsDark();
|
||||||
|
|
||||||
|
ImGuiStyle* style = &ImGui::GetStyle();
|
||||||
|
m_StyleColors = style->Colors;
|
||||||
|
|
||||||
|
style->WindowMenuButtonPosition = ImGuiDir_None;
|
||||||
|
style->WindowBorderSize = 0;
|
||||||
|
style->WindowMenuButtonPosition = 1;
|
||||||
|
style->GrabRounding = 4;
|
||||||
|
style->WindowRounding = 6;
|
||||||
|
style->FrameRounding = 2;
|
||||||
|
style->FramePadding = ImVec2(5.0f, 5.0f);
|
||||||
|
style->SeparatorTextPadding = ImVec2(5.0f, 5.0f);
|
||||||
|
|
||||||
|
m_StyleColors[ImGuiCol_WindowBg] = ImVec4(0.14f, 0.14f, 0.14f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_Border] = ImVec4(0.03f, 0.03f, 0.03f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_FrameBg] = ImVec4(0.09f, 0.09f, 0.09f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_TitleBg] = ImVec4(0.06f, 0.06f, 0.06f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_TitleBgActive] = ImVec4(0.06f, 0.06f, 0.06f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_MenuBarBg] = ImVec4(0.11f, 0.11f, 0.11f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_Header] = ImVec4(0.08f, 0.08f, 0.08f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_Tab] = ImVec4(0.06f, 0.06f, 0.06f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_TabActive] = ImVec4(0.2f, 0.2f, 0.2f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_TabUnfocused] = ImVec4(0.06f, 0.06f, 0.06f, 1.0f);
|
||||||
|
m_StyleColors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.2f, 0.2f, 0.2f, 1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
InspectorData UI::GetData()
|
InspectorData UI::GetData()
|
||||||
{
|
{
|
||||||
return s_Data;
|
return s_Data;
|
||||||
@ -58,6 +93,8 @@ void UI::Render(const FrameBuffer& sceneBuffer)
|
|||||||
ShowProject();
|
ShowProject();
|
||||||
ShowScene(sceneBuffer);
|
ShowScene(sceneBuffer);
|
||||||
|
|
||||||
|
ImGui::ShowDemoWindow();
|
||||||
|
|
||||||
ImGui::Render();
|
ImGui::Render();
|
||||||
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
||||||
}
|
}
|
||||||
@ -98,7 +135,7 @@ void UI::ShowHierarchy()
|
|||||||
{
|
{
|
||||||
ImGui::Begin("Hierarchy");
|
ImGui::Begin("Hierarchy");
|
||||||
|
|
||||||
ImGui::CollapsingHeader("Triangle");
|
ImGui::CollapsingHeader("Cube");
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
@ -107,22 +144,14 @@ void UI::ShowInspector()
|
|||||||
{
|
{
|
||||||
ImGui::Begin("Inspector");
|
ImGui::Begin("Inspector");
|
||||||
|
|
||||||
ImGui::SeparatorText("Cube");
|
if(ImGui::CollapsingHeader("Transform"))
|
||||||
|
|
||||||
ImGui::BeginGroup();
|
|
||||||
{
|
{
|
||||||
ImGui::Text("Transform");
|
ImGui::BeginGroup();
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(1.0f, 0.0f, 0.0f, 1.0f));
|
|
||||||
ImGui::DragFloat3("Position", glm::value_ptr(s_Data.m_Position), 0.2f);
|
ImGui::DragFloat3("Position", glm::value_ptr(s_Data.m_Position), 0.2f);
|
||||||
ImGui::PopStyleColor();
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.0f, 1.0f, 0.0f, 1.0f));
|
|
||||||
ImGui::DragFloat3("Rotation", glm::value_ptr(s_Data.m_Rotation), 0.4f);
|
ImGui::DragFloat3("Rotation", glm::value_ptr(s_Data.m_Rotation), 0.4f);
|
||||||
ImGui::PopStyleColor();
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.0f, 0.0f, 1.0f, 1.0f));
|
|
||||||
ImGui::DragFloat3("Scale", glm::value_ptr(s_Data.m_Scale), 0.1f);
|
ImGui::DragFloat3("Scale", glm::value_ptr(s_Data.m_Scale), 0.1f);
|
||||||
ImGui::PopStyleColor();
|
ImGui::EndGroup();
|
||||||
}
|
}
|
||||||
ImGui::EndGroup();
|
|
||||||
|
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user