Гайд [ImGui] Gradient Buttons [Пример Indigo]

Делать еще гайды?

  • Да

    Голосов: 11 61.1%
  • Нет(Да)

    Голосов: 1 5.6%
  • Мне на тебя насрать

    Голосов: 3 16.7%
  • Можно, если у тебя есть время

    Голосов: 3 16.7%

  • Всего проголосовало
    18
  • Опрос закрыт .
///
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
528
Реакции
114
qq all Пастерс бойс энд гёрлс!
Сегодня сделаем себе в чит красивые баттоны (При украсим, так сказать)
Вот как будет выглядеть:
1. Просто в стоке:
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. При наведении курсора:
Пожалуйста, авторизуйтесь для просмотра ссылки.

P.S. Если кто то еще хочет что либо по Indigo пишите в ЛС - предлагайте кароче)
А мы погнали)
imgui.cpp
Нажимаем Ctrl+F, и в строку поиска вводим: "bool ImGui::ButtonEx"
Screen:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Заменяем Этот код:
Код:
Expand Collapse Copy
bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags)
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const ImVec2 label_size = CalcTextSize(label, NULL, true);

    ImVec2 pos = window->DC.CursorPos;
    if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset)
        pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y;
    ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f);

    const ImRect bb(pos, pos + size);
    ItemSize(bb, style.FramePadding.y);
    if (!ItemAdd(bb, &id))
        return false;

    if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat;
    bool hovered, held;
    bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);

   
    const ImU32 col = GetColorU32((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
    RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding);
    RenderTextClipped(bb.Min + style.FramePadding, bb.Max - style.FramePadding, label, NULL, &label_size, style.ButtonTextAlign, &bb);

   
    //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup))
    //    CloseCurrentPopup();

    return pressed;
}
На этот код:
Код:
Expand Collapse Copy
bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags)
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const ImVec2 label_size = CalcTextSize(label, NULL, true);

    ImVec2 pos = window->DC.CursorPos;
    if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset)
        pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y;
    ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f);

    const ImRect bb(pos, pos + size);
    ItemSize(bb, style.FramePadding.y);
    if (!ItemAdd(bb, &id))
        return false;

    if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat;
    bool hovered, held;
    bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);

    auto color_grey = ImGui::GetColorU32(ImVec4(0.4, 0.4, 0.4, 0.65));
    auto color_black = ImGui::GetColorU32(ImVec4(0.1, 0.1, 0.1, 0.45));

   
   
    const ImU32 col = GetColorU32((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);

    RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding);
    RenderTextClipped(bb.Min + style.FramePadding, bb.Max - style.FramePadding, label, NULL, &label_size, style.ButtonTextAlign, &bb);
    window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImVec4(0.6f, 0.6f, 0.6f, 1.0f)));

    window->DrawList->AddRectFilledMultiColor(bb.Min, bb.Max, color_grey, color_grey, color_black, color_black);

    return pressed;
}
Этот спойлер для тех кто хочет сделать свечение при наводке другого цвета)
Если хотите что бы я добавил к этому гайду как добавить свечение другого цвета, или серый заменить на любой другой, то отпишите в коменты или в ЛС форума с пометкой: "Цвет"
Всех Чпок :*
P.S. x2 Кароче все как всегда очень просто, но прошу не писать тех, кто хочет написать сообщение по типу: "Да это же изи, просто изи, ты лох, я это за 2 секи сделаю"
Такие люди будут игнориться, я делаю гайд для тех кому не понятно как и куда что вставить)
Тех кто не понял как что куда вставлять жду в ЛС форума...... Надеюсь таких не будет :CoolStoryBob:




 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Годно)
Ждём ещё гайдиков
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
qq all Пастерс бойс энд гёрлс!
Сегодня сделаем себе в чит красивые табы (При украсим, так сказать)
Вот как будет выглядеть:
1. Просто в стоке:
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. При наведении курсора:
Пожалуйста, авторизуйтесь для просмотра ссылки.

P.S. Если кто то еще хочет что либо по Indigo пишите в ЛС - предлагайте кароче)
А мы погнали)
imgui.cpp
Нажимаем Ctrl+F, и в строку поиска вводим: "bool ImGui::ButtonEx"
Screen:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Заменяем Этот код:
Код:
Expand Collapse Copy
bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags)
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const ImVec2 label_size = CalcTextSize(label, NULL, true);

    ImVec2 pos = window->DC.CursorPos;
    if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset) // Try to vertically align buttons that are smaller/have no padding so that text baseline matches (bit hacky, since it shouldn't be a flag)
        pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y;
    ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f);

    const ImRect bb(pos, pos + size);
    ItemSize(bb, style.FramePadding.y);
    if (!ItemAdd(bb, &id))
        return false;

    if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat;
    bool hovered, held;
    bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);

    // Render
    const ImU32 col = GetColorU32((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
    RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding);
    RenderTextClipped(bb.Min + style.FramePadding, bb.Max - style.FramePadding, label, NULL, &label_size, style.ButtonTextAlign, &bb);

    // Automatically close popups
    //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup))
    //    CloseCurrentPopup();

    return pressed;
}
На этот код:
Код:
Expand Collapse Copy
bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags)
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const ImVec2 label_size = CalcTextSize(label, NULL, true);

    ImVec2 pos = window->DC.CursorPos;
    if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset) // Try to vertically align buttons that are smaller/have no padding so that text baseline matches (bit hacky, since it shouldn't be a flag)
        pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y;
    ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f);

    const ImRect bb(pos, pos + size);
    ItemSize(bb, style.FramePadding.y);
    if (!ItemAdd(bb, &id))
        return false;

    if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat;
    bool hovered, held;
    bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);

    auto color_grey = ImGui::GetColorU32(ImVec4(0.4, 0.4, 0.4, 0.65));
    auto color_black = ImGui::GetColorU32(ImVec4(0.1, 0.1, 0.1, 0.45));

    // Render
    //window->DrawList->AddRectFilledMultiColor(bb.Min, bb.Max, color_grey, color_grey, color_black, color_black); // Main gradient.
    const ImU32 col = GetColorU32((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);

    RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding);
    RenderTextClipped(bb.Min + style.FramePadding, bb.Max - style.FramePadding, label, NULL, &label_size, style.ButtonTextAlign, &bb);
    window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImVec4(0.6f, 0.6f, 0.6f, 1.0f)));

    window->DrawList->AddRectFilledMultiColor(bb.Min, bb.Max, color_grey, color_grey, color_black, color_black); // Main gradient.
                                                                                                                // Automatically close popups
                                                                                                                 //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup))
                                                                                                                 //    CloseCurrentPopup();

    return pressed;
}
Этот спойлер для тех кто хочет сделать свечение при наводке другого цвета)
Если хотите что бы я добавил к этому гайду как добавить свечение другого цвета, или серый заменить на любой другой, то отпишите в коменты или в ЛС форума с пометкой: "Цвет"
Всех Чпок :*
P.S. x2 Кароче все как всегда очень просто, но прошу не писать тех, кто хочет написать сообщение по типу: "Да это же изи, просто изи, ты лох, я это за 2 секи сделаю"
Такие люди будут игнориться, я делаю гайд для тех кому не понятно как и куда что вставить)
Тех кто не понял как что куда вставлять жду в ЛС форума...... Надеюсь таких не будет :CoolStoryBob:




Когда пастишь тему хотя-бы коменты переводи
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Учту, учту)) Критику люблю) По твоему мнению добавлять еще как цвет изменить для чайников?
я делаю гайд для тех кому не понятно как и куда что вставить) Тех кто не понял как что куда вставлять жду в ЛС форума​
Я хоть читаю , то что пишут
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Годно)
Ждём ещё гайдиков
Годно? Дам тебе крутой гайд.
Чекаешь слайдеры и чекбоксы. Там ты найдёшь ренедры фреймов, и просто делаешь MultiColor.
Сложно пиздец. Надо под каждый элемент в меню пилить по теме.
Тема - Gradient Slider
Тема - Gradient CheckBox
Тема - Gradient Child
Тема - Gradient Dildo
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Годно? Дам тебе крутой гайд.
Чекаешь слайдеры и чекбоксы. Там ты найдёшь ренедры фреймов, и просто делаешь MultiColor.
Сложно пиздец. Надо под каждый элемент в меню пилить по теме.
Тема - Gradient Slider
Тема - Gradient CheckBox
Тема - Gradient Child
Тема - Gradient Dildo
Dildo, то что нужно
 
Годно? Дам тебе крутой гайд.
Чекаешь слайдеры и чекбоксы. Там ты найдёшь ренедры фреймов, и просто делаешь MultiColor.
Сложно пиздец. Надо под каждый элемент в меню пилить по теме.
Тема - Gradient Slider
Тема - Gradient CheckBox
Тема - Gradient Child
Тема - Gradient Dildo
Нет, я имел ввиду добавить сюда в 3 шаг) Зачем создавать еще тему, если эту можно дополнить?)
А гайд расчитан скорее на тех кто не понимает как сделать)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Самый полезный гайд
 
Назад
Сверху Снизу