C++ Как сделать rgb полоску

Начинающий
Статус
Оффлайн
Регистрация
15 Дек 2023
Сообщения
9
Реакции[?]
0
Поинты[?]
0
Сап парни, столкнулся с проблемой. Пилю читикс на новую игрульку в стиме с imgui. Делаю гуишку неверлуса, не получается сделать rgb полоску над вотермаркой.Вообще нет идей, как можно реализовать(
 
Начинающий
Статус
Оффлайн
Регистрация
9 Ноя 2021
Сообщения
56
Реакции[?]
6
Поинты[?]
3K
Сап парни, столкнулся с проблемой. Пилю читикс на новую игрульку в стиме с imgui. Делаю гуишку неверлуса, не получается сделать rgb полоску над вотермаркой.Вообще нет идей, как можно реализовать(
 
Начинающий
Статус
Оффлайн
Регистрация
15 Дек 2023
Сообщения
9
Реакции[?]
0
Поинты[?]
0
Stop Staring At the Shadows
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
518
Реакции[?]
497
Поинты[?]
86K
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,002
Реакции[?]
86
Поинты[?]
23K
Сап парни, столкнулся с проблемой. Пилю читикс на новую игрульку в стиме с imgui. Делаю гуишку неверлуса, не получается сделать rgb полоску над вотермаркой.Вообще нет идей, как можно реализовать(
C++:
void ImDrawRectRainbow(int x, int y, int width, int height, float& flRainbow) {
    ImDrawList* pDrawList;
    const auto& WindowDrawList = ImGui::GetWindowDrawList();
    ImColor colColor(0, 0, 0);
    float Speed;
    flRainbow += Speed = 0.003f;
    if (flRainbow > 1.f) flRainbow = 0.f;

    for (int i = 0; i < width; i++) {
        float hue = (1.f / (float)width) * i;
        hue -= flRainbow;
        if (hue < 0.f) hue += 1.f;

        ImColor colRainbow = colColor.HSV(hue, 1.f, 1.f);
        pDrawList = WindowDrawList;
        WindowDrawList->AddRectFilled(ImVec2(x + i, y), ImVec2(width, height), colRainbow.operator ImU32());
    }
}


call (В бегине):

if (1) {
    ImGui::SetNextWindowSize(ImVec2(155.000f, 77.000f), ImGuiCond_Once);
    ImGui::SetNextWindowPos(ImVec2(10, 25));
    ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
    static float Rainbow;
    const auto& CursorPos = ImGui::GetWindowPos();
    ImDrawRectRainbow(CursorPos.x + 0, CursorPos.y + 0, ImGui::GetWindowSize().x + 240.000f, CursorPos.y + 2, Rainbow);
    ImDrawRectRainbow(CursorPos.x + 0, CursorPos.y + 240, ImGui::GetWindowSize().x + 240.000f, CursorPos.y + 2, Rainbow);

    ImGui::PopStyleVar();
}
 
Начинающий
Статус
Оффлайн
Регистрация
15 Дек 2023
Сообщения
9
Реакции[?]
0
Поинты[?]
0
C++:
void ImDrawRectRainbow(int x, int y, int width, int height, float& flRainbow) {
    ImDrawList* pDrawList;
    const auto& WindowDrawList = ImGui::GetWindowDrawList();
    ImColor colColor(0, 0, 0);
    float Speed;
    flRainbow += Speed = 0.003f;
    if (flRainbow > 1.f) flRainbow = 0.f;

    for (int i = 0; i < width; i++) {
        float hue = (1.f / (float)width) * i;
        hue -= flRainbow;
        if (hue < 0.f) hue += 1.f;

        ImColor colRainbow = colColor.HSV(hue, 1.f, 1.f);
        pDrawList = WindowDrawList;
        WindowDrawList->AddRectFilled(ImVec2(x + i, y), ImVec2(width, height), colRainbow.operator ImU32());
    }
}


call (В бегине):

if (1) {
    ImGui::SetNextWindowSize(ImVec2(155.000f, 77.000f), ImGuiCond_Once);
    ImGui::SetNextWindowPos(ImVec2(10, 25));
    ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
    static float Rainbow;
    const auto& CursorPos = ImGui::GetWindowPos();
    ImDrawRectRainbow(CursorPos.x + 0, CursorPos.y + 0, ImGui::GetWindowSize().x + 240.000f, CursorPos.y + 2, Rainbow);
    ImDrawRectRainbow(CursorPos.x + 0, CursorPos.y + 240, ImGui::GetWindowSize().x + 240.000f, CursorPos.y + 2, Rainbow);

    ImGui::PopStyleVar();
}
заебись, thx
 
Сверху Снизу