Imgui: ์—ฌ๊ธฐ์— ์ƒ‰์ƒ ์Šคํƒ€์ผ / ํ…Œ๋งˆ๋ฅผ ๊ฒŒ์‹œํ•˜์„ธ์š”.

์— ๋งŒ๋“  2016๋…„ 06์›” 19์ผ  ยท  43์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ocornut/imgui

๋‹ค์Œ ๋ฆด๋ฆฌ์Šค (1.50)์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ํŒจํ‚ค์ง€์— ๋ช‡ ๊ฐ€์ง€ ๋” ๋‚˜์€ ์ƒ‰์ƒ ํ…Œ๋งˆ๋ฅผ ํฌํ•จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ ์Šคํƒ€์ผ๋ง์„ ๋„ˆ๋ฌด ๋งŽ์ด ์—‰๋ง์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ทธ๋ ‡๊ฒŒํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์€ ๋ถ€๋ถ„์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ , ํฐ ๋ถ€๋ถ„์€ ์ปค์Šคํ…€ ํ…Œ๋งˆ๊ฐ€ ๊นจ์ง€๊ธฐ ์‰ฝ๊ณ  ์Šคํƒ€์ผ๋ง ์‹œ์Šคํ…œ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ๋” ์‹ ์ค‘ํ•œ ์ƒํ™ฉ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŒ์กฑํ•˜๋Š” ๋ช…๋ช… ๋œ ํ…Œ๋งˆ๋กœ ๋” ๋‚˜์€ ๊ธฐ์ค€์„ ์ œ๊ณตํ•˜๊ณ , ImGui๊ฐ€ ์‹ค์ œ๋กœ ์ค€๋น„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์€ ์Šคํ‚ค๋‹์„ํ•˜์ง€ ์•Š๋„๋ก ์œ ์ง€ํ•˜๊ณ  ์‹ค์ œ๋กœ ๊ถŒ์žฅํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. A.
๊ธฐ์กด ๊ธฐ๋ณธ ํ…Œ๋งˆ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ฒ„ํŠผ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ตœ์•…์˜ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ธฐ๋ณธ ํ…Œ๋งˆ๋ฅผ ์•ฝ๊ฐ„๋งŒ ์กฐ์ •ํ•˜๋ฉด ์ƒˆ๋กญ๊ณ  ์ข‹์€ ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐฝ์˜์ ์ธ ๋ถ„์œ„๊ธฐ๋ผ๋ฉด ๊ธฐ๋ณธ ํ…Œ๋งˆ๋ฅผ ์กฐ์ • ํ•ด๋ณด์„ธ์š”. :)

1. B.
์ƒˆ๋กœ์šด ํ…Œ๋งˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ ์ ˆํ•œ ์Šคํฌ๋ฆฐ ์ƒท๊ณผ ํ•จ๊ป˜ ์ œ์ถœํ•ด์ฃผ์„ธ์š”! ๋‚˜๋Š” ์•„๋งˆ ์ ์–ด๋„ ๊ฒ€์€ ์ƒ‰ ํ…Œ๋งˆ, ํฐ์ƒ‰ ํ…Œ๋งˆ๋Š” ์ƒ๊ฐํ–ˆ๋‹ค. ์•„๋งˆ ํ•œ๋‘ ๋ฒˆ ๋”. ๋…ผ์˜ํ•˜๋Š” ๋™์•ˆ ์•ฝ๊ฐ„ ํˆฌ๋ช…ํ•œ ์ฐฝ์€ ๊ฒŒ์ž„ / ์ฝ˜ํ…์ธ  ์œ„์— ์ฐฝ์„ ์˜ค๋ฒ„๋ ˆ์ดํ•˜๋Š” ๋งŽ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์šฉํ•˜๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฑฐ๋ž˜๋ฅผ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ํ…Œ๋งˆ๊ฐ€ ์™„์ „ํžˆ ๋ถˆํˆฌ๋ช… ํ•œ ๋ฐฐ๊ฒฝ์ƒ‰์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์•ฝ๊ฐ„ ํˆฌ๋ช…ํ•œ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด / ์ฐธ์กฐ๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ƒท์„ ์ œ์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์ ์„ ๋ฐ”๋กœ ํŒŒ์•…ํ•˜๊ณ  ์‹ค์ œ ์„ค์ •์„ ํ†ตํ•ฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

2.
๋˜ํ•œ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์˜ˆ์ œ / ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ƒˆ๋กœ์šด ๋นŒ๋“œ / ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๊ธ€๊ผด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์ฃผ๋Š” ์‹ค์šฉ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ ์„ธํŠธ / ๋นŒ๋“œ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ์‹œ์ž‘ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ฐ€๋ณ€์  ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ extra_fonts /์— ํ‘œ์‹œ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋” ์ž‘์—…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์ฃผ์ œ

438 ๋‹จ์ˆœํ™” ๋œ ๋””์ž์ธ

184 ๊ฐœ์˜ ์ƒˆ๋กœ์šด ๋””์ž์ธ / ์ƒ‰์ƒ (์ง€๊ธˆ์€ํ•˜์ง€ ์•Š์Œ).

help wanted in progress style

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฒด๋ฆฌ ํ…Œ๋งˆ : D

image

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;
}

๋ชจ๋“  43 ๋Œ“๊ธ€

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ํ…Œ๋งˆ๋Š” @itamago ์˜ ๋ผ์ดํŠธ ์Šคํƒ€์ผ์„ ๊ธฐ๋ฐ˜ ์œผ๋กœ์ด Gist์˜ SetupimGuiStyle ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์•ŒํŒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ†ต์ผํ•˜๊ธฐ ์œ„ํ•ด ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•˜๊ณ  ๋ฐ๊ณ  ์–ด๋‘ก๊ฒŒ ์ „ํ™˜ํ•˜๊ณ  ๋ฐฐ๊ฒฝ ์•ŒํŒŒ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ธ€๊ผด์˜ ๊ฒฝ์šฐ 18.0f ํฌ๊ธฐ์˜ Roboto-Regular.ttf ๋ฅผ ์‚ฌ์šฉ ํ•˜๊ณ 

Dark Style, no alpha. 2016-5-19_11-47-55_avoyd_3
Light Style, no alpha.  2016-5-19_11-47-48_avoyd_2
Dark Style, medium alpha. 2016-5-19_11-47-32_avoyd_0
Light Style, medium alpha. 2016-5-19_11-47-38_avoyd_1
Dark Style, low alpha.  2016-5-19_11-48-18_avoyd_4
Light Style, low alpha.  2016-5-19_11-48-34_avoyd_5

์•ˆ๋…•ํ•˜์„ธ์š” @ocornut ,
์„œ๋‘๋ฅด๋Š” ๊ฒƒ์€ ์ œ ์˜๋„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค : blush :,ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ…Œ๋งˆ ๊ฐœ์„  ์‚ฌํ•ญ์œผ๋กœ 1.50์˜ ์ถœ์‹œ ์˜ˆ์ • ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ ๋‹ค๋ฅธ ํ•œ๊ฐ€์ง€ : _emscripten_์— ๋Œ€ํ•œ imgui์˜ ๋น„๊ณต์‹ ํฌํŠธ๊ฐ€ ์ ์–ด๋„ _4_ ๊ฐœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์— ๊ณต์‹์ ์ธ ํฌํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ์Šค ์ธก๋ฉด์—์„œ, wasm ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ๋ฌด๋ฃŒ ๋ณด๋„ˆ์Šค๋กœ ์ œ๊ณต๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•„์ˆ˜๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ฒ ์ŠคํŠธ,

--RM

๋กœ๋ฒ ๋ฅดํ† ๊ฐ€ ETA๋ฅผ ์ค„ ์ˆ˜ ์—†์–ด์„œ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์›” ์ค‘์ˆœ๋ถ€ํ„ฐ ํƒ์ƒ‰ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์ž‘์—…์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ํ›„ ์ƒ‰์ƒ์„ ์‚ดํŽด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์–ด๋–ค ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋„ ๋งก์„ ์ˆ˜ ์—†์œผ๋ฉฐ ๋ฌด์—‡์ด๋“  emscripten์€ ์ƒˆ๋กœ์šด ์ƒ๊ฐ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” emscripten์„ ๋ชจ๋ฅด๊ณ  ์ •๋ณด์— ์ž…๊ฐ ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋„ค ์‚ฌ๋žŒ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ๋ถ€ํ•˜๊ณ  ๋ฌด์–ธ๊ฐ€๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ง„์ง€ํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๊ทธ๋“ค์€ ์Šค์Šค๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ํƒ€๋‹นํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๊ณต์‹ ์ €์žฅ์†Œ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ๋ถ€์ ์ธ ๋ถ€๋ถ„๊ณผ ๋ถ„๋ฅ˜ / ์œ ์ง€ ๊ด€๋ฆฌ / ํ”„๋ ˆ์  ํ…Œ์ด์…˜์—์žˆ๋Š” ์•…๋งˆ๋Š” ๊ทธ๋“ค์„ ์œ„ํ•ด ํ•  ์ˆ˜์—†๋Š” ๋งŽ์€ ์ผ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ์—ฌ๋Š” ์ผํšŒ์„ฑ์ด๋ฉฐ ๋” ๋งŽ์€ ์ž‘์—…์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ฐ•์š”ํ•˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ์ œ์•ˆ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์š”์ฒญ๋ฐ›์ง€ ์•Š๊ณ  ๊ธฐ์—ฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์žฅ๊ธฐ์ ์œผ๋กœ ์ผ์„ ๊ณ„์†ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ํฝ๋‹ˆ๋‹ค. :)

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋งˆ๋ฅด์™€ ์‘๋‹ต ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ €์—๊ฒŒ๋„ ์‹œ๊ฐ„์ด ์ •๋ง ๋ถ€์กฑํ•œ ์ž์›์ด๊ธฐ ๋•Œ๋ฌธ์— ์ €๋Š” ๋‹น์‹ ์„ ์™„์ „ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” 1.5 ๋…„ ์ „์— ํ•œ ๋ฒˆ์˜ ํฌํŠธ๋ฅผ ์ผ์ง€ ๋งŒ ์†”์งํžˆ ์–ด๋””์— ๋‘ ์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.
์ง€๊ธˆ์€ ๋Œ€๋ถ€๋ถ„ ์›น ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ์—์„œ imgui๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ์œผ๋ฉฐ imgui๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ํ‘œ์ค€์ด๋˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์ด๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํฌํŒ…ํ•˜๊ณ  ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋” ์•ˆ์ •์ ์ธ mutiplatform ์†”๋ฃจ์…˜์„ ์œ„ํ•ด ๋ชจ๋“  CSS / ๋ธŒ๋ผ์šฐ์ € / JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด‘๊ธฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค).

๋‚ด๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค? ๋„์ปค ํŒจ๋„ (3 ๊ฐœ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ), ํƒญ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๋” ๋ฉ‹์ง„ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? (๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ฐ”๋ž€๋‹ค : ๋ฏธ์†Œ :)

๋ฉ‹์ง„ ์ฝ”๋“œ์™€ ์ž‘๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

-๋กœ๋ฒ ๋ฅดํ† 

์—ฌ๊ธฐ์— ์Šคํƒ€์ผ์„ ๊ฒŒ์‹œํ•˜์„ธ์š”!
1.50์˜ ๊ฒฝ์šฐ ์ข‹์€ ์ˆซ์ž์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ƒ‰์ƒ ํ…Œ๋งˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค :)

์ž‘์—…์ด ๋๋‚˜๋ฉด ์—ฌ๊ธฐ์— ๋‚ด ํ…Œ๋งˆ๋ฅผ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
btw, ๋‹น์‹ ์€ ๋งค์šฐ ์ˆ™๋ จ ๋œ ์•„ํ‹ฐ์ŠคํŠธ ์นœ๊ตฌ (benfiquet)๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฐ€ ์ด๊ฒƒ์„ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋‚ด ๊บผ์•ผ
imgui

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 ๋กœ๋”๋ฅผ ๊ณต์‹ํ™”ํ•˜๋ ค๋Š” ์œ ํ˜น์ด ์ ์  ๋” ์ปค์กŒ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํฌ๊ธฐ์—์„œ๋Š” ๋ฉ‹์ง„ ์•คํ‹ฐ ์•จ๋ฆฌ์–ด์‹ฑ ๊ธ€๊ผด์„ ์–ป๊ธฐ๊ฐ€ ์–ด๋ ต ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํ•œ ๊ฐ€์ง€๋Š” ๋งŽ์€ ์Šคํƒ€์ผ์ด ํˆฌ๋ช…ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์•Œ๋ ค์ง„ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ / ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.

68747470733a2f2f692e696d6775722e636f6d2f6f444c593572592e706e67

theme

// 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 ํ…Œ๋งˆ ๊ธฐ๋ฐ˜

mc2001

childwindows

// 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 ์›”๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํด๋ž˜์‹ ํ…Œ๋งˆ๊ฐ€ ์•ฝ๊ฐ„ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋‚˜๋Š” ๋ถ‰์€ ๋ถ„ํ™์ƒ‰ ๋Œ€์‹  ํŒŒ๋ž€์ƒ‰ ์Œ์˜์„ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฒ„ํŠผ์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

image

  1. ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    StyleColorsClassic() , StyleColorsDark() , StyleColorsLight() .
    ์ด๋Ÿฌํ•œ ํ…Œ๋งˆ๋Š” ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ ๋ฐ ๋ถ„๊ธฐ์—์„œ ์œ ์ง€ (๋ฐ ๊ฐœ์„ ) ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

image

image

๊ธ€๊ผด์„๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์Œ์„ ์ œ์•ˆํ•˜๊ธฐ ์œ„ํ•ด๋กœ๋“œ ๋œ ๊ธ€๊ผด ์ค‘์—์„œ ๊ธ€๊ผด ์„ ํƒ ์ฝค๋ณด๋ฅผ ๊ณง ์ถ”๊ฐ€ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (ํ˜„์žฌ ๋‚ด๋ถ€ BeginCombo API์˜ ์„ธ ๋ฒˆ์งธ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ๋ฌด์—‡์„ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์•„ ๋‚ด ์ž๋งˆ์ž.)

  1. ImGuiWindowFlags_ShowBorders ์ฐฝ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์™„์ „ํžˆ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ํ…Œ๋‘๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‘ํ†ต์„ ๋œ์–ด์ค๋‹ˆ๋‹ค.
    ๋Œ€์‹  ์ƒˆ๋กœ์šด ๊ฐ’ style.WindowBorderSize , style.FrameBorderSize , style.PopupBorderSize ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์€ 0.0 ๋ฐ 1.0์„ ์˜๋ฏธํ•˜์ง€๋งŒ ์„ฑ๋Šฅ๊ณผ ์ค‘๋ณต๋˜๋Š” ์ด์œ ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‹ค์ œ๋กœ ๋” ๋‘๊ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ๋‘๋ฆฌ (์•ŒํŒŒ ์„ค์ •์— ๋”ฐ๋ผ ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ).
    ํ…Œ๋‘๋ฆฌ๋Š” ํ˜„์žฌ ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์ƒ์ž…๋‹ˆ๋‹ค. ์Šคํƒ€์ผ๋ง ์‹œ์Šคํ…œ์„ ์žฌ ์ž‘์—…ํ•˜๋ฉด์„œ ๋” ๋งŽ์€ / ๋” ๋‚˜์€ ์˜ต์…˜์„ ์†Œ๊ฐœ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์•„๋งˆ ๋ช‡ ๋‹ฌ ๋™์•ˆ์€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค (# 1223์˜ ์•„์ด๋””์–ด ์ฐธ์กฐ).

  2. ์ด์ œ ์Šคํƒ€์ผ ํŽธ์ง‘๊ธฐ๋Š” a) ์„ธ ๊ฐ€์ง€ ์Šคํ†ก ํ…Œ๋งˆ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .b) ์ €์žฅ / ๋˜๋Œ๋ฆฌ๊ธฐ๋ฅผ ์กฐ๊ธˆ ๋” ์ž˜ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ํ…Œ๋งˆ์—์„œ ์กฐ์ •ํ•  ๋•Œ ๋˜๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ํ•ญ์ƒ ๊ธฐ๋ณธ ํ…Œ๋งˆ์™€ ๋น„๊ตํ•˜๋Š” ๋Œ€์‹ ), c) FrameRounding ๋ฐ ๋‹ค๋ฅธ ํ…Œ๋‘๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ถ€๋™ ๋Œ€์‹  ํ™•์ธ๋ž€์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” "๊ฐ„๋‹จํ•œ ์„ค์ •"์„ ๋งจ ์œ„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

(ํŒŒํ‹ฐ์— ๋Šฆ์—ˆ์ง€๋งŒ ...)

๋‹ค์Œ์€ Microsoft ๋””์ž์ธ ์ง€์นจ (https://design.microsoft.com/)์„ ๋ชจ๋ฐฉ ํ•œ ๋‚ด ํ…Œ๋งˆ์ž…๋‹ˆ๋‹ค.

image

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๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ ๋กœ ๋ฉฐ์น  ์ „์— ์•…๋ช… ๋†’์€ ์› ๋Œ€์‹  ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์— ์‹ญ์ž๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

image
image

๊ฐ•์กฐ ํ‘œ์‹œ ์ฑ„์šฐ๊ธฐ (๋‘ฅ๊ทผ ์ฐฝ์„ ์ˆ˜์šฉํ•˜๊ธฐ์œ„ํ•œ ์›ํ˜•)๋Š” ๋ฒ„ํŠผ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ 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 ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ :

์Šคํฌ๋ฆฐ ์ƒท?

๋ฟก๋ฟก

์Šคํฌ๋ฆฐ ์ƒท?

image

  • ์™ผ์ชฝ : Darcula ์Šคํƒ€์ผ์˜ imgui
  • ์˜ค๋ฅธ์ชฝ : Darcula ์Šคํƒ€์ผ์˜ IntelliJ IDEA

๊ฐ€๋Šฅํ•œ ํ•œ ํ…Œ๋งˆ ์ œ์•ˆ์„ํ•˜๊ณ  ์‹ถ์€๋ฐ ๊ทธ๋ ˆ์ด / ๋‹คํฌ ํ…Œ๋งˆ์ž…๋‹ˆ๋‹ค.
์ €๋Š” UE4์™€ ๋น„์Šทํ•œ ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ƒ๊ฐ ํ•ด๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
capture

์ด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

image

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;
}

์–ด๋‘์šด ํ…Œ๋งˆ
imgui

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! ์›๋ž˜ ์Šค ๋‹ˆํŽซ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

unaligned

์กฐ๊ธˆ '๊ฐœ๋ฏธ'์ด์ง€๋งŒ ๋ณด์‹œ๋‹ค์‹œํ”ผ '-'์™€ '+'๋Š” ๋ฒ„ํŠผ ์ค‘์•™์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

# 1776์— ๊ฒŒ์‹œ ๋œ @ebachard์˜ LightGreen ์Šคํƒ€์ผ ๋ณต์‚ฌ (์ง€๊ธˆ์€ ๋‹ค๋ฅธ ์ฃผ์ œ๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
capture du 2018-04-26 20-42-40

// 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 % ๋งŒ ๋ฒˆ์—ญ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค).

์ข…์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • OpenGL ๋“œ๋ผ์ด๋ฒ„
  • ์—ฐ๊ฒฐ๋œ ์›น์บ  (์ €์žฅ์†Œ์— ์„ค๋ช… ๋œ๋Œ€๋กœ Logitech ๊ถŒ์žฅ)

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…Œ๋งˆ ( "Prรฉfรฉrences"ํƒญ ์ฐธ์กฐ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์—ฐํ•œ ์ดˆ๋ก์ƒ‰
  • ์–ด๋‘์šด
  • ๊ถŒ์œ„ ์žˆ๋Š”
  • ํ•˜๋Š˜์ƒ‰
  • Windows (๊ธฐ๋ณธ๊ฐ’)

์‹œ์ž‘ํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ๋œ ์›น์บ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค (๊ณง ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค).

์ œ๋ฐœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ : ๋‚˜๋Š” ํ”„๋กœ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค ;-)

๋งํฌ : https://framagit.org/ericb/miniDart

๋‚ด ํ…Œ๋งˆ๋Š” Photoshop์˜ UI์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. UI๊ฐ€ ํ•ญ์ƒ์ฃผ์˜๋ฅผ ๋Œ์ง€ ์•Š๋„๋ก ์–ด๋‘์šด ์ฐจ์ฝœ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ฐฝ ํฌ๊ธฐ ์กฐ์ • ํ•ธ๋“ค์ด๋‚˜ ๊ตฌ๋ถ„์„ ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ํ•ญ๋ชฉ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์ฃผํ™ฉ์ƒ‰ ์•…์„ผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉํ•ด๊ฐ€๋˜์ง€ ์•Š๋Š” ์•ฝ๊ฐ„์˜ ์ƒ‰์ƒ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ผํ•  ๋•Œ.

Image of Derydoca Engine

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"๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ƒ‰์ƒ๊ณผ ์Šคํƒ€์ผ๋ง ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๊น”๋”ํ•˜๊ณ ๋ณด๊ธฐ ํŽธํ•˜๋ฉฐ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ / ์Šค์œ„ํŠธ์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

greyflat
greyframed

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(); ํ˜ธ์ถœํ•˜๋ฉด ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.
Default

๋˜๋Š” ๋‹ค๋ฅธ ์ƒ‰์ƒ ์„ธํŠธ๋กœ
// From https://coolors.co/1f2421-725ac1-8d86c9-eca400-dce1de ; EditorColorScheme::SetColors(0x1F2421FF /* Background */, 0xDCE1DEFF /* Text */, 0x725AC1FF /* MainColor */, 0x8D86C9FF /* MainAccent */, 0xECA400FF /* Highlight */ );

๋‚˜๋Š” ์–ป๋‹ค :
Dark Purple

๋˜๋Š”
// From : https://coolors.co/c7dfc5-dbdddb-bbddb8-373737-9b287b ; EditorColorScheme::SetColors(0xC7DFC5FF, 0x373737FF, 0x86A586FF, 0xBBDDB8FF, 0x9B287BFF);

Greenpastel

๋ˆ„๊ตฌ๋“ ์ง€ ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ์‹ถ๋‹ค๋ฉด ์ˆ˜์—…์ด ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.
`
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;
    }
};`

๋˜ ๋‹ค๋ฅธ ์–ด๋‘์šด ์ฃผ์ œ :
image

    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 ํ…Œ๋งˆ

image

    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 ์Šคํƒ€์ผ์˜ ํ…Œ๋งˆ์ž…๋‹ˆ๋‹ค.

image

    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);

SonicRiders_Ahl9Mhw7S2

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์—์žˆ๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์„ค์ •์„ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
screenshot

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;

๋‚ด ๊ฒŒ์ž„ ์—”์ง„ ์˜ ์–ด๋‘์šด ํ…Œ๋งˆ :
ImguiTheme

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;
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
5 / 5 - 1 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

mkanakis picture mkanakis  ยท  3์ฝ”๋ฉ˜ํŠธ

KaungZawHtet picture KaungZawHtet  ยท  3์ฝ”๋ฉ˜ํŠธ

the-lay picture the-lay  ยท  3์ฝ”๋ฉ˜ํŠธ

mnemode2 picture mnemode2  ยท  3์ฝ”๋ฉ˜ํŠธ

ghost picture ghost  ยท  3์ฝ”๋ฉ˜ํŠธ