๋ค์ ๋ฆด๋ฆฌ์ค (1.50)์ ๊ฐ์ด ๊ธฐ๋ณธ ํจํค์ง์ ๋ช ๊ฐ์ง ๋ ๋์ ์์ ํ ๋ง๋ฅผ ํฌํจํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๊ทธ ์ด์ ๋ ์ฌ๋๋ค์ด ์ค์ ๋ก ์คํ์ผ๋ง์ ๋๋ฌด ๋ง์ด ์๋ง์ผ๋ก ๋ง๋๋ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด ๊ทธ๋ ๊ฒํ๊ณ ์ถ๋ค๋ ๊ฒ์ ๋๋ค. ์์ ๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ , ํฐ ๋ถ๋ถ์ ์ปค์คํ ํ ๋ง๊ฐ ๊นจ์ง๊ธฐ ์ฝ๊ณ ์คํ์ผ๋ง ์์คํ ์ ๋ณ๊ฒฝํ๋ ๋ฐ ๋ ์ ์คํ ์ํฉ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ ์ ๋ ์ฌ๋๋ค์ด ๋ง์กฑํ๋ ๋ช ๋ช ๋ ํ ๋ง๋ก ๋ ๋์ ๊ธฐ์ค์ ์ ๊ณตํ๊ณ , ImGui๊ฐ ์ค์ ๋ก ์ค๋น๊ฐ ๋ ๋๊น์ง ์ฌ๋๋ค์ด ๋๋ฌด ๋ง์ ์คํค๋์ํ์ง ์๋๋ก ์ ์งํ๊ณ ์ค์ ๋ก ๊ถ์ฅํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
1. A.
๊ธฐ์กด ๊ธฐ๋ณธ ํ
๋ง๋ฅผ ๊ฐ์ ํ๊ณ ์ถ์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ฒํผ ์์์ ๋ณ๊ฒฝํด์ผํฉ๋๋ค. ํ์ฌ ์ต์
์ ์ํ์
๋๋ค. ํ์ฌ ๊ธฐ๋ณธ ํ
๋ง๋ฅผ ์ฝ๊ฐ๋ง ์กฐ์ ํ๋ฉด ์๋กญ๊ณ ์ข์ ๋ฐฉ๋ฒ์ด ๋ ๊ฒ์
๋๋ค. ์ฐฝ์์ ์ธ ๋ถ์๊ธฐ๋ผ๋ฉด ๊ธฐ๋ณธ ํ
๋ง๋ฅผ ์กฐ์ ํด๋ณด์ธ์. :)
1. B.
์๋ก์ด ํ
๋ง๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์ ์ ์ ํ ์คํฌ๋ฆฐ ์ท๊ณผ ํจ๊ป ์ ์ถํด์ฃผ์ธ์! ๋๋ ์๋ง ์ ์ด๋ ๊ฒ์ ์ ํ
๋ง, ํฐ์ ํ
๋ง๋ ์๊ฐํ๋ค. ์๋ง ํ๋ ๋ฒ ๋. ๋
ผ์ํ๋ ๋์ ์ฝ๊ฐ ํฌ๋ช
ํ ์ฐฝ์ ๊ฒ์ / ์ฝํ
์ธ ์์ ์ฐฝ์ ์ค๋ฒ๋ ์ดํ๋ ๋ง์ ์ฌ์ฉ์์๊ฒ ์ ์ฉํ๋ค๋ ์ ์ ๊ณ ๋ คํด์ผํฉ๋๋ค. ์ด๊ฒ์ด ๊ฑฐ๋๋ฅผ ์ค๋จํ๋ ๊ฒ์ ์๋์ง๋ง ํ
๋ง๊ฐ ์์ ํ ๋ถํฌ๋ช
ํ ๋ฐฐ๊ฒฝ์์ผ๋ก ์๋ํ๊ณ ์ฝ๊ฐ ํฌ๋ช
ํ ์์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ด๋์ด / ์ฐธ์กฐ๋ฅผ ์ํด ๋ค๋ฅธ ์ํํธ์จ์ด์ ์ท์ ์ ์ถํ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ ๋ฐ๋ก ํ์
ํ๊ณ ์ค์ ์ค์ ์ ํตํฉํ๊ณ ์ถ์ต๋๋ค.
2.
๋ํ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ / ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก์ด ๋น๋ / ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ๊ธ๊ผด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด์ฌ์ฃผ๋ ์ค์ฉ์ ์ธ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ถ์ต๋๋ค. ํนํ ์ฌ์ฉ๋๋ ๋๊ตฌ ์ธํธ / ๋น๋ ์์คํ
์ ๋ฐ๋ผ ์์ ๋๋ ํ ๋ฆฌ๋ ๊ฐ๋ณ์ ์ผ ์ ์์ผ๋ฉฐ extra_fonts /์ ํ์๋ ๊ฒ๊ณผ ๊ฐ์ ์ธ๋ถ ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ์์
์ด ๋ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๊ด๋ จ ์ฃผ์
๋ด๊ฐ ์ฌ์ฉํ๊ณ ์๋ ํ ๋ง๋ @itamago ์ ๋ผ์ดํธ ์คํ์ผ์ ๊ธฐ๋ฐ ์ผ๋ก์ด Gist์ SetupimGuiStyle ํจ์๋ฅผ ํตํด ์ค์ ๋ฉ๋๋ค.
์ํ ์ฒ๋ฆฌ๋ฅผ ํต์ผํ๊ธฐ ์ํด ์ฝ๊ฐ ์์ ํ๊ณ ๋ฐ๊ณ ์ด๋ก๊ฒ ์ ํํ๊ณ ๋ฐฐ๊ฒฝ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
๊ธฐ๋ณธ ๊ธ๊ผด์ ๊ฒฝ์ฐ 18.0f ํฌ๊ธฐ์ Roboto-Regular.ttf ๋ฅผ ์ฌ์ฉ ํ๊ณ
์๋
ํ์ธ์ @ocornut ,
์๋๋ฅด๋ ๊ฒ์ ์ ์๋๊ฐ ์๋๋๋ค : blush :,ํ์ง๋ง ์ด๋ฌํ ํ
๋ง ๊ฐ์ ์ฌํญ์ผ๋ก 1.50์ ์ถ์ ์์ ์๊ฐ์ด ์์ต๋๊น?
๋ ๋ค๋ฅธ ํ๊ฐ์ง : _emscripten_์ ๋ํ imgui์ ๋น๊ณต์ ํฌํธ๊ฐ ์ ์ด๋ _4_ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด์ ๊ณต์์ ์ธ ํฌํธ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ํ๋ฌ์ค ์ธก๋ฉด์์, wasm ์น ์ด์ ๋ธ๋ฆฌ๊ฐ ๋ฌด๋ฃ ๋ณด๋์ค๋ก ์ ๊ณต๋๋ ๋ธ๋ผ์ฐ์ ์์ ํ์๊ฐ๋ฉ๋๋ค.
๋ด ๋ฒ ์คํธ,
--RM
๋ก๋ฒ ๋ฅดํ ๊ฐ ETA๋ฅผ ์ค ์ ์์ด์ ๋ฏธ์ํฉ๋๋ค. ์ ์ค์๋ถํฐ ํ์ ์ปจํธ๋กค์ ๋ํ ์์ ์ ๋ค์ ์ํํ๊ณ ๊ทธ ํ ์์์ ์ดํด๋ณผ ๊ฒ์ ๋๋ค.
๋๋ ๋ํ ์ด๋ค ์๋ก์ด ํ๋ก์ ํธ๋ ๋งก์ ์ ์์ผ๋ฉฐ ๋ฌด์์ด๋ emscripten์ ์๋ก์ด ์๊ฐ์ด ๋ ๊ฒ์ ๋๋ค. ๋๋ emscripten์ ๋ชจ๋ฅด๊ณ ์ ๋ณด์ ์ ๊ฐ ํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ์ด ๋ค ์ฌ๋ ์ค ๋๊ตฐ๊ฐ๊ฐ ์ปค๋ฎค๋ํฐ์ ๊ธฐ๋ถํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋ํด ์ง์งํ๊ฒ ์๊ฐํ๋ค๋ฉด ๊ทธ๋ค์ ์ค์ค๋ก ํ๋ก์ ํธ๋ฅผ ๋ถ๋ฅํ๊ณ ๊ทธ๊ฒ์ด ํ๋นํ๋ค๊ณ ์๊ฐํ๋ค๋ฉด ๊ณต์ ์ ์ฅ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ถํ ์ ์์ต๋๋ค. ์ธ๋ถ์ ์ธ ๋ถ๋ถ๊ณผ ๋ถ๋ฅ / ์ ์ง ๊ด๋ฆฌ / ํ๋ ์ ํ ์ด์ ์์๋ ์ ๋ง๋ ๊ทธ๋ค์ ์ํด ํ ์์๋ ๋ง์ ์ผ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ธฐ์ฌ๋ ์ผํ์ฑ์ด๋ฉฐ ๋ ๋ง์ ์์ ์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ ๊ทธ๊ฒ์ ๊ฐ์ํ๊ฑฐ๋ ๋จ์ํ ์ ์ ํ ์ ์์ต๋๋ค. ์์ฒญ๋ฐ์ง ์๊ณ ๊ธฐ์ฌํ๋ ์ฌ๋๋ค์ ์ฅ๊ธฐ์ ์ผ๋ก ์ผ์ ๊ณ์ํ ๊ฐ๋ฅ์ฑ์ด ๋ ํฝ๋๋ค. :)
์๋
ํ์ธ์ ์ค๋ง๋ฅด์ ์๋ต ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์ ์๊ฒ๋ ์๊ฐ์ด ์ ๋ง ๋ถ์กฑํ ์์์ด๊ธฐ ๋๋ฌธ์ ์ ๋ ๋น์ ์ ์์ ํ ์ดํดํฉ๋๋ค.
๋๋ 1.5 ๋
์ ์ ํ ๋ฒ์ ํฌํธ๋ฅผ ์ผ์ง ๋ง ์์งํ ์ด๋์ ๋ ์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ง๊ธ์ ๋๋ถ๋ถ ์น ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ์์ imgui๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์์ผ๋ฉฐ imgui๋ฅผ ์ป๊ธฐ ์ํด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์น ์ด์
๋ธ๋ฆฌ๊ฐ ํ์ค์ด๋๊ณ ๊ธฐ๋ณธ๊ฐ์ด๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๋๋ ๊ทธ๊ฒ์ ํฌํ
ํ๊ณ ๊ธฐ์ฌํ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ ๋ ์์ ์ ์ธ mutiplatform ์๋ฃจ์
์ ์ํด ๋ชจ๋ CSS / ๋ธ๋ผ์ฐ์ / JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๊ธฐ๋ฅผ ์ญ์ ํฉ๋๋ค).
๋ด๋น๊ฒ์ด์ ์ปจํธ๋กค? ๋์ปค ํจ๋ (3 ๊ฐ์์ ๋ณผ ์ ์์), ํญ ๊ด๋ฆฌ์ ๊ฐ์ ๋ ๋ฉ์ง ๊ฒ์ ์๋ฏธํฉ๋๊น? (๋๋ ๊ทธ๊ฒ์ ๋ฐ๋๋ค : ๋ฏธ์ :)
๋ฉ์ง ์ฝ๋์ ์๊ณ ๊ฐ๋จํ๊ฒ ์ ์ง ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
-๋ก๋ฒ ๋ฅดํ
์ฌ๊ธฐ์ ์คํ์ผ์ ๊ฒ์ํ์ธ์!
1.50์ ๊ฒฝ์ฐ ์ข์ ์ซ์์ด๊ธฐ ๋๋ฌธ์ ์์
ํ๊ณ ์๋ก์ด ์์ ํ
๋ง๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค :)
์์
์ด ๋๋๋ฉด ์ฌ๊ธฐ์ ๋ด ํ
๋ง๋ฅผ ๊ฒ์ํ๊ฒ ์ต๋๋ค.
btw, ๋น์ ์ ๋งค์ฐ ์๋ จ ๋ ์ํฐ์คํธ ์น๊ตฌ (benfiquet)๊ฐ ์๋๋ฐ, ๊ทธ๊ฐ ์ด๊ฒ์ ๋์ธ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๊ธฐ ๋ด ๊บผ์ผ
ImGuiStyle& style = ImGui::GetStyle();
style.WindowRounding = 5.3f;
style.FrameRounding = 2.3f;
style.ScrollbarRounding = 0;
style.Colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 0.90f);
style.Colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
style.Colors[ImGuiCol_WindowBg] = ImVec4(0.09f, 0.09f, 0.15f, 1.00f);
style.Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_PopupBg] = ImVec4(0.05f, 0.05f, 0.10f, 0.85f);
style.Colors[ImGuiCol_Border] = ImVec4(0.70f, 0.70f, 0.70f, 0.65f);
style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_FrameBg] = ImVec4(0.00f, 0.00f, 0.01f, 1.00f);
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.90f, 0.80f, 0.80f, 0.40f);
style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.90f, 0.65f, 0.65f, 0.45f);
style.Colors[ImGuiCol_TitleBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.83f);
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f);
style.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.00f, 0.00f, 0.00f, 0.87f);
style.Colors[ImGuiCol_MenuBarBg] = ImVec4(0.01f, 0.01f, 0.02f, 0.80f);
style.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.20f, 0.25f, 0.30f, 0.60f);
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.55f, 0.53f, 0.55f, 0.51f);
style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.56f, 0.56f, 0.56f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.56f, 0.56f, 0.56f, 0.91f);
style.Colors[ImGuiCol_ComboBg] = ImVec4(0.1f, 0.1f, 0.1f, 0.99f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.83f);
style.Colors[ImGuiCol_SliderGrab] = ImVec4(0.70f, 0.70f, 0.70f, 0.62f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.30f, 0.30f, 0.30f, 0.84f);
style.Colors[ImGuiCol_Button] = ImVec4(0.48f, 0.72f, 0.89f, 0.49f);
style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.50f, 0.69f, 0.99f, 0.68f);
style.Colors[ImGuiCol_ButtonActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f);
style.Colors[ImGuiCol_Header] = ImVec4(0.30f, 0.69f, 1.00f, 0.53f);
style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.44f, 0.61f, 0.86f, 1.00f);
style.Colors[ImGuiCol_HeaderActive] = ImVec4(0.38f, 0.62f, 0.83f, 1.00f);
style.Colors[ImGuiCol_Column] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
style.Colors[ImGuiCol_ColumnHovered] = ImVec4(0.70f, 0.60f, 0.60f, 1.00f);
style.Colors[ImGuiCol_ColumnActive] = ImVec4(0.90f, 0.70f, 0.70f, 1.00f);
style.Colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.85f);
style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f);
style.Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f);
style.Colors[ImGuiCol_CloseButton] = ImVec4(0.50f, 0.50f, 0.90f, 0.50f);
style.Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.70f, 0.70f, 0.90f, 0.60f);
style.Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.70f, 0.70f, 0.70f, 1.00f);
style.Colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
style.Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
style.Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
style.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
style.Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f);
style.Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f);
@ocornut : ์ํ๋ ๊ฒฝ์ฐ ๋ด ์ ๋์จ ๋ธ๋์น์์ ์ผ๋ถ ์คํ์ผ์ ์ ํํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ResetStyle () ๋ฉ์๋๋ฅผ ์ฐธ์กฐ ํ์ธ์.
๋ชจ๋ ๋ฉ์ ธ ๋ณด์ด์ง๋ ์์ง๋ง ์ด๊ฒ์ด ์ ๊ฐ ํ ์์๋ ์ผ์ด์์ต๋๋ค.
์ถ์ : ๊ทธ๋ค ์ค ์ผ๋ถ๋ ์ ํ ๋ด ๊ฒ์ด ์๋๋๋ค. ์ ๋ ๋ค๋ฅธ ๊ฒ์๋ฌผ์์ ์คํ์ผ์ ์์ง (๋๋ก๋ ์ ์ฉ)ํ์ต๋๋ค.
์ถ์ : https://rawgit.com/Flix01/imgui/imgui_with_addons/examples/addons_examples/html/main.html (์ ์ ์์ฑ์ ๋ด๊ฐ ๋ง๋ค์ง ์์ ํ ๋ง์ ๋ํ ์ฝค๋ณด ๋๊ตฌ ์ค๋ช ์ ํ์๋ฉ๋๋ค).
[ํธ์ง :] ShowBorder ์์ฑ์ _ImGuiWindow_์์ _ImStyle_๋ก ์ด๋ ํ์๊ฒ ์ต๋๊น?
๋ ๋ค ๋งํฌ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
@ codz01 Ben์ ์ค์ ๋ก UX ๋์์ด๋๊ฐ ์๋๋๋ค. ๊ทธ๋ ์ค์ง์ ์ธ ์ค์ ๊ณ ๋ ค ์ฌํญ์ ๋ฌด์ํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์์ต๋๋ค.
@ Flix01 ๊ฐ์ฌํฉ๋๋ค! ๋ค ๋ง์ด ์ณ๋ค๊ณ ์์ง์ฌ์ผ ํด์ .. 1.50์์ ๊ทธ ๋ณํ๋ฅผ ๋ชฉํ๋กํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ฒ์์ ์ด๋ป๊ฒ ๋๋ฌ๋์ง ๊ธฐ์ต์กฐ์ฐจ ํ ์ ์๋ค. ์๋ง ๋ด๊ฐ 1.00์ ์ํด ์ฑ๊ธํ ์ ํ์ํ์ ๊ฒ์ด๋ค.
1.50์์ ๊ทธ ๋ณํ๋ฅผ ๋ชฉํ๋กํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค
@ocornut : ์, ๊ฐ์ ๋ฆด๋ฆฌ์ค์์ ๋ชจ๋ ์คํ์ผ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํจ๊ป ๋ค๋ฃจ๋ ๊ฒ์ด ์ข์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์, ๋์ผํ ๋ฆด๋ฆฌ์ค์์ ๋ชจ๋ ์คํ์ผ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํจ๊ป ๋ค๋ฃจ๋ ๊ฒ์ด ์ข์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
"๋ชจ๋"๋ ์ฝ๊ฐ ๋๊ด์ ์ ๋๋ค. ํ ๋๋ฆฌ ๋ง ๋ณ๊ฒฝํ๋ ๊ฒ์กฐ์ฐจ๋ ์ฌ์ ์ ์๋นํ ๋์์ธ์ด ํ์ํฉ๋๋ค.
https://github.com/procedural/gpulib/ ์์ ์ฐธ์กฐ ์ฉ์ผ๋ก ๋ณต์ฌ
(https://github.com/procedural/gpulib/blob/e0bda0cd486d720a90857df9f7797722265e9312/examples/04%20Dear%20ImGui/main.c)
FreeType ๋ก๋๋ฅผ ๊ณต์ํํ๋ ค๋ ์ ํน์ด ์ ์ ๋ ์ปค์ก์ต๋๋ค. ์์ ํฌ๊ธฐ์์๋ ๋ฉ์ง ์คํฐ ์จ๋ฆฌ์ด์ฑ ๊ธ๊ผด์ ์ป๊ธฐ๊ฐ ์ด๋ ต ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ ๋ค๋ฅธ ํ ๊ฐ์ง๋ ๋ง์ ์คํ์ผ์ด ํฌ๋ช ํ์ง ์๊ฑฐ๋ ์๋ ค์ง ๋ฐฐ๊ฒฝ์ ๋ํด ํ ์คํธ / ์ค๊ณ๋์์ผ๋ฉฐ ์ด๋ฌํ ๋งค๊ฐ ๋ณ์ ๋ณ๊ฒฝ ์ฌํญ ์ค ํ๋๊ฐ ๋ค๋ฅด๊ฒ ๋ณด์ ๋๋ค.
// From https://github.com/procedural/gpulib/blob/master/gpulib_imgui.h
struct ImVec3 { float x, y, z; ImVec3(float _x = 0.0f, float _y = 0.0f, float _z = 0.0f) { x = _x; y = _y; z = _z; } };
void imgui_easy_theming(ImVec3 color_for_text, ImVec3 color_for_head, ImVec3 color_for_area, ImVec3 color_for_body, ImVec3 color_for_pops)
{
ImGuiStyle& style = ImGui::GetStyle();
style.Colors[ImGuiCol_Text] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 1.00f );
style.Colors[ImGuiCol_TextDisabled] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 0.58f );
style.Colors[ImGuiCol_WindowBg] = ImVec4( color_for_body.x, color_for_body.y, color_for_body.z, 0.95f );
style.Colors[ImGuiCol_ChildWindowBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 0.58f );
style.Colors[ImGuiCol_Border] = ImVec4( color_for_body.x, color_for_body.y, color_for_body.z, 0.00f );
style.Colors[ImGuiCol_BorderShadow] = ImVec4( color_for_body.x, color_for_body.y, color_for_body.z, 0.00f );
style.Colors[ImGuiCol_FrameBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 1.00f );
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.78f );
style.Colors[ImGuiCol_FrameBgActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_TitleBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 1.00f );
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 0.75f );
style.Colors[ImGuiCol_TitleBgActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_MenuBarBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 0.47f );
style.Colors[ImGuiCol_ScrollbarBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 1.00f );
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.21f );
style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.78f );
style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_ComboBg] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 1.00f );
style.Colors[ImGuiCol_CheckMark] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.80f );
style.Colors[ImGuiCol_SliderGrab] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.50f );
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_Button] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.50f );
style.Colors[ImGuiCol_ButtonHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.86f );
style.Colors[ImGuiCol_ButtonActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_Header] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.76f );
style.Colors[ImGuiCol_HeaderHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.86f );
style.Colors[ImGuiCol_HeaderActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_Column] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.32f );
style.Colors[ImGuiCol_ColumnHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.78f );
style.Colors[ImGuiCol_ColumnActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_ResizeGrip] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.15f );
style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.78f );
style.Colors[ImGuiCol_ResizeGripActive] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_CloseButton] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 0.16f );
style.Colors[ImGuiCol_CloseButtonHovered] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 0.39f );
style.Colors[ImGuiCol_CloseButtonActive] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 1.00f );
style.Colors[ImGuiCol_PlotLines] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 0.63f );
style.Colors[ImGuiCol_PlotLinesHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_PlotHistogram] = ImVec4( color_for_text.x, color_for_text.y, color_for_text.z, 0.63f );
style.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 1.00f );
style.Colors[ImGuiCol_TextSelectedBg] = ImVec4( color_for_head.x, color_for_head.y, color_for_head.z, 0.43f );
style.Colors[ImGuiCol_PopupBg] = ImVec4( color_for_pops.x, color_for_pops.y, color_for_pops.z, 0.92f );
style.Colors[ImGuiCol_ModalWindowDarkening] = ImVec4( color_for_area.x, color_for_area.y, color_for_area.z, 0.73f );
}
void ImGuiEx::SetupImGuiStyle2()
{
static ImVec3 color_for_text = ImVec3(236.f / 255.f, 240.f / 255.f, 241.f / 255.f);
static ImVec3 color_for_head = ImVec3(41.f / 255.f, 128.f / 255.f, 185.f / 255.f);
static ImVec3 color_for_area = ImVec3(57.f / 255.f, 79.f / 255.f, 105.f / 255.f);
static ImVec3 color_for_body = ImVec3(44.f / 255.f, 62.f / 255.f, 80.f / 255.f);
static ImVec3 color_for_pops = ImVec3(33.f / 255.f, 46.f / 255.f, 60.f / 255.f);
imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops);
}
์ด์ ์ํํธ์จ์ด์ ๋ค๋ฅธ ์ํํธ์จ์ด (์ต์ ๋ฒ์ ์ด ์๋ ์ ์์)
@Pagghiu ํ ๋ง ๊ธฐ๋ฐ
// Setup style
ImGuiStyle& style = ImGui::GetStyle();
style.Colors[ImGuiCol_Text] = ImVec4(0.31f, 0.25f, 0.24f, 1.00f);
style.Colors[ImGuiCol_WindowBg] = ImVec4(0.94f, 0.94f, 0.94f, 1.00f);
style.Colors[ImGuiCol_MenuBarBg] = ImVec4(0.74f, 0.74f, 0.94f, 1.00f);
style.Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.68f, 0.68f, 0.68f, 0.00f);
style.Colors[ImGuiCol_Border] = ImVec4(0.50f, 0.50f, 0.50f, 0.60f);
style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_FrameBg] = ImVec4(0.62f, 0.70f, 0.72f, 0.56f);
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.95f, 0.33f, 0.14f, 0.47f);
style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.97f, 0.31f, 0.13f, 0.81f);
style.Colors[ImGuiCol_TitleBg] = ImVec4(0.42f, 0.75f, 1.00f, 0.53f);
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.65f, 0.80f, 0.20f);
style.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.40f, 0.62f, 0.80f, 0.15f);
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.39f, 0.64f, 0.80f, 0.30f);
style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.28f, 0.67f, 0.80f, 0.59f);
style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.25f, 0.48f, 0.53f, 0.67f);
style.Colors[ImGuiCol_ComboBg] = ImVec4(0.89f, 0.98f, 1.00f, 0.99f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(0.48f, 0.47f, 0.47f, 0.71f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.31f, 0.47f, 0.99f, 1.00f);
style.Colors[ImGuiCol_Button] = ImVec4(1.00f, 0.79f, 0.18f, 0.78f);
style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.42f, 0.82f, 1.00f, 0.81f);
style.Colors[ImGuiCol_ButtonActive] = ImVec4(0.72f, 1.00f, 1.00f, 0.86f);
style.Colors[ImGuiCol_Header] = ImVec4(0.65f, 0.78f, 0.84f, 0.80f);
style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.75f, 0.88f, 0.94f, 0.80f);
style.Colors[ImGuiCol_HeaderActive] = ImVec4(0.55f, 0.68f, 0.74f, 0.80f);//ImVec4(0.46f, 0.84f, 0.90f, 1.00f);
style.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.60f, 0.60f, 0.80f, 0.30f);
style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f);
style.Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f);
style.Colors[ImGuiCol_CloseButton] = ImVec4(0.41f, 0.75f, 0.98f, 0.50f);
style.Colors[ImGuiCol_CloseButtonHovered] = ImVec4(1.00f, 0.47f, 0.41f, 0.60f);
style.Colors[ImGuiCol_CloseButtonActive] = ImVec4(1.00f, 0.16f, 0.00f, 1.00f);
style.Colors[ImGuiCol_TextSelectedBg] = ImVec4(1.00f, 0.99f, 0.54f, 0.43f);
style.Colors[ImGuiCol_TooltipBg] = ImVec4(0.82f, 0.92f, 1.00f, 0.90f);
style.Alpha = 1.0f;
style.WindowFillAlphaDefault = 1.0f;
style.FrameRounding = 4;
style.IndentSpacing = 12.0f;
์์ Doug์ ํ ๋ง์ ๋ํ ์ฝ๊ฐ์ ์กฐ์
// Dark
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.06f, 0.06f, 0.06f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(1.00f, 1.00f, 1.00f, 0.19f);
colors[ImGuiCol_ChildWindowBg] = ImVec4(1.00f, 1.00f, 1.00f, 0.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.94f);
colors[ImGuiCol_FrameBg] = ImVec4(0.16f, 0.29f, 0.48f, 0.54f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
colors[ImGuiCol_TitleBg] = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.18f, 0.18f, 0.18f, 1.00f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.14f, 0.14f, 0.14f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
colors[ImGuiCol_ComboBg] = ImVec4(0.14f, 0.14f, 0.14f, 0.99f);
colors[ImGuiCol_CheckMark] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.24f, 0.52f, 0.88f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.06f, 0.53f, 0.98f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.26f, 0.59f, 0.98f, 0.31f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_Separator] = colors[ImGuiCol_Border];
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.78f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
colors[ImGuiCol_CloseButton] = ImVec4(0.41f, 0.41f, 0.41f, 0.50f);
colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
colors[ImGuiCol_CloseButtonActive] = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
#ifdef IMGUI_HAS_NAV
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.12f);
#endif
์ต๊ทผ ์คํ์ผ๋ง์ด๋ณ๋ก ์ง์ ๋์ง ๋ชปํด ์ฃ์กํฉ๋๋ค. 11 ์๋ถํฐ ์งํํ๊ฒ ์ต๋๋ค.
๋ช ๊ฐ์ง ๋ณ๊ฒฝํ์ต๋๋ค.
StyleColorsClassic()
, StyleColorsDark()
, StyleColorsLight()
.๊ธ๊ผด์๋ก๋ ํ ์ ์์์ ์ ์ํ๊ธฐ ์ํด๋ก๋ ๋ ๊ธ๊ผด ์ค์์ ๊ธ๊ผด ์ ํ ์ฝค๋ณด๋ฅผ ๊ณง ์ถ๊ฐ ํ ๊ฒ์ ๋๋ค. (ํ์ฌ ๋ด๋ถ BeginCombo API์ ์ธ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์๋ก ๋ฌด์์ํด์ผํ๋์ง ์์ ๋ด ์๋ง์.)
ImGuiWindowFlags_ShowBorders
์ฐฝ ํ๋๊ทธ๊ฐ ์์ ํ ์ข
๋ฃ๋์์ต๋๋ค.
ํ
๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ํต์ ๋์ด์ค๋๋ค.
๋์ ์๋ก์ด ๊ฐ style.WindowBorderSize
, style.FrameBorderSize
, style.PopupBorderSize
๋ฑ์ด ์์ต๋๋ค. ๊ฐ์ 0.0 ๋ฐ 1.0์ ์๋ฏธํ์ง๋ง ์ฑ๋ฅ๊ณผ ์ค๋ณต๋๋ ์ด์ ๋ฅผ ์ ์ธํ๊ณ ์ค์ ๋ก ๋ ๋๊ป๊ฒ ํ ์ ์์ต๋๋ค. ํ
๋๋ฆฌ (์ํ ์ค์ ์ ๋ฐ๋ผ ์ข์ง ์์ ์ ์์).
ํ
๋๋ฆฌ๋ ํ์ฌ ๋ชจ๋ ๊ฐ์ ์์์
๋๋ค. ์คํ์ผ๋ง ์์คํ
์ ์ฌ ์์
ํ๋ฉด์ ๋ ๋ง์ / ๋ ๋์ ์ต์
์ ์๊ฐ ํ ๊ฒ์
๋๋ค.ํ์ง๋ง ์๋ง ๋ช ๋ฌ ๋์์ ์๋ ๊ฒ์
๋๋ค (# 1223์ ์์ด๋์ด ์ฐธ์กฐ).
์ด์ ์คํ์ผ ํธ์ง๊ธฐ๋ a) ์ธ ๊ฐ์ง ์คํก ํ
๋ง ์ค์์ ์ ํํ ์ ์์ต๋๋ค .b) ์ ์ฅ / ๋๋๋ฆฌ๊ธฐ๋ฅผ ์กฐ๊ธ ๋ ์ ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์ ์ง์ ํ
๋ง์์ ์กฐ์ ํ ๋ ๋๋๋ฆฌ๊ธฐ ๋ฒํผ์ ๋ณผ ์ ์์ต๋๋ค (ํญ์ ๊ธฐ๋ณธ ํ
๋ง์ ๋น๊ตํ๋ ๋์ ), c) FrameRounding
๋ฐ ๋ค๋ฅธ ํ
๋๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ถ๋ ๋์ ํ์ธ๋์ผ๋ก ํ์ํ๋ "๊ฐ๋จํ ์ค์ "์ ๋งจ ์์ ํ์ํฉ๋๋ค.
(ํํฐ์ ๋ฆ์์ง๋ง ...)
๋ค์์ Microsoft ๋์์ธ ์ง์นจ (https://design.microsoft.com/)์ ๋ชจ๋ฐฉ ํ ๋ด ํ ๋ง์ ๋๋ค.
ImGuiIO& io = ImGui::GetIO();
io.Fonts->Clear();
ImFont* font = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\segoeui.ttf", 18.0f);
if (font != NULL) {
io.FontDefault = font;
} else {
io.Fonts->AddFontDefault();
}
io.Fonts->Build();
ImGuiStyle* style = &ImGui::GetStyle();
int hspacing = 8;
int vspacing = 6;
style->DisplaySafeAreaPadding = ImVec2(0, 0);
style->WindowPadding = ImVec2(hspacing/2, vspacing);
style->FramePadding = ImVec2(hspacing, vspacing);
style->ItemSpacing = ImVec2(hspacing, vspacing);
style->ItemInnerSpacing = ImVec2(hspacing, vspacing);
style->IndentSpacing = 20.0f;
style->WindowRounding = 0.0f;
style->FrameRounding = 0.0f;
style->WindowBorderSize = 0.0f;
style->FrameBorderSize = 1.0f;
style->PopupBorderSize = 1.0f;
style->ScrollbarSize = 20.0f;
style->ScrollbarRounding = 0.0f;
style->GrabMinSize = 5.0f;
style->GrabRounding = 0.0f;
ImVec4 white = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
ImVec4 transparent = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
ImVec4 dark = ImVec4(0.00f, 0.00f, 0.00f, 0.20f);
ImVec4 darker = ImVec4(0.00f, 0.00f, 0.00f, 0.50f);
ImVec4 background = ImVec4(0.95f, 0.95f, 0.95f, 1.00f);
ImVec4 text = ImVec4(0.10f, 0.10f, 0.10f, 1.00f);
ImVec4 border = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
ImVec4 grab = ImVec4(0.69f, 0.69f, 0.69f, 1.00f);
ImVec4 header = ImVec4(0.86f, 0.86f, 0.86f, 1.00f);
ImVec4 active = ImVec4(0.00f, 0.47f, 0.84f, 1.00f);
ImVec4 hover = ImVec4(0.00f, 0.47f, 0.84f, 0.20f);
style->Colors[ImGuiCol_Text] = text;
style->Colors[ImGuiCol_WindowBg] = background;
style->Colors[ImGuiCol_ChildBg] = background;
style->Colors[ImGuiCol_PopupBg] = white;
style->Colors[ImGuiCol_Border] = border;
style->Colors[ImGuiCol_BorderShadow] = transparent;
style->Colors[ImGuiCol_Button] = header;
style->Colors[ImGuiCol_ButtonHovered] = hover;
style->Colors[ImGuiCol_ButtonActive] = active;
style->Colors[ImGuiCol_FrameBg] = white;
style->Colors[ImGuiCol_FrameBgHovered] = hover;
style->Colors[ImGuiCol_FrameBgActive] = active;
style->Colors[ImGuiCol_MenuBarBg] = header;
style->Colors[ImGuiCol_Header] = header;
style->Colors[ImGuiCol_HeaderHovered] = hover;
style->Colors[ImGuiCol_HeaderActive] = active;
style->Colors[ImGuiCol_CheckMark] = text;
style->Colors[ImGuiCol_SliderGrab] = grab;
style->Colors[ImGuiCol_SliderGrabActive] = darker;
style->Colors[ImGuiCol_CloseButton] = transparent;
style->Colors[ImGuiCol_CloseButtonHovered] = transparent;
style->Colors[ImGuiCol_CloseButtonActive] = transparent;
style->Colors[ImGuiCol_ScrollbarBg] = header;
style->Colors[ImGuiCol_ScrollbarGrab] = grab;
style->Colors[ImGuiCol_ScrollbarGrabHovered] = dark;
style->Colors[ImGuiCol_ScrollbarGrabActive] = darker;
๋ค์์ Microsoft ๋์์ธ ์ง์นจ (https://design.microsoft.com/)์ ๋ชจ๋ฐฉ ํ ๋ด ํ ๋ง์ ๋๋ค.
๊ฐ์ฌ! ๋ํ ํด๋น ๋งํฌ์ ์์ ๋ # 438์ ์ ์ฉํฉ๋๋ค.
์คํ์ผ ์์คํ ์์ ๋๋ฝ ๋ ๊ฒ ์ค์์ ์ด๋ฌํ ์คํ์ผ์ ๊ฐ์ ๋ ํ ๋๋ฆฌ (์ : # 447 ์ฐธ์กฐ)์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค. ๊ทธ๊ฒ๊ณผ ๋ช ๊ฐ์ง ์ถ๊ฐ ์์ / ์คํ์ผ ์ ์๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ์ผ์ด Microsoft ์ ํ์ผ๋ก ๋ ์ ์ ๋ฌ๋ฉ๋๋ค.
๊ธ๊ผด์ด ๋๋ฌด ๋ฎ์ต๋๋ค. ํ์ฌ ์ผ๋ถ ๊ธ๊ผด์ ์ํฅ์์ฃผ๋ ์์ง ์ ๋ ฌ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ค์์ ์ํ ํ ์ ์์ต๋๋ค.
ImFont* font = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\segoeui.ttf", 18.0f);
font->DisplayOffset.y -= 1;
๊ธ๊ผด์ด ๋๋ฌด ๋ฎ์ต๋๋ค. ํ์ฌ ์ผ๋ถ ๊ธ๊ผด์ ์ํฅ์์ฃผ๋ ์์ง ์ ๋ ฌ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ค์์ ์ํ ํ ์ ์์ต๋๋ค.
๊ทธ๋, ์ด์ ๋ ์ข์ ๋ณด์ธ๋ค.
๊ฐ์ฌ! ๋ํ ํด๋น ๋งํฌ์ ์์ ๋ # 438์ ์ ์ฉํฉ๋๋ค.
์ง์ ๋งํฌ๋ฅผ ๋ณด๋ ค๋ฉด https://docs.microsoft.com/en-us/windows/uwp/design/basics/commanding-basics๋ฅผ ์๋ํ์ญ์์ค.
์ฐธ๊ณ ๋ก ๋ฉฐ์น ์ ์ ์ ๋ช ๋์ ์ ๋์ ๋ซ๊ธฐ ๋ฒํผ์ ์ญ์๊ฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ต๋๋ค.
๊ฐ์กฐ ํ์ ์ฑ์ฐ๊ธฐ (๋ฅ๊ทผ ์ฐฝ์ ์์ฉํ๊ธฐ์ํ ์ํ)๋ ๋ฒํผ ๋ฐฐ๊ฒฝ์์ ์ฌ์ฉํ๋ฏ๋ก ImGuiCol_CloseButton
, ImGuiCol_CloseButtonActive
, ImGuiCol_CloseButtonHovered
,
๋๋ "usernameiwantedwasalreadytaken"์ด ๋ง์์ ๋ค์์ต๋๋ค (์ฌ์ฉ์ ์ด๋ฆ์ ์ฐ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค :-))
๊ทธ๋์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์๋ ํ ๋ง๋ฅผ ์ข์ํ์ง ์์ ๊ฒ์ผ๋ก ์์๋๊ธฐ ๋๋ฌธ์ ์ฑ์ด ํฌ๋ก์ค ํ๋ซํผ ๋ฐ ๋ค์ดํฐ๋ธ๊ฐ๋๊ธฐ๋ฅผ ์ํ๋ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋ ๊ฐ ํ๋ซํผ (win, Mac, android)์ ๋ํด ์ด๋ก๊ณ ๋ฐ์ ํ ๋ง๋ฅผ ๊ฐ๋ ๊ฒ์ด ๊ฐ์ฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ OS ์ฐฝ์ ๋ง์ง โโ์์ต๋๋ค.
๋ ธ๋ ฅํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. imgui๋ ํ๋ฅญํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
@ocornut , ์ ์์ด ์์ต๋๋ค.
ImGui ํ ๋ง๋ ๋์คํฌ์์ ์ฝ์ ์ ์์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐํ / ํ ๋ง ์๋์ ํฌํจ ๋ ๋ช ๊ฐ์ง ์ ๊ณต๋ ํ ๋ง๊ฐ ์์ด์ผํฉ๋๋ค. ์ด๊ฒ์ด ์ข์ ์์ด๋์ด๋ผ๊ณ ์๊ฐํ๋ ์ด์ ๋ ํ ๋ง๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ ์ ์๋ค๋ ๊ฒ์ ์ฌ๋๋ค์ด ์๋ก์ด ํ ๋ง๋ฅผ ๋ง๋ค๊ณ ๋ฏธ์ธ ์กฐ์ ํ๋ ๊ฒ์ ๋ ์ข์ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ฌํ ์ ์์์ง์ง ํ์๊ฒ ์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฃผ ํ๋ฐ์ ํ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. :)
@forrestthewoods IMHO ์คํ์ผ ์์คํ ์ด ์ ๋ง ์์์ ์ด๊ณ ์ฌํด ๋ง์ด ๋ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ง๊ธ์ ์ ๋ง ๋ฐ๋์งํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ปดํ์ผ ํ์ ์ด๊ฑฐ ํ์ด ๋ณ๊ฒฝ / ์ ๊ฑฐ๋๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฐ๋์ ์ถ์ ํ ์์๋ ์์น์ ์ธ๋ชจ ์๊ฒ ๋ ํ์์ผ๋ก ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ๋ฐ์ดํฐ ์ง์์ฑ์ ๋ ๋ค๋ฅธ ์ฑ ์ ๊ณ์ธต์ด๋ฉฐ ํ์ฌ ํ๋ก๊ทธ๋๋จธ์ชฝ์ ๋จธ๋ฌผ๊ธฐ ์ํด์ด๋ฅผ ์ํํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ๋ก์๋ ์ฌ๋๋ค์ด imgui๋ฅผ ์คํจ ๊ฐ๋ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ทจ๊ธํ๋๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค. ํนํ ์คํจ์ด ์ผ๋ง๋ ์์์ ์ด๊ณ ์ข์์ง๋ฅผ ๊ณ ๋ คํ๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค. imgui๊ฐ ๋ ์ฑ์ํ๊ณ ์์ ์ ์ด๋ฉฐ ์คํ์ผ๋ง ์์คํ ์ด ์์ ฏ ์ ํ๋ณ ์ฌ์ ์, ๊ทธ๋ผ๋์ธํธ๋ฅผ ํ์ฉํ๊ณ SRGB์ ์ ํฉํ ๋ธ๋ ๋ฉ ๋ฑ์ผ๋ก ์๋ํ๋ ์คํ์ผ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ต๋๋ค.๋ณด๋ค ์์ ์ ์ธ ํ์์ ๋์์ธ ํ ์ ์์ต๋๋ค.
(ํ์ฌ ์ํํ๋ ค๋ ์์ ์ ๋ํด ์์ญ ์ค์ ์ฝ๋๋ก ์๋ฃจ์ ์ ๋กค๋งํฉ๋๋ค.)
_some_ point์ ๋ ๋ฆฝํ ์คํ์ผ / ํ ๋ง ํ์ผ ํ์์ด ์์ด์ผํ๋ค๋ ํฉ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ if๊ฐ ์๋๋ผ ์ธ์ ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋งค์ฐ ๋ง์กฑํ๊ณ ์ ์งํ๊ฒ ๊ทธ๊ฒ์ด ์ด๋ ์์ ์์ ์ค๋ ๊ฒ์ ์๋ฉด์ ์ฝํ ์ธ ๋ฅผ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌํด ๋ค๊ฐ์ค๋ ์ฃผ์ ์คํ์ผ ๋ณ๊ฒฝ์ ๊ธฐ๋ค๋ ค์ผ ํ ๊ณต์ ํ ๋ ผ์์ ๋๋ค! ์๊ฐ์๋ด์ด ํ์ผ ํ์์ ๋ํด ๋ ผ์ํ๋ ๊ฒ์ด ๋ ์ข์ ์ด์ ์ ๋๋ค.
์ ์ ์๊ฐ์๋ด์ด์ด ์์ ์ ๋ ๋นจ๋ฆฌ ์ํํด์ผํ๋ ์ด์ ์ ๋ํด ๋ช ๊ฐ์ง ์ด์ ๋ฅผ ์ ์ํ๊ณ ์ถ์ต๋๋ค. ์ง๊ธ์ ์๋์ง๋ง ๋ ๋นจ๋ฆฌ.
์ฒซ์งธ, ์ ์์ ์ฅ๋ คํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ ๋ช ์ ์ ์ผ๋ก ์ํ์ง ์์ต๋๋ค. ์ดํดํฉ๋๋ค. ์ด๊ฒ์ ๋ญ๊ณ ๊ธฐ์ ๋ฌ๊ฑ ๋ฌธ์ ์ ๋๋ค. ์คํ์ผ ์์คํ ์ด ์ค๋น๋๊ธฐ ์ ์ ํ์ผ ํ์์ ์ฑํ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์คํ์ผ ์์คํ ์ ์ฌ์ฉ๋๊ธฐ ์ ๊น์ง๋ ์ค๋น ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ณต์ ํ๊ธฐ๊ฐ ๋ ์ฌ์ ์ง ๋๊น์ง ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ ๊ณผ์ ์ฒซ ์ ์ด์์ ์ด์๋จ๋ ์ ํฌ ๊ณํ์ ์์ต๋๋ค. ์ด๋ค ํ์ผ ํ์๋. :)
๋์งธ, ์คํ์ผ ํ์์ ๋ํ ๋ณ๊ฒฝ / ํ์ฅ์ ํญ์ ๊นจ์ง ๊ฒ์ ๋๋ค. ์ด๊ฑฐ ํ ์ ๊ฑฐ๋ก ์ธํด ์ปดํ์ผ ํ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋๋ ๋ฌด์ธ๊ฐ๊ฐ ๊ธฐ๋ณธ ์คํ์ผ์ด๊ธฐ ๋๋ฌธ์ ๋ฐํ์์ "์ค๋จ"๋ฉ๋๋ค. ์ค์ ๋์ง ์์ ์ ์คํ์ผ ๊ฐ ๋๋ ๋ณ๊ฒฝ๋ ์ด์ ์คํ์ผ ๊ฐ ๋๋ฌธ์ ๋๋ค. ์คํ์ผ๋ง ์์คํ ์ด ์๋ฌด๋ฆฌ ์ฑ์ํด๋ ์ด๋ฌํ ํด์์ ๋ฐ์ํ ๊ฒ์ ๋๋ค.
์ ์งธ, ์คํ์ผ ์์คํ ์ ์์์ ์ด์ง๋ง ์ข์ ์์ ํ ๋ง๊ฐ ํฐ ๊ฐ์ ์ ๊ฐ์ ธ์ฌ ์์์๋งํผ ์ถฉ๋ถํ ๊ฐ๋ ฅํฉ๋๋ค. ํ ๋ง๋ฅผ ๊ณต์ ํ๊ธฐ๊ฐ ๋ ์ฌ์ฐ๋ฉด ์ด๊ฒ์ ๋ํด ๋ ๋ง์ ๋ฐ๋ณต์ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ด ์์ ๊ตฌํ์ ๊ฐ๋จํ ํค / ๊ฐ ํ์ผ ํ์์ ๋๋ค. ini ํ์ผ ํ์์์ ํ์ ๋ ๋ฐฉ์์ผ๋ก sscanf์์ ์๋ํฉ๋๋ค. ์์ฃผ ๊ฐ๋จํฉ๋๋ค. ์คํ์ผ ํ์์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ํ์ฅ๋๋ฉด ์ต์ข ๊ฒฐ๊ณผ๋ ๊ธฐ๋ณธ ์์ฑ ๊ฐ์ ๊ฐ๋ ์คํ์ผ ๊ฐ์ด๋ฉ๋๋ค.
์คํ์ผ ์์คํ ์ด ์ฒ์์ผ๋ก ๊ฐ์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ํ๋ช ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๊ณต์ ๊ฐ๋ฅํ ํ ๋ง๋ฅผ ์กฐ๋ง๊ฐ ํ์ฑํํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ ๋ง๋ฅผ ํ์ฑํํ๋ฉด ์คํ์ผ ์์คํ ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
<3
IntelliJ์ Darcula ํ ๋ง์ ๋ํ ์๋ชป๋ ์๋ฎฌ๋ ์ด์ :
auto *style = (dst ? dst : &ImGui::GetStyle());
style->WindowRounding = 5.3f;
style->GrabRounding = style->FrameRounding = 2.3f;
style->ScrollbarRounding = 5.0f;
style->FrameBorderSize = 1.0f;
style->ItemSpacing.y = 6.5f;
style->Colors[ImGuiCol_Text] = {0.73333335f, 0.73333335f, 0.73333335f, 1.00f};
style->Colors[ImGuiCol_TextDisabled] = {0.34509805f, 0.34509805f, 0.34509805f, 1.00f};
style->Colors[ImGuiCol_WindowBg] = {0.23529413f, 0.24705884f, 0.25490198f, 0.94f};
style->Colors[ImGuiCol_ChildBg] = {0.23529413f, 0.24705884f, 0.25490198f, 0.00f};
style->Colors[ImGuiCol_PopupBg] = {0.23529413f, 0.24705884f, 0.25490198f, 0.94f};
style->Colors[ImGuiCol_Border] = {0.33333334f, 0.33333334f, 0.33333334f, 0.50f};
style->Colors[ImGuiCol_BorderShadow] = {0.15686275f, 0.15686275f, 0.15686275f, 0.00f};
style->Colors[ImGuiCol_FrameBg] = {0.16862746f, 0.16862746f, 0.16862746f, 0.54f};
style->Colors[ImGuiCol_FrameBgHovered] = {0.453125f, 0.67578125f, 0.99609375f, 0.67f};
style->Colors[ImGuiCol_FrameBgActive] = {0.47058827f, 0.47058827f, 0.47058827f, 0.67f};
style->Colors[ImGuiCol_TitleBg] = {0.04f, 0.04f, 0.04f, 1.00f};
style->Colors[ImGuiCol_TitleBgCollapsed] = {0.16f, 0.29f, 0.48f, 1.00f};
style->Colors[ImGuiCol_TitleBgActive] = {0.00f, 0.00f, 0.00f, 0.51f};
style->Colors[ImGuiCol_MenuBarBg] = {0.27058825f, 0.28627452f, 0.2901961f, 0.80f};
style->Colors[ImGuiCol_ScrollbarBg] = {0.27058825f, 0.28627452f, 0.2901961f, 0.60f};
style->Colors[ImGuiCol_ScrollbarGrab] = {0.21960786f, 0.30980393f, 0.41960788f, 0.51f};
style->Colors[ImGuiCol_ScrollbarGrabHovered] = {0.21960786f, 0.30980393f, 0.41960788f, 1.00f};
style->Colors[ImGuiCol_ScrollbarGrabActive] = {0.13725491f, 0.19215688f, 0.2627451f, 0.91f};
// style->Colors[ImGuiCol_ComboBg] = {0.1f, 0.1f, 0.1f, 0.99f};
style->Colors[ImGuiCol_CheckMark] = {0.90f, 0.90f, 0.90f, 0.83f};
style->Colors[ImGuiCol_SliderGrab] = {0.70f, 0.70f, 0.70f, 0.62f};
style->Colors[ImGuiCol_SliderGrabActive] = {0.30f, 0.30f, 0.30f, 0.84f};
style->Colors[ImGuiCol_Button] = {0.33333334f, 0.3529412f, 0.36078432f, 0.49f};
style->Colors[ImGuiCol_ButtonHovered] = {0.21960786f, 0.30980393f, 0.41960788f, 1.00f};
style->Colors[ImGuiCol_ButtonActive] = {0.13725491f, 0.19215688f, 0.2627451f, 1.00f};
style->Colors[ImGuiCol_Header] = {0.33333334f, 0.3529412f, 0.36078432f, 0.53f};
style->Colors[ImGuiCol_HeaderHovered] = {0.453125f, 0.67578125f, 0.99609375f, 0.67f};
style->Colors[ImGuiCol_HeaderActive] = {0.47058827f, 0.47058827f, 0.47058827f, 0.67f};
style->Colors[ImGuiCol_Separator] = {0.31640625f, 0.31640625f, 0.31640625f, 1.00f};
style->Colors[ImGuiCol_SeparatorHovered] = {0.31640625f, 0.31640625f, 0.31640625f, 1.00f};
style->Colors[ImGuiCol_SeparatorActive] = {0.31640625f, 0.31640625f, 0.31640625f, 1.00f};
style->Colors[ImGuiCol_ResizeGrip] = {1.00f, 1.00f, 1.00f, 0.85f};
style->Colors[ImGuiCol_ResizeGripHovered] = {1.00f, 1.00f, 1.00f, 0.60f};
style->Colors[ImGuiCol_ResizeGripActive] = {1.00f, 1.00f, 1.00f, 0.90f};
style->Colors[ImGuiCol_PlotLines] = {0.61f, 0.61f, 0.61f, 1.00f};
style->Colors[ImGuiCol_PlotLinesHovered] = {1.00f, 0.43f, 0.35f, 1.00f};
style->Colors[ImGuiCol_PlotHistogram] = {0.90f, 0.70f, 0.00f, 1.00f};
style->Colors[ImGuiCol_PlotHistogramHovered] = {1.00f, 0.60f, 0.00f, 1.00f};
style->Colors[ImGuiCol_TextSelectedBg] = {0.18431373f, 0.39607847f, 0.79215693f, 0.90f};
๋ฟก๋ฟก
IntelliJ์ Darcula ํ ๋ง์ ๋ํ ์๋ชป๋ ์๋ฎฌ๋ ์ด์ :
์คํฌ๋ฆฐ ์ท?
๋ฟก๋ฟก
์คํฌ๋ฆฐ ์ท?
๊ฐ๋ฅํ ํ ํ
๋ง ์ ์์ํ๊ณ ์ถ์๋ฐ ๊ทธ๋ ์ด / ๋คํฌ ํ
๋ง์
๋๋ค.
์ ๋ UE4์ ๋น์ทํ ํ
๋ง๋ฅผ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ด ์ ๊ฐ ์๊ฐ ํด๋ธ ๊ฒ์
๋๋ค.
์ด์ ๋ํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.06f, 0.06f, 0.06f, 0.94f);
colors[ImGuiCol_ChildBg] = ImVec4(1.00f, 1.00f, 1.00f, 0.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(0.43f, 0.43f, 0.50f, 0.50f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_FrameBg] = ImVec4(0.20f, 0.21f, 0.22f, 0.54f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.40f, 0.40f, 0.40f, 0.40f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.18f, 0.18f, 0.18f, 0.67f);
colors[ImGuiCol_TitleBg] = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.29f, 0.29f, 0.29f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.14f, 0.14f, 0.14f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.94f, 0.94f, 0.94f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.86f, 0.86f, 0.86f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.44f, 0.44f, 0.44f, 0.40f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.46f, 0.47f, 0.48f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.42f, 0.42f, 0.42f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.70f, 0.70f, 0.70f, 0.31f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.70f, 0.70f, 0.70f, 0.80f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.48f, 0.50f, 0.52f, 1.00f);
colors[ImGuiCol_Separator] = ImVec4(0.43f, 0.43f, 0.50f, 0.50f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.72f, 0.72f, 0.72f, 0.78f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.91f, 0.91f, 0.91f, 0.25f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.81f, 0.81f, 0.81f, 0.67f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.46f, 0.46f, 0.46f, 0.95f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.73f, 0.60f, 0.15f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.87f, 0.87f, 0.87f, 0.35f);
colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ์ข์ํ๊ณ ๊ทธ๊ฒ์ ImGui์ ํตํฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฒด๋ฆฌ ํ ๋ง : D
void CherryTheme() {
// cherry colors, 3 intensities
#define HI(v) ImVec4(0.502f, 0.075f, 0.256f, v)
#define MED(v) ImVec4(0.455f, 0.198f, 0.301f, v)
#define LOW(v) ImVec4(0.232f, 0.201f, 0.271f, v)
// backgrounds (<strong i="8">@todo</strong>: complete with BG_MED, BG_LOW)
#define BG(v) ImVec4(0.200f, 0.220f, 0.270f, v)
// text
#define TEXT(v) ImVec4(0.860f, 0.930f, 0.890f, v)
auto &style = ImGui::GetStyle();
style.Colors[ImGuiCol_Text] = TEXT(0.78f);
style.Colors[ImGuiCol_TextDisabled] = TEXT(0.28f);
style.Colors[ImGuiCol_WindowBg] = ImVec4(0.13f, 0.14f, 0.17f, 1.00f);
style.Colors[ImGuiCol_ChildWindowBg] = BG( 0.58f);
style.Colors[ImGuiCol_PopupBg] = BG( 0.9f);
style.Colors[ImGuiCol_Border] = ImVec4(0.31f, 0.31f, 1.00f, 0.00f);
style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_FrameBg] = BG( 1.00f);
style.Colors[ImGuiCol_FrameBgHovered] = MED( 0.78f);
style.Colors[ImGuiCol_FrameBgActive] = MED( 1.00f);
style.Colors[ImGuiCol_TitleBg] = LOW( 1.00f);
style.Colors[ImGuiCol_TitleBgActive] = HI( 1.00f);
style.Colors[ImGuiCol_TitleBgCollapsed] = BG( 0.75f);
style.Colors[ImGuiCol_MenuBarBg] = BG( 0.47f);
style.Colors[ImGuiCol_ScrollbarBg] = BG( 1.00f);
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.09f, 0.15f, 0.16f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabHovered] = MED( 0.78f);
style.Colors[ImGuiCol_ScrollbarGrabActive] = MED( 1.00f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(0.71f, 0.22f, 0.27f, 1.00f);
style.Colors[ImGuiCol_SliderGrab] = ImVec4(0.47f, 0.77f, 0.83f, 0.14f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.71f, 0.22f, 0.27f, 1.00f);
style.Colors[ImGuiCol_Button] = ImVec4(0.47f, 0.77f, 0.83f, 0.14f);
style.Colors[ImGuiCol_ButtonHovered] = MED( 0.86f);
style.Colors[ImGuiCol_ButtonActive] = MED( 1.00f);
style.Colors[ImGuiCol_Header] = MED( 0.76f);
style.Colors[ImGuiCol_HeaderHovered] = MED( 0.86f);
style.Colors[ImGuiCol_HeaderActive] = HI( 1.00f);
style.Colors[ImGuiCol_Column] = ImVec4(0.14f, 0.16f, 0.19f, 1.00f);
style.Colors[ImGuiCol_ColumnHovered] = MED( 0.78f);
style.Colors[ImGuiCol_ColumnActive] = MED( 1.00f);
style.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.47f, 0.77f, 0.83f, 0.04f);
style.Colors[ImGuiCol_ResizeGripHovered] = MED( 0.78f);
style.Colors[ImGuiCol_ResizeGripActive] = MED( 1.00f);
style.Colors[ImGuiCol_PlotLines] = TEXT(0.63f);
style.Colors[ImGuiCol_PlotLinesHovered] = MED( 1.00f);
style.Colors[ImGuiCol_PlotHistogram] = TEXT(0.63f);
style.Colors[ImGuiCol_PlotHistogramHovered] = MED( 1.00f);
style.Colors[ImGuiCol_TextSelectedBg] = MED( 0.43f);
// [...]
style.Colors[ImGuiCol_ModalWindowDarkening] = BG( 0.73f);
style.WindowPadding = ImVec2(6, 4);
style.WindowRounding = 0.0f;
style.FramePadding = ImVec2(5, 2);
style.FrameRounding = 3.0f;
style.ItemSpacing = ImVec2(7, 1);
style.ItemInnerSpacing = ImVec2(1, 1);
style.TouchExtraPadding = ImVec2(0, 0);
style.IndentSpacing = 6.0f;
style.ScrollbarSize = 12.0f;
style.ScrollbarRounding = 16.0f;
style.GrabMinSize = 20.0f;
style.GrabRounding = 2.0f;
style.WindowTitleAlign.x = 0.50f;
style.Colors[ImGuiCol_Border] = ImVec4(0.539f, 0.479f, 0.255f, 0.162f);
style.FrameBorderSize = 0.0f;
style.WindowBorderSize = 1.0f;
}
์ด๋์ด ํ
๋ง
ImGuiStyle & st = ImGui :: GetStyle ();
st.FrameBorderSize = 1.0f;
st.FramePadding = ImVec2 (4.0f, 2.0f);
st.ItemSpacing = ImVec2 (8.0f, 2.0f);
st.WindowBorderSize = 1.0f;
st.TabBorderSize = 1.0f;
st.WindowRounding = 1.0f;
st.ChildRounding = 1.0f;
st.FrameRounding = 1.0f;
st.ScrollbarRounding = 1.0f;
st.GrabRounding = 1.0f;
st. TabRounding = 1.0f;
// ์ค์ ์คํ์ผ
ImVec4 * ์์ = ImGui :: GetStyle (). Colors;
์์ [ImGuiCol_Text] = ImVec4 (1.00f, 1.00f, 1.00f, 0.95f);
์์ [ImGuiCol_TextDisabled] = ImVec4 (0.50f, 0.50f, 0.50f, 1.00f);
์์ [ImGuiCol_WindowBg] = ImVec4 (0.13f, 0.12f, 0.12f, 1.00f);
colors [ImGuiCol_ChildBg] = ImVec4 (1.00f, 1.00f, 1.00f, 0.00f);
์์ [ImGuiCol_PopupBg] = ImVec4 (0.05f, 0.05f, 0.05f, 0.94f);
์์ [ImGuiCol_Border] = ImVec4 (0.53f, 0.53f, 0.53f, 0.46f);
์์ [ImGuiCol_BorderShadow] = ImVec4 (0.00f, 0.00f, 0.00f, 0.00f);
์์ [ImGuiCol_FrameBg] = ImVec4 (0.00f, 0.00f, 0.00f, 0.85f);
์์ [ImGuiCol_FrameBgHovered] = ImVec4 (0.22f, 0.22f, 0.22f, 0.40f);
์์ [ImGuiCol_FrameBgActive] = ImVec4 (0.16f, 0.16f, 0.16f, 0.53f);
์์ [ImGuiCol_TitleBg] = ImVec4 (0.00f, 0.00f, 0.00f, 1.00f);
colors [ImGuiCol_TitleBgActive] = ImVec4 (0.00f, 0.00f, 0.00f, 1.00f);
colors [ImGuiCol_TitleBgCollapsed] = ImVec4 (0.00f, 0.00f, 0.00f, 0.51f);
์์ [ImGuiCol_MenuBarBg] = ImVec4 (0.12f, 0.12f, 0.12f, 1.00f);
์์ [ImGuiCol_ScrollbarBg] = ImVec4 (0.02f, 0.02f, 0.02f, 0.53f);
colors [ImGuiCol_ScrollbarGrab] = ImVec4 (0.31f, 0.31f, 0.31f, 1.00f);
colors [ImGuiCol_ScrollbarGrabHovered] = ImVec4 (0.41f, 0.41f, 0.41f, 1.00f);
์์ [ImGuiCol_ScrollbarGrabActive] = ImVec4 (0.48f, 0.48f, 0.48f, 1.00f);
์์ [ImGuiCol_CheckMark] = ImVec4 (0.79f, 0.79f, 0.79f, 1.00f);
์์ [ImGuiCol_SliderGrab] = ImVec4 (0.48f, 0.47f, 0.47f, 0.91f);
์์ [ImGuiCol_SliderGrabActive] = ImVec4 (0.56f, 0.55f, 0.55f, 0.62f);
์์ [ImGuiCol_Button] = ImVec4 (0.50f, 0.50f, 0.50f, 0.63f);
์์ [ImGuiCol_ButtonHovered] = ImVec4 (0.67f, 0.67f, 0.68f, 0.63f);
์์ [ImGuiCol_ButtonActive] = ImVec4 (0.26f, 0.26f, 0.26f, 0.63f);
colors [ImGuiCol_Header] = ImVec4 (0.54f, 0.54f, 0.54f, 0.58f);
colors [ImGuiCol_HeaderHovered] = ImVec4 (0.64f, 0.65f, 0.65f, 0.80f);
์์ [ImGuiCol_HeaderActive] = ImVec4 (0.25f, 0.25f, 0.25f, 0.80f);
์์ [ImGuiCol_Separator] = ImVec4 (0.58f, 0.58f, 0.58f, 0.50f);
colors [ImGuiCol_SeparatorHovered] = ImVec4 (0.81f, 0.81f, 0.81f, 0.64f);
์์ [ImGuiCol_SeparatorActive] = ImVec4 (0.81f, 0.81f, 0.81f, 0.64f);
colors [ImGuiCol_ResizeGrip] = ImVec4 (0.87f, 0.87f, 0.87f, 0.53f);
colors [ImGuiCol_ResizeGripHovered] = ImVec4 (0.87f, 0.87f, 0.87f, 0.74f);
colors [ImGuiCol_ResizeGripActive] = ImVec4 (0.87f, 0.87f, 0.87f, 0.74f);
์์ [ImGuiCol_Tab] = ImVec4 (0.01f, 0.01f, 0.01f, 0.86f);
์์ [ImGuiCol_TabHovered] = ImVec4 (0.29f, 0.29f, 0.29f, 1.00f);
์์ [ImGuiCol_TabActive] = ImVec4 (0.31f, 0.31f, 0.31f, 1.00f);
์์ [ImGuiCol_TabUnfocused] = ImVec4 (0.02f, 0.02f, 0.02f, 1.00f);
์์ [ImGuiCol_TabUnfocusedActive] = ImVec4 (0.19f, 0.19f, 0.19f, 1.00f);
colors [ImGuiCol_DockingPreview] = ImVec4 (0.38f, 0.48f, 0.60f, 1.00f);
์์ [ImGuiCol_DockingEmptyBg] = ImVec4 (0.20f, 0.20f, 0.20f, 1.00f);
์์ [ImGuiCol_PlotLines] = ImVec4 (0.61f, 0.61f, 0.61f, 1.00f);
colors [ImGuiCol_PlotLinesHovered] = ImVec4 (0.68f, 0.68f, 0.68f, 1.00f);
์์ [ImGuiCol_PlotHistogram] = ImVec4 (0.90f, 0.77f, 0.33f, 1.00f);
colors [ImGuiCol_PlotHistogramHovered] = ImVec4 (0.87f, 0.55f, 0.08f, 1.00f);
์์ [ImGuiCol_TextSelectedBg] = ImVec4 (0.47f, 0.60f, 0.76f, 0.47f);
์์ [ImGuiCol_DragDropTarget] = ImVec4 (0.58f, 0.58f, 0.58f, 0.90f);
์์ [ImGuiCol_NavHighlight] = ImVec4 (0.60f, 0.60f, 0.60f, 1.00f);
colors [ImGuiCol_NavWindowingHighlight] = ImVec4 (1.00f, 1.00f, 1.00f, 0.70f);
์์ [ImGuiCol_NavWindowingDimBg] = ImVec4 (0.80f, 0.80f, 0.80f, 0.20f);
์์ [ImGuiCol_ModalWindowDimBg] = ImVec4 (0.80f, 0.80f, 0.80f, 0.35f);
@ r-lyeh ๋ฉ์ง ํ ๋ง์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฒํผ์ ์บ๋ฆญํฐ๊ฐ ์ ๋๋ก ์ค์์ ์์ง ์์ต๋๋ค. ์ฝ๊ฐ ๋จ์ด์ ธ ์์ต๋๊น? ์๋ฅผ ๋ค์ด InputInt.
๋๋ ์ด๋ค ๋ฌธ์ ๋ ๋ณด์ง ๋ชปํ๋ค. thx : D
ํธ์ง : ์ข์, thx! ์๋ ์ค ๋ํซ์ ์์ ํ์ต๋๋ค.
์กฐ๊ธ '๊ฐ๋ฏธ'์ด์ง๋ง ๋ณด์๋ค์ํผ '-'์ '+'๋ ๋ฒํผ ์ค์์ ์์ง ์์ต๋๋ค.
# 1776์ ๊ฒ์ ๋ @ebachard์ LightGreen ์คํ์ผ ๋ณต์ฌ (์ง๊ธ์ ๋ค๋ฅธ ์ฃผ์ ๋ฅผ ๋ซ์ ์ ์์ต๋๋ค).
// generic miniDart theme
void ImGui::StyleColorsLightGreen(ImGuiStyle* dst)
{
ImGuiStyle* style = dst ? dst : &ImGui::GetStyle();
ImVec4* colors = style->Colors;
style->WindowRounding = 2.0f; // Radius of window corners rounding. Set to 0.0f to have rectangular windows
style->ScrollbarRounding = 3.0f; // Radius of grab corners rounding for scrollbar
style->GrabRounding = 2.0f; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
style->AntiAliasedLines = true;
style->AntiAliasedFill = true;
style->WindowRounding = 2;
style->ChildRounding = 2;
style->ScrollbarSize = 16;
style->ScrollbarRounding = 3;
style->GrabRounding = 2;
style->ItemSpacing.x = 10;
style->ItemSpacing.y = 4;
style->IndentSpacing = 22;
style->FramePadding.x = 6;
style->FramePadding.y = 4;
style->Alpha = 1.0f;
style->FrameRounding = 3.0f;
colors[ImGuiCol_Text] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.86f, 0.86f, 0.86f, 1.00f);
//colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.93f, 0.93f, 0.93f, 0.98f);
colors[ImGuiCol_Border] = ImVec4(0.71f, 0.71f, 0.71f, 0.08f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.04f);
colors[ImGuiCol_FrameBg] = ImVec4(0.71f, 0.71f, 0.71f, 0.55f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.94f, 0.94f, 0.94f, 0.55f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.71f, 0.78f, 0.69f, 0.98f);
colors[ImGuiCol_TitleBg] = ImVec4(0.85f, 0.85f, 0.85f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.82f, 0.78f, 0.78f, 0.51f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.78f, 0.78f, 0.78f, 1.00f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.86f, 0.86f, 0.86f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.20f, 0.25f, 0.30f, 0.61f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.90f, 0.90f, 0.90f, 0.30f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.92f, 0.92f, 0.92f, 0.78f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.184f, 0.407f, 0.193f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.26f, 0.59f, 0.98f, 0.78f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.71f, 0.78f, 0.69f, 0.40f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.725f, 0.805f, 0.702f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.793f, 0.900f, 0.836f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.71f, 0.78f, 0.69f, 0.31f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.71f, 0.78f, 0.69f, 0.80f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.71f, 0.78f, 0.69f, 1.00f);
colors[ImGuiCol_Column] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
colors[ImGuiCol_ColumnHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.78f);
colors[ImGuiCol_ColumnActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_Separator] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.14f, 0.44f, 0.80f, 0.78f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.14f, 0.44f, 0.80f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.00f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.45f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.78f);
colors[ImGuiCol_PlotLines] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
colors[ImGuiCol_NavHighlight] = colors[ImGuiCol_HeaderHovered];
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(0.70f, 0.70f, 0.70f, 0.70f);
}
@ocornut : ๊ณ ๋ง์์! ์ผ๋ถ ImGui ํ ๋ง๋ฅผ ํ ์คํธํ๋ ค๋ ์ฌ๋์ ์ํด Windows ์ฉ miniDart ํ๋์ค์ด ๋ฒ์ ์ด ์์ต๋๋ค (์ฃ์กํฉ๋๋ค. ์ ๋ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ฉฐ ํ์ฌ UI์ 40 % ๋ง ๋ฒ์ญ๋์ด ์์ต๋๋ค).
์ข ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ํ ๋ง ( "Prรฉfรฉrences"ํญ ์ฐธ์กฐ)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ํ๋ ค๋ฉด ์ฐ๊ฒฐ๋ ์น์บ ์ด ํ์ํฉ๋๋ค (๊ณง ๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค).
์ ๋ฐ ๋ถ๋๋ฝ๊ฒ : ๋๋ ํ๋ก๊ฐ ์๋๋๋ค ;-)
๋งํฌ : https://framagit.org/ericb/miniDart
๋ด ํ ๋ง๋ Photoshop์ UI์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. UI๊ฐ ํญ์์ฃผ์๋ฅผ ๋์ง ์๋๋ก ์ด๋์ด ์ฐจ์ฝ ์์์ ์ฌ์ฉํ๊ณ ์ฐฝ ํฌ๊ธฐ ์กฐ์ ํธ๋ค์ด๋ ๊ตฌ๋ถ์ ๊ณผ ๊ฐ์ ์ผ๋ถ ํญ๋ชฉ๊ณผ ์ํธ ์์ฉํ ๋ ์ฌ๊ธฐ์ ๊ธฐ์ ์ฃผํฉ์ ์ ์ผํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉํด๊ฐ๋์ง ์๋ ์ฝ๊ฐ์ ์์์ ์ถ๊ฐํฉ๋๋ค. ์ผํ ๋.
void DearImgui::ApplyDefaultStyle()
{
ImGuiStyle* style = &ImGui::GetStyle();
ImVec4* colors = style->Colors;
colors[ImGuiCol_Text] = ImVec4(1.000f, 1.000f, 1.000f, 1.000f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.500f, 0.500f, 0.500f, 1.000f);
colors[ImGuiCol_WindowBg] = ImVec4(0.180f, 0.180f, 0.180f, 1.000f);
colors[ImGuiCol_ChildBg] = ImVec4(0.280f, 0.280f, 0.280f, 0.000f);
colors[ImGuiCol_PopupBg] = ImVec4(0.313f, 0.313f, 0.313f, 1.000f);
colors[ImGuiCol_Border] = ImVec4(0.266f, 0.266f, 0.266f, 1.000f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.000f, 0.000f, 0.000f, 0.000f);
colors[ImGuiCol_FrameBg] = ImVec4(0.160f, 0.160f, 0.160f, 1.000f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.200f, 0.200f, 0.200f, 1.000f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.280f, 0.280f, 0.280f, 1.000f);
colors[ImGuiCol_TitleBg] = ImVec4(0.148f, 0.148f, 0.148f, 1.000f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.148f, 0.148f, 0.148f, 1.000f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.148f, 0.148f, 0.148f, 1.000f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.195f, 0.195f, 0.195f, 1.000f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.160f, 0.160f, 0.160f, 1.000f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.277f, 0.277f, 0.277f, 1.000f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.300f, 0.300f, 0.300f, 1.000f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_CheckMark] = ImVec4(1.000f, 1.000f, 1.000f, 1.000f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.391f, 0.391f, 0.391f, 1.000f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_Button] = ImVec4(1.000f, 1.000f, 1.000f, 0.000f);
colors[ImGuiCol_ButtonHovered] = ImVec4(1.000f, 1.000f, 1.000f, 0.156f);
colors[ImGuiCol_ButtonActive] = ImVec4(1.000f, 1.000f, 1.000f, 0.391f);
colors[ImGuiCol_Header] = ImVec4(0.313f, 0.313f, 0.313f, 1.000f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.469f, 0.469f, 0.469f, 1.000f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.469f, 0.469f, 0.469f, 1.000f);
colors[ImGuiCol_Separator] = colors[ImGuiCol_Border];
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.391f, 0.391f, 0.391f, 1.000f);
colors[ImGuiCol_SeparatorActive] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_ResizeGrip] = ImVec4(1.000f, 1.000f, 1.000f, 0.250f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.000f, 1.000f, 1.000f, 0.670f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_Tab] = ImVec4(0.098f, 0.098f, 0.098f, 1.000f);
colors[ImGuiCol_TabHovered] = ImVec4(0.352f, 0.352f, 0.352f, 1.000f);
colors[ImGuiCol_TabActive] = ImVec4(0.195f, 0.195f, 0.195f, 1.000f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.098f, 0.098f, 0.098f, 1.000f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.195f, 0.195f, 0.195f, 1.000f);
colors[ImGuiCol_DockingPreview] = ImVec4(1.000f, 0.391f, 0.000f, 0.781f);
colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.180f, 0.180f, 0.180f, 1.000f);
colors[ImGuiCol_PlotLines] = ImVec4(0.469f, 0.469f, 0.469f, 1.000f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.586f, 0.586f, 0.586f, 1.000f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(1.000f, 1.000f, 1.000f, 0.156f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_NavHighlight] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.000f, 0.391f, 0.000f, 1.000f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.000f, 0.000f, 0.000f, 0.586f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.000f, 0.000f, 0.000f, 0.586f);
style->ChildRounding = 4.0f;
style->FrameBorderSize = 1.0f;
style->FrameRounding = 2.0f;
style->GrabMinSize = 7.0f;
style->PopupRounding = 2.0f;
style->ScrollbarRounding = 12.0f;
style->ScrollbarSize = 13.0f;
style->TabBorderSize = 1.0f;
style->TabRounding = 0.0f;
style->WindowRounding = 4.0f;
}
๋๋ ์ฃผ์ ๋ฅผ "CorporateGrey"๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์์๊ณผ ์คํ์ผ๋ง ๋งค๊ฐ ๋ณ์๋ ๊น๋ํ๊ณ ๋ณด๊ธฐ ํธํ๋ฉฐ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ / ์ค์ํธ์ ๋ ์ ํฉํฉ๋๋ค.
inline void Style()
{
ImGuiStyle & style = ImGui::GetStyle();
ImVec4 * colors = style.Colors;
/// 0 = FLAT APPEARENCE
/// 1 = MORE "3D" LOOK
int is3D = 0;
colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_Border] = ImVec4(0.12f, 0.12f, 0.12f, 0.71f);
colors[ImGuiCol_BorderShadow] = ImVec4(1.00f, 1.00f, 1.00f, 0.06f);
colors[ImGuiCol_FrameBg] = ImVec4(0.42f, 0.42f, 0.42f, 0.54f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.42f, 0.42f, 0.42f, 0.40f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.56f, 0.56f, 0.56f, 0.67f);
colors[ImGuiCol_TitleBg] = ImVec4(0.19f, 0.19f, 0.19f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.22f, 0.22f, 0.22f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.17f, 0.17f, 0.17f, 0.90f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.335f, 0.335f, 0.335f, 1.000f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.24f, 0.24f, 0.24f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.52f, 0.52f, 0.52f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.76f, 0.76f, 0.76f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.65f, 0.65f, 0.65f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.52f, 0.52f, 0.52f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.64f, 0.64f, 0.64f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.54f, 0.54f, 0.54f, 0.35f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.52f, 0.52f, 0.52f, 0.59f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.76f, 0.76f, 0.76f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.47f, 0.47f, 0.47f, 1.00f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.76f, 0.76f, 0.76f, 0.77f);
colors[ImGuiCol_Separator] = ImVec4(0.000f, 0.000f, 0.000f, 0.137f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.700f, 0.671f, 0.600f, 0.290f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.702f, 0.671f, 0.600f, 0.674f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.73f, 0.73f, 0.73f, 0.35f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
style.PopupRounding = 3;
style.WindowPadding = ImVec2(4, 4);
style.FramePadding = ImVec2(6, 4);
style.ItemSpacing = ImVec2(6, 2);
style.ScrollbarSize = 18;
style.WindowBorderSize = 1;
style.ChildBorderSize = 1;
style.PopupBorderSize = 1;
style.FrameBorderSize = is3D;
style.WindowRounding = 3;
style.ChildRounding = 3;
style.FrameRounding = 3;
style.ScrollbarRounding = 2;
style.GrabRounding = 3;
#ifdef IMGUI_HAS_DOCK
style.TabBorderSize = is3D;
style.TabRounding = 3;
colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
colors[ImGuiCol_Tab] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);
colors[ImGuiCol_TabActive] = ImVec4(0.33f, 0.33f, 0.33f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.33f, 0.33f, 0.33f, 1.00f);
colors[ImGuiCol_DockingPreview] = ImVec4(0.85f, 0.85f, 0.85f, 0.28f);
if (ImGui::GetIO().ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
{
style.WindowRounding = 0.0f;
style.Colors[ImGuiCol_WindowBg].w = 1.0f;
}
#endif
}
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์ํด ์ค๋ ImGui ์์์ผ๋ก ์ฌ๋ฏธ์๊ฒ ๋์์ต๋๋ค.
์ ๋ ์ฌ๋ฌ๋ถ์ด ์ ๊ณต ํ ์์๋ 5 ๊ฐ์ง ๊ธฐ๋ณธ ์์์ผ๋ก ํ
๋ง๋ฅผ ์ค์ ํ๋ ์๊ท๋ชจ ์์
์ ๋ง๋ค์์ต๋๋ค.
ํธ์ง : ์ด๊ฒ์ด imgui ๋ํน ๋ถ๊ธฐ์ ๋ํ ๊ฒ์์ ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ ์์์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. https://coolors.co/252131-f4f1de-da115e-792359-c7ef00
EditorColorScheme::ApplyTheme();
ํธ์ถํ๋ฉด ๋ค์์ ์ป์ต๋๋ค.
๋๋ ๋ค๋ฅธ ์์ ์ธํธ๋ก
// From https://coolors.co/1f2421-725ac1-8d86c9-eca400-dce1de ;
EditorColorScheme::SetColors(0x1F2421FF /* Background */,
0xDCE1DEFF /* Text */,
0x725AC1FF /* MainColor */,
0x8D86C9FF /* MainAccent */,
0xECA400FF /* Highlight */
);
๋๋ ์ป๋ค :
๋๋
// From : https://coolors.co/c7dfc5-dbdddb-bbddb8-373737-9b287b ;
EditorColorScheme::SetColors(0xC7DFC5FF, 0x373737FF, 0x86A586FF, 0xBBDDB8FF, 0x9B287BFF);
๋๊ตฌ๋ ์ง ๊ฐ์ง๊ณ ๋๊ณ ์ถ๋ค๋ฉด ์์
์ด ์ฌ๊ธฐ ์์ต๋๋ค.
`
EditorColorScheme ํด๋์ค
{
// 0xRRGGBBAA
์ธ๋ผ์ธ ์ ์ int BackGroundColor = 0x25213100;
์ธ๋ผ์ธ ์ ์ int TextColor = 0xF4F1DE00;
์ธ๋ผ์ธ ์ ์ int MainColor = 0xDA115E00;
์ธ๋ผ์ธ ์ ์ int MainAccentColor = 0x79235900;
์ธ๋ผ์ธ ์ ์ int HighlightColor = 0xC7EF0000;
inline static int Black = 0x00000000;
inline static int White = 0xFFFFFF00;
inline static int AlphaTransparent = 0x00;
inline static int Alpha20 = 0x33;
inline static int Alpha40 = 0x66;
inline static int Alpha50 = 0x80;
inline static int Alpha60 = 0x99;
inline static int Alpha80 = 0xCC;
inline static int Alpha90 = 0xE6;
inline static int AlphaFull = 0xFF;
static float GetR(int colorCode) { return (float)((colorCode & 0xFF000000) >> 24 ) / (float)(0xFF); }
static float GetG(int colorCode) { return (float)((colorCode & 0x00FF0000) >> 16 ) / (float)(0xFF); }
static float GetB(int colorCode) { return (float)((colorCode & 0x0000FF00) >> 8 ) / (float)(0xFF); }
static float GetA(int alphaCode) { return ((float)alphaCode / (float)0xFF); }
static ImVec4 GetColor(int c, int a = Alpha80) { return ImVec4(GetR(c), GetG(c), GetB(c), GetA(a)); }
static ImVec4 Darken(ImVec4 c, float p) { return ImVec4(fmax(0.f, c.x - 1.0f * p), fmax(0.f, c.y - 1.0f * p), fmax(0.f, c.z - 1.0f *p), c.w); }
static ImVec4 Lighten(ImVec4 c, float p) { return ImVec4(fmax(0.f, c.x + 1.0f * p), fmax(0.f, c.y + 1.0f * p), fmax(0.f, c.z + 1.0f *p), c.w); }
static ImVec4 Disabled(ImVec4 c) { return Darken(c, 0.6f); }
static ImVec4 Hovered(ImVec4 c) { return Lighten(c, 0.2f); }
static ImVec4 Active(ImVec4 c) { return Lighten(ImVec4(c.x, c.y, c.z, 1.0f),0.1f); }
static ImVec4 Collapsed(ImVec4 c) { return Darken(c, 0.2f); }
public:
static void SetColors(int backGroundColor, int textColor, int mainColor, int mainAccentColor, int highlightColor)
{
BackGroundColor = backGroundColor;
TextColor = textColor;
MainColor = mainColor;
MainAccentColor = mainAccentColor;
HighlightColor = highlightColor;
}
static void ApplyTheme()
{
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = GetColor(TextColor);
colors[ImGuiCol_TextDisabled] = Disabled(colors[ImGuiCol_Text]);
colors[ImGuiCol_WindowBg] = GetColor(BackGroundColor);
colors[ImGuiCol_ChildBg] = GetColor(Black, Alpha20);
colors[ImGuiCol_PopupBg] = GetColor(BackGroundColor, Alpha90);
colors[ImGuiCol_Border] = Lighten(GetColor(BackGroundColor),0.4f);
colors[ImGuiCol_BorderShadow] = GetColor(Black);
colors[ImGuiCol_FrameBg] = GetColor(MainAccentColor, Alpha40);
colors[ImGuiCol_FrameBgHovered] = Hovered(colors[ImGuiCol_FrameBg]);
colors[ImGuiCol_FrameBgActive] = Active(colors[ImGuiCol_FrameBg]);
colors[ImGuiCol_TitleBg] = GetColor(BackGroundColor, Alpha80);
colors[ImGuiCol_TitleBgActive] = Active(colors[ImGuiCol_TitleBg]);
colors[ImGuiCol_TitleBgCollapsed] = Collapsed(colors[ImGuiCol_TitleBg]);
colors[ImGuiCol_MenuBarBg] = Darken(GetColor(BackGroundColor), 0.2f);
colors[ImGuiCol_ScrollbarBg] = Lighten(GetColor(BackGroundColor, Alpha50), 0.4f);
colors[ImGuiCol_ScrollbarGrab] = Lighten(GetColor(BackGroundColor), 0.3f);
colors[ImGuiCol_ScrollbarGrabHovered] = Hovered(colors[ImGuiCol_ScrollbarGrab]);
colors[ImGuiCol_ScrollbarGrabActive] = Active(colors[ImGuiCol_ScrollbarGrab]);
colors[ImGuiCol_CheckMark] = GetColor(HighlightColor);
colors[ImGuiCol_SliderGrab] = GetColor(HighlightColor);
colors[ImGuiCol_SliderGrabActive] = Active(colors[ImGuiCol_SliderGrab]);
colors[ImGuiCol_Button] = GetColor(MainColor, Alpha80);
colors[ImGuiCol_ButtonHovered] = Hovered(colors[ImGuiCol_Button]);
colors[ImGuiCol_ButtonActive] = Active(colors[ImGuiCol_Button]);
colors[ImGuiCol_Header] = GetColor(MainAccentColor, Alpha80);
colors[ImGuiCol_HeaderHovered] = Hovered(colors[ImGuiCol_Header]);
colors[ImGuiCol_HeaderActive] = Active(colors[ImGuiCol_Header]);
colors[ImGuiCol_Separator] = colors[ImGuiCol_Border];
colors[ImGuiCol_SeparatorHovered] = Hovered(colors[ImGuiCol_Separator]);
colors[ImGuiCol_SeparatorActive] = Active(colors[ImGuiCol_Separator]);
colors[ImGuiCol_ResizeGrip] = GetColor(MainColor, Alpha20);
colors[ImGuiCol_ResizeGripHovered] = Hovered(colors[ImGuiCol_ResizeGrip]);
colors[ImGuiCol_ResizeGripActive] = Active(colors[ImGuiCol_ResizeGrip]);
colors[ImGuiCol_Tab] = GetColor(MainColor, Alpha60);
colors[ImGuiCol_TabHovered] = Hovered(colors[ImGuiCol_Tab]);
colors[ImGuiCol_TabActive] = Active(colors[ImGuiCol_Tab]);
colors[ImGuiCol_TabUnfocused] = colors[ImGuiCol_Tab];
colors[ImGuiCol_TabUnfocusedActive] = colors[ImGuiCol_TabActive];
colors[ImGuiCol_DockingPreview] = Darken(colors[ImGuiCol_HeaderActive], 0.2f);
colors[ImGuiCol_DockingEmptyBg] = Darken(colors[ImGuiCol_HeaderActive], 0.6f);
colors[ImGuiCol_PlotLines] = GetColor(HighlightColor);
colors[ImGuiCol_PlotLinesHovered] = Hovered(colors[ImGuiCol_PlotLines]);
colors[ImGuiCol_PlotHistogram] = GetColor(HighlightColor);
colors[ImGuiCol_PlotHistogramHovered] = Hovered(colors[ImGuiCol_PlotHistogram]);
colors[ImGuiCol_TextSelectedBg] = GetColor(HighlightColor, Alpha40);
colors[ImGuiCol_DragDropTarget] = GetColor(HighlightColor, Alpha80);;
colors[ImGuiCol_NavHighlight] = GetColor(White);
colors[ImGuiCol_NavWindowingHighlight] = GetColor(White, Alpha80);
colors[ImGuiCol_NavWindowingDimBg] = GetColor(White, Alpha20);
colors[ImGuiCol_ModalWindowDimBg] = GetColor(Black, Alpha60);
ImGui::GetStyle().WindowMenuButtonPosition = ImGuiDir_Right;
}
};`
๋ ๋ค๋ฅธ ์ด๋์ด ์ฃผ์ :
imGuiIO.Fonts->AddFontFromFileTTF("../data/Fonts/Ruda-Bold.ttf", 15.0f, &config);
ImGui::GetStyle().FrameRounding = 4.0f;
ImGui::GetStyle().GrabRounding = 4.0f;
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(0.95f, 0.96f, 0.98f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.36f, 0.42f, 0.47f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.15f, 0.18f, 0.22f, 1.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(0.08f, 0.10f, 0.12f, 1.00f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_FrameBg] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.12f, 0.20f, 0.28f, 1.00f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.09f, 0.12f, 0.14f, 1.00f);
colors[ImGuiCol_TitleBg] = ImVec4(0.09f, 0.12f, 0.14f, 0.65f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.08f, 0.10f, 0.12f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.15f, 0.18f, 0.22f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.39f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.18f, 0.22f, 0.25f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.09f, 0.21f, 0.31f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.37f, 0.61f, 1.00f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.28f, 0.56f, 1.00f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.06f, 0.53f, 0.98f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.20f, 0.25f, 0.29f, 0.55f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_Separator] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.10f, 0.40f, 0.75f, 0.78f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.10f, 0.40f, 0.75f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
colors[ImGuiCol_Tab] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f);
colors[ImGuiCol_TabActive] = ImVec4(0.20f, 0.25f, 0.29f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.11f, 0.15f, 0.17f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
ํด๋์ Steam / Half-Life VGUI ํ ๋ง
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.29f, 0.34f, 0.26f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.29f, 0.34f, 0.26f, 1.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.24f, 0.27f, 0.20f, 1.00f);
colors[ImGuiCol_Border] = ImVec4(0.54f, 0.57f, 0.51f, 0.50f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.14f, 0.16f, 0.11f, 0.52f);
colors[ImGuiCol_FrameBg] = ImVec4(0.24f, 0.27f, 0.20f, 1.00f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.27f, 0.30f, 0.23f, 1.00f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.30f, 0.34f, 0.26f, 1.00f);
colors[ImGuiCol_TitleBg] = ImVec4(0.24f, 0.27f, 0.20f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.29f, 0.34f, 0.26f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.24f, 0.27f, 0.20f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.28f, 0.32f, 0.24f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.25f, 0.30f, 0.22f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.23f, 0.27f, 0.21f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.54f, 0.57f, 0.51f, 0.50f);
colors[ImGuiCol_Button] = ImVec4(0.29f, 0.34f, 0.26f, 0.40f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.54f, 0.57f, 0.51f, 0.50f);
colors[ImGuiCol_Header] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.35f, 0.42f, 0.31f, 0.6f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.54f, 0.57f, 0.51f, 0.50f);
colors[ImGuiCol_Separator] = ImVec4(0.14f, 0.16f, 0.11f, 1.00f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.54f, 0.57f, 0.51f, 1.00f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.19f, 0.23f, 0.18f, 0.00f); // grip invis
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.54f, 0.57f, 0.51f, 1.00f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_Tab] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.54f, 0.57f, 0.51f, 0.78f);
colors[ImGuiCol_TabActive] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.24f, 0.27f, 0.20f, 1.00f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.35f, 0.42f, 0.31f, 1.00f);
colors[ImGuiCol_DockingPreview] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.20f, 0.20f, 0.20f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(1.00f, 0.78f, 0.28f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_DragDropTarget] = ImVec4(0.73f, 0.67f, 0.24f, 1.00f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.59f, 0.54f, 0.18f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
ImGuiStyle& style = ImGui::GetStyle();
style.FrameBorderSize = 1.0f;
style.WindowRounding = 0.0f;
style.ChildRounding = 0.0f;
style.FrameRounding = 0.0f;
style.PopupRounding = 0.0f;
style.ScrollbarRounding = 0.0f;
style.GrabRounding = 0.0f;
style.TabRounding = 0.0f;
Deus Ex : Human Revolution์ ์ํธ ์คํ์ผ์ ๋ง๊ฒ ๋์์ธ ๋ Gold & Black ์คํ์ผ์ ํ ๋ง์ ๋๋ค.
ImGuiStyle* style = &ImGui::GetStyle();
ImVec4* colors = style->Colors;
colors[ImGuiCol_Text] = ImVec4(0.92f, 0.92f, 0.92f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.44f, 0.44f, 0.44f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.06f, 0.06f, 0.06f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_FrameBg] = ImVec4(0.11f, 0.11f, 0.11f, 1.00f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_TitleBg] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.11f, 0.11f, 0.11f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.06f, 0.06f, 0.06f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.21f, 0.21f, 0.21f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.47f, 0.47f, 0.47f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.81f, 0.83f, 0.81f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.93f, 0.65f, 0.14f, 1.00f);
colors[ImGuiCol_Separator] = ImVec4(0.21f, 0.21f, 0.21f, 1.00f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.21f, 0.21f, 0.21f, 1.00f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_Tab] = ImVec4(0.51f, 0.36f, 0.15f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.91f, 0.64f, 0.13f, 1.00f);
colors[ImGuiCol_TabActive] = ImVec4(0.78f, 0.55f, 0.21f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.07f, 0.10f, 0.15f, 0.97f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.14f, 0.26f, 0.42f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
style->FramePadding = ImVec2(4, 2);
style->ItemSpacing = ImVec2(10, 2);
style->IndentSpacing = 12;
style->ScrollbarSize = 10;
style->WindowRounding = 4;
style->FrameRounding = 4;
style->PopupRounding = 4;
style->ScrollbarRounding = 6;
style->GrabRounding = 4;
style->TabRounding = 4;
style->WindowTitleAlign = ImVec2(1.0f, 0.5f);
style->WindowMenuButtonPosition = ImGuiDir_Right;
style->DisplaySafeAreaPadding = ImVec2(4, 4);
C # (DearImguiSharp / My Own Wrapper)
var io = ImGui.GetIO();
var fontPath = Path.Combine(modFolder, "Assets/Fonts/Ruda-Bold.ttf");
var font = ImGui.ImFontAtlasAddFontFromFileTTF(io.Fonts, fontPath, 15.0f, null, ref Unsafe.AsRef<ushort>((void*)0x0));
if (font != null)
io.FontDefault = font;
var style = ImGui.GetStyle();
style.FrameRounding = 4.0f;
style.WindowBorderSize = 0.0f;
style.PopupBorderSize = 0.0f;
style.GrabRounding = 4.0f;
var colors = style.Colors;
colors[(int) ImGuiCol.ImGuiColText] = new Vector4(1.00f, 1.00f, 1.00f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTextDisabled] = new Vector4(0.73f, 0.75f, 0.74f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColWindowBg] = new Vector4(0.09f, 0.09f, 0.09f, 0.94f).ToImVec();
colors[(int) ImGuiCol.ImGuiColChildBg] = new Vector4(0.00f, 0.00f, 0.00f, 0.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColPopupBg] = new Vector4(0.08f, 0.08f, 0.08f, 0.94f).ToImVec();
colors[(int) ImGuiCol.ImGuiColBorder] = new Vector4(0.20f, 0.20f, 0.20f, 0.50f).ToImVec();
colors[(int) ImGuiCol.ImGuiColBorderShadow] = new Vector4(0.00f, 0.00f, 0.00f, 0.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColFrameBg] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColFrameBgHovered] = new Vector4(0.84f, 0.66f, 0.66f, 0.40f).ToImVec();
colors[(int) ImGuiCol.ImGuiColFrameBgActive] = new Vector4(0.84f, 0.66f, 0.66f, 0.67f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTitleBg] = new Vector4(0.47f, 0.22f, 0.22f, 0.67f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTitleBgActive] = new Vector4(0.47f, 0.22f, 0.22f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTitleBgCollapsed] = new Vector4(0.47f, 0.22f, 0.22f, 0.67f).ToImVec();
colors[(int) ImGuiCol.ImGuiColMenuBarBg] = new Vector4(0.34f, 0.16f, 0.16f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColScrollbarBg] = new Vector4(0.02f, 0.02f, 0.02f, 0.53f).ToImVec();
colors[(int) ImGuiCol.ImGuiColScrollbarGrab] = new Vector4(0.31f, 0.31f, 0.31f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColScrollbarGrabHovered] = new Vector4(0.41f, 0.41f, 0.41f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColScrollbarGrabActive] = new Vector4(0.51f, 0.51f, 0.51f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColCheckMark] = new Vector4(1.00f, 1.00f, 1.00f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColSliderGrab] = new Vector4(0.71f, 0.39f, 0.39f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColSliderGrabActive] = new Vector4(0.84f, 0.66f, 0.66f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColButton] = new Vector4(0.47f, 0.22f, 0.22f, 0.65f).ToImVec();
colors[(int) ImGuiCol.ImGuiColButtonHovered] = new Vector4(0.71f, 0.39f, 0.39f, 0.65f).ToImVec();
colors[(int) ImGuiCol.ImGuiColButtonActive] = new Vector4(0.20f, 0.20f, 0.20f, 0.50f).ToImVec();
colors[(int) ImGuiCol.ImGuiColHeader] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColHeaderHovered] = new Vector4(0.84f, 0.66f, 0.66f, 0.65f).ToImVec();
colors[(int) ImGuiCol.ImGuiColHeaderActive] = new Vector4(0.84f, 0.66f, 0.66f, 0.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColSeparator] = new Vector4(0.43f, 0.43f, 0.50f, 0.50f).ToImVec();
colors[(int) ImGuiCol.ImGuiColSeparatorHovered] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColSeparatorActive] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColResizeGrip] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColResizeGripHovered] = new Vector4(0.84f, 0.66f, 0.66f, 0.66f).ToImVec();
colors[(int) ImGuiCol.ImGuiColResizeGripActive] = new Vector4(0.84f, 0.66f, 0.66f, 0.66f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTab] = new Vector4(0.71f, 0.39f, 0.39f, 0.54f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTabHovered] = new Vector4(0.84f, 0.66f, 0.66f, 0.66f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTabActive] = new Vector4(0.84f, 0.66f, 0.66f, 0.66f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTabUnfocused] = new Vector4(0.07f, 0.10f, 0.15f, 0.97f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTabUnfocusedActive] = new Vector4(0.14f, 0.26f, 0.42f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColPlotLines] = new Vector4(0.61f, 0.61f, 0.61f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColPlotLinesHovered] = new Vector4(1.00f, 0.43f, 0.35f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColPlotHistogram] = new Vector4(0.90f, 0.70f, 0.00f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColPlotHistogramHovered] = new Vector4(1.00f, 0.60f, 0.00f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColTextSelectedBg] = new Vector4(0.26f, 0.59f, 0.98f, 0.35f).ToImVec();
colors[(int) ImGuiCol.ImGuiColDragDropTarget] = new Vector4(1.00f, 1.00f, 0.00f, 0.90f).ToImVec();
colors[(int) ImGuiCol.ImGuiColNavHighlight] = new Vector4(0.41f, 0.41f, 0.41f, 1.00f).ToImVec();
colors[(int) ImGuiCol.ImGuiColNavWindowingHighlight] = new Vector4(1.00f, 1.00f, 1.00f, 0.70f).ToImVec();
colors[(int) ImGuiCol.ImGuiColNavWindowingDimBg] = new Vector4(0.80f, 0.80f, 0.80f, 0.20f).ToImVec();
colors[(int) ImGuiCol.ImGuiColModalWindowDimBg] = new Vector4(0.80f, 0.80f, 0.80f, 0.35f).ToImVec();
style.Colors = colors;
C ++
// Sorry if there's any errors here, I translated this back by hand.
auto& io = ImGui::GetIO();
io.Fonts->AddFontFromFileTTF("Assets/Fonts//Ruda-Bold.ttf", 15.0f, &config);
auto& style = ImGui::GetStyle();
style.FrameRounding = 4.0f;
style.WindowBorderSize = 0.0f;
style.PopupBorderSize = 0.0f;
style.GrabRounding = 4.0f;
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.73f, 0.75f, 0.74f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.09f, 0.09f, 0.09f, 0.94f);
colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(0.20f, 0.20f, 0.20f, 0.50f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_FrameBg] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.84f, 0.66f, 0.66f, 0.40f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.84f, 0.66f, 0.66f, 0.67f);
colors[ImGuiCol_TitleBg] = ImVec4(0.47f, 0.22f, 0.22f, 0.67f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.47f, 0.22f, 0.22f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.47f, 0.22f, 0.22f, 0.67f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.34f, 0.16f, 0.16f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.71f, 0.39f, 0.39f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.84f, 0.66f, 0.66f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.47f, 0.22f, 0.22f, 0.65f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.71f, 0.39f, 0.39f, 0.65f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.20f, 0.20f, 0.20f, 0.50f);
colors[ImGuiCol_Header] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.84f, 0.66f, 0.66f, 0.65f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.84f, 0.66f, 0.66f, 0.00f);
colors[ImGuiCol_Separator] = ImVec4(0.43f, 0.43f, 0.50f, 0.50f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.84f, 0.66f, 0.66f, 0.66f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.84f, 0.66f, 0.66f, 0.66f);
colors[ImGuiCol_Tab] = ImVec4(0.71f, 0.39f, 0.39f, 0.54f);
colors[ImGuiCol_TabHovered] = ImVec4(0.84f, 0.66f, 0.66f, 0.66f);
colors[ImGuiCol_TabActive] = ImVec4(0.84f, 0.66f, 0.66f, 0.66f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.07f, 0.10f, 0.15f, 0.97f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.14f, 0.26f, 0.42f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
๋ฐฑ๊ทธ๋ผ์ด๋ ๊ฒ์์ 2006 ๋
์ Sonic Riders์
๋๋ค. dear imgui
์ฒ์ ์ฌ์ฉํ๊ณ ํ
์คํธ ํ ๋ฌด์ธ๊ฐ๋ฅผ ์ํ์ต๋๋ค. ์ง๊ธ๊น์ง ๋์๊ด์ ์ข์ํฉ๋๋ค.
๋ด ๊ฒ์ ์์ง์ ๋ํ Visual Studio์ ์ ์ฌํ ํ
๋ง๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ํน ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ๋ง์คํฐ 1์์๋ ๊ฒฝ์ฐ ์ผ๋ถ ์ค์ ์ ์ ๊ฑฐํด์ผํฉ๋๋ค.
constexpr auto ColorFromBytes = [](uint8_t r, uint8_t g, uint8_t b)
{
return ImVec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, 1.0f);
};
auto& style = ImGui::GetStyle();
ImVec4* colors = style.Colors;
const ImVec4 bgColor = ColorFromBytes(37, 37, 38);
const ImVec4 lightBgColor = ColorFromBytes(82, 82, 85);
const ImVec4 veryLightBgColor = ColorFromBytes(90, 90, 95);
const ImVec4 panelColor = ColorFromBytes(51, 51, 55);
const ImVec4 panelHoverColor = ColorFromBytes(29, 151, 236);
const ImVec4 panelActiveColor = ColorFromBytes(0, 119, 200);
const ImVec4 textColor = ColorFromBytes(255, 255, 255);
const ImVec4 textDisabledColor = ColorFromBytes(151, 151, 151);
const ImVec4 borderColor = ColorFromBytes(78, 78, 78);
colors[ImGuiCol_Text] = textColor;
colors[ImGuiCol_TextDisabled] = textDisabledColor;
colors[ImGuiCol_TextSelectedBg] = panelActiveColor;
colors[ImGuiCol_WindowBg] = bgColor;
colors[ImGuiCol_ChildBg] = bgColor;
colors[ImGuiCol_PopupBg] = bgColor;
colors[ImGuiCol_Border] = borderColor;
colors[ImGuiCol_BorderShadow] = borderColor;
colors[ImGuiCol_FrameBg] = panelColor;
colors[ImGuiCol_FrameBgHovered] = panelHoverColor;
colors[ImGuiCol_FrameBgActive] = panelActiveColor;
colors[ImGuiCol_TitleBg] = bgColor;
colors[ImGuiCol_TitleBgActive] = bgColor;
colors[ImGuiCol_TitleBgCollapsed] = bgColor;
colors[ImGuiCol_MenuBarBg] = panelColor;
colors[ImGuiCol_ScrollbarBg] = panelColor;
colors[ImGuiCol_ScrollbarGrab] = lightBgColor;
colors[ImGuiCol_ScrollbarGrabHovered] = veryLightBgColor;
colors[ImGuiCol_ScrollbarGrabActive] = veryLightBgColor;
colors[ImGuiCol_CheckMark] = panelActiveColor;
colors[ImGuiCol_SliderGrab] = panelHoverColor;
colors[ImGuiCol_SliderGrabActive] = panelActiveColor;
colors[ImGuiCol_Button] = panelColor;
colors[ImGuiCol_ButtonHovered] = panelHoverColor;
colors[ImGuiCol_ButtonActive] = panelHoverColor;
colors[ImGuiCol_Header] = panelColor;
colors[ImGuiCol_HeaderHovered] = panelHoverColor;
colors[ImGuiCol_HeaderActive] = panelActiveColor;
colors[ImGuiCol_Separator] = borderColor;
colors[ImGuiCol_SeparatorHovered] = borderColor;
colors[ImGuiCol_SeparatorActive] = borderColor;
colors[ImGuiCol_ResizeGrip] = bgColor;
colors[ImGuiCol_ResizeGripHovered] = panelColor;
colors[ImGuiCol_ResizeGripActive] = lightBgColor;
colors[ImGuiCol_PlotLines] = panelActiveColor;
colors[ImGuiCol_PlotLinesHovered] = panelHoverColor;
colors[ImGuiCol_PlotHistogram] = panelActiveColor;
colors[ImGuiCol_PlotHistogramHovered] = panelHoverColor;
colors[ImGuiCol_ModalWindowDarkening] = bgColor;
colors[ImGuiCol_DragDropTarget] = bgColor;
colors[ImGuiCol_NavHighlight] = bgColor;
colors[ImGuiCol_DockingPreview] = panelActiveColor;
colors[ImGuiCol_Tab] = bgColor;
colors[ImGuiCol_TabActive] = panelActiveColor;
colors[ImGuiCol_TabUnfocused] = bgColor;
colors[ImGuiCol_TabUnfocusedActive] = panelActiveColor;
colors[ImGuiCol_TabHovered] = panelHoverColor;
style.WindowRounding = 0.0f;
style.ChildRounding = 0.0f;
style.FrameRounding = 0.0f;
style.GrabRounding = 0.0f;
style.PopupRounding = 0.0f;
style.ScrollbarRounding = 0.0f;
style.TabRounding = 0.0f;
๋ด ๊ฒ์ ์์ง ์ ์ด๋์ด ํ
๋ง :
ImGuiStyle& style = ImGui::GetStyle();
style.Colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
style.Colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
style.Colors[ImGuiCol_WindowBg] = ImVec4(0.13f, 0.14f, 0.15f, 1.00f);
style.Colors[ImGuiCol_ChildBg] = ImVec4(0.13f, 0.14f, 0.15f, 1.00f);
style.Colors[ImGuiCol_PopupBg] = ImVec4(0.13f, 0.14f, 0.15f, 1.00f);
style.Colors[ImGuiCol_Border] = ImVec4(0.43f, 0.43f, 0.50f, 0.50f);
style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_FrameBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.67f, 0.67f, 0.67f, 0.39f);
style.Colors[ImGuiCol_TitleBg] = ImVec4(0.08f, 0.08f, 0.09f, 1.00f);
style.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.08f, 0.08f, 0.09f, 1.00f);
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
style.Colors[ImGuiCol_MenuBarBg] = ImVec4(0.14f, 0.14f, 0.14f, 1.00f);
style.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(0.11f, 0.64f, 0.92f, 1.00f);
style.Colors[ImGuiCol_SliderGrab] = ImVec4(0.11f, 0.64f, 0.92f, 1.00f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.08f, 0.50f, 0.72f, 1.00f);
style.Colors[ImGuiCol_Button] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
style.Colors[ImGuiCol_ButtonActive] = ImVec4(0.67f, 0.67f, 0.67f, 0.39f);
style.Colors[ImGuiCol_Header] = ImVec4(0.22f, 0.22f, 0.22f, 1.00f);
style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
style.Colors[ImGuiCol_HeaderActive] = ImVec4(0.67f, 0.67f, 0.67f, 0.39f);
style.Colors[ImGuiCol_Separator] = style.Colors[ImGuiCol_Border];
style.Colors[ImGuiCol_SeparatorHovered] = ImVec4(0.41f, 0.42f, 0.44f, 1.00f);
style.Colors[ImGuiCol_SeparatorActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
style.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.29f, 0.30f, 0.31f, 0.67f);
style.Colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
style.Colors[ImGuiCol_Tab] = ImVec4(0.08f, 0.08f, 0.09f, 0.83f);
style.Colors[ImGuiCol_TabHovered] = ImVec4(0.33f, 0.34f, 0.36f, 0.83f);
style.Colors[ImGuiCol_TabActive] = ImVec4(0.23f, 0.23f, 0.24f, 1.00f);
style.Colors[ImGuiCol_TabUnfocused] = ImVec4(0.08f, 0.08f, 0.09f, 1.00f);
style.Colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.13f, 0.14f, 0.15f, 1.00f);
style.Colors[ImGuiCol_DockingPreview] = ImVec4(0.26f, 0.59f, 0.98f, 0.70f);
style.Colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.20f, 0.20f, 0.20f, 1.00f);
style.Colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
style.Colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
style.Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
style.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
style.Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
style.Colors[ImGuiCol_DragDropTarget] = ImVec4(0.11f, 0.64f, 0.92f, 1.00f);
style.Colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
style.Colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
style.Colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
style.Colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
style.GrabRounding = style.FrameRounding = 2.3f;
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฒด๋ฆฌ ํ ๋ง : D