diff --git a/res/Roboto-Medium.ttf b/res/Roboto-Medium.ttf new file mode 100644 index 0000000..39c63d7 Binary files /dev/null and b/res/Roboto-Medium.ttf differ diff --git a/src/gui/style.hpp b/src/gui/style.hpp new file mode 100644 index 0000000..6dfdca6 --- /dev/null +++ b/src/gui/style.hpp @@ -0,0 +1,85 @@ +#pragma once + +#include + +namespace inferno { + +inline void SetupImGuiStyle2() +{ + ImGuiIO& io = ImGui::GetIO(); + io.Fonts->AddFontFromFileTTF("res/Roboto-Medium.ttf", 15.0f); + + ImGuiStyle* style = &ImGui::GetStyle(); + style->FrameRounding = 2.0f; + style->WindowPadding = ImVec2(4.0f, 3.0f); + style->FramePadding = ImVec2(4.0f, 4.0f); + style->ItemSpacing = ImVec2(4.0f, 3.0f); + style->IndentSpacing = 12; + style->ScrollbarSize = 12; + style->GrabMinSize = 9; + // Sizes + style->WindowBorderSize = 0.0f; + style->ChildBorderSize = 0.0f; + style->PopupBorderSize = 0.0f; + style->FrameBorderSize = 0.0f; + style->TabBorderSize = 0.0f; + style->WindowRounding = 12.0f; + style->ChildRounding = 0.0f; + style->FrameRounding = 3.0f; + style->PopupRounding = 3.0f; + style->GrabRounding = 12.0f; + style->ScrollbarRounding = 12.0f; + style->TabRounding = 3.0f; + + ImVec4* colours = ImGui::GetStyle().Colors; + colours[ImGuiCol_Text] = ImVec4(0.95f, 0.96f, 0.98f, 1.00f); + colours[ImGuiCol_TextDisabled] = ImVec4(0.36f, 0.42f, 0.47f, 1.00f); + colours[ImGuiCol_WindowBg] = ImVec4(0.11f, 0.15f, 0.17f, 0.60f); + colours[ImGuiCol_ChildBg] = ImVec4(0.15f, 0.18f, 0.22f, 0.60f); + colours[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.80f); + colours[ImGuiCol_Border] = ImVec4(0.08f, 0.10f, 0.12f, 1.00f); + colours[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + colours[ImGuiCol_FrameBg] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colours[ImGuiCol_FrameBgHovered] = ImVec4(0.12f, 0.20f, 0.28f, 1.00f); + colours[ImGuiCol_FrameBgActive] = ImVec4(0.09f, 0.12f, 0.14f, 1.00f); + colours[ImGuiCol_TitleBg] = ImVec4(0.09f, 0.12f, 0.14f, 0.65f); + colours[ImGuiCol_TitleBgActive] = ImVec4(0.08f, 0.10f, 0.12f, 1.00f); + colours[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f); + colours[ImGuiCol_MenuBarBg] = ImVec4(0.15f, 0.18f, 0.22f, 1.00f); + colours[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.39f); + colours[ImGuiCol_ScrollbarGrab] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colours[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.18f, 0.22f, 0.25f, 1.00f); + colours[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.09f, 0.21f, 0.31f, 1.00f); + colours[ImGuiCol_CheckMark] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f); + colours[ImGuiCol_SliderGrab] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f); + colours[ImGuiCol_SliderGrabActive] = ImVec4(0.37f, 0.61f, 1.00f, 1.00f); + colours[ImGuiCol_Button] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colours[ImGuiCol_ButtonHovered] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f); + colours[ImGuiCol_ButtonActive] = ImVec4(0.06f, 0.53f, 0.98f, 1.00f); + colours[ImGuiCol_Header] = ImVec4(0.20f, 0.25f, 0.29f, 0.55f); + colours[ImGuiCol_HeaderHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f); + colours[ImGuiCol_HeaderActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); + colours[ImGuiCol_Separator] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colours[ImGuiCol_SeparatorHovered] = ImVec4(0.10f, 0.40f, 0.75f, 0.78f); + colours[ImGuiCol_SeparatorActive] = ImVec4(0.10f, 0.40f, 0.75f, 1.00f); + colours[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f); + colours[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f); + colours[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f); + colours[ImGuiCol_Tab] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colours[ImGuiCol_TabHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f); + colours[ImGuiCol_TabActive] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f); + colours[ImGuiCol_TabUnfocused] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colours[ImGuiCol_TabUnfocusedActive] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f); + colours[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f); + colours[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f); + colours[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + colours[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); + colours[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f); + colours[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f); + colours[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); + colours[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f); + colours[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f); + colours[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f); +} + +} diff --git a/src/inferno.cpp b/src/inferno.cpp index 1a5eb92..ee0b7aa 100644 --- a/src/inferno.cpp +++ b/src/inferno.cpp @@ -137,11 +137,11 @@ int Inferno::run() cornell.setMaterial(&basicMaterial); mScene->addMesh(&cornell); - // Mesh dragon; - // dragon.loadOBJ("res/dragon-cornell-size.obj"); - // dragon.ready(); - // dragon.setMaterial(&basicMaterial); - // mScene->addMesh(&dragon); + Mesh dragon; + dragon.loadOBJ("res/dragon-cornell-size.obj"); + dragon.ready(); + dragon.setMaterial(&basicMaterial); + mScene->addMesh(&dragon); Camera camera; mScene->setCamera(&camera); diff --git a/src/window.cpp b/src/window.cpp index 1fae940..989e1df 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1,5 +1,7 @@ #include "window.hpp" +#include "gui/style.hpp" + #include "spdlog/spdlog.h" using namespace inferno; @@ -160,6 +162,8 @@ void Window::setupImGui() // Setup Platform/Renderer backends ImGui_ImplGlfw_InitForOpenGL(window, true); ImGui_ImplOpenGL3_Init(glslVersion); + + SetupImGuiStyle2(); } void Window::shutdownImGui()