Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос ImGui DrawList

Участник
Участник
Статус
Оффлайн
Регистрация
6 Сен 2020
Сообщения
754
Реакции
366
C++:
Expand Collapse Copy
draw_list->AddRectFilled(ImVec2(0, 0), ImVec2(50, 50), menu_color);

ImVec2(0, 0) - позиция
Как сделать так что-бы он рисовался в менюшке а не на экране?
1611842644068.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
draw_list->AddRectFilled(ImVec2(0, 0), ImVec2(50, 50), menu_color);

ImVec2(0, 0) - позиция
Как сделать так что-бы он рисовался в менюшке а не на экране?
Посмотреть вложение 128001
Тебе надо получить позицию меню

В имгуи для этого есть ImGui::GetWindowPos()

Код с ним будет выглядеть так:
C++:
Expand Collapse Copy
draw_list->AddRectFilled(ImGui::GetWindowPos(), ImVec2(ImGui::GetWindowPos().x + 50, ImGui::GetWindowPos().y + 50), menu_color);
 
Тебе надо получить позицию меню

В имгуи для этого есть ImGui::GetWindowPos()

Код с ним будет выглядеть так:
C++:
Expand Collapse Copy
draw_list->AddRectFilled(ImGui::GetWindowPos(), ImVec2(ImGui::GetWindowPos().x + 50, ImGui::GetWindowPos().y + 50), menu_color);
1611843337111.png

C++:
Expand Collapse Copy
ImGuiStyle* style = &ImGui::GetStyle();
    ImDrawList* draw_list = ImGui::GetBackgroundDrawList();
    menuStyle();
    windowSize(566, 370);
    if (ImGui::Begin("menu", &open, menuFlags))
    {
        ImVec2 window_pos = ImGui::GetWindowPos();
        draw_list->AddRectFilled(ImGui::GetWindowPos(), ImVec2(ImGui::GetWindowPos().x + 50, ImGui::GetWindowPos().y + 50), menu_color);

        nextElementPos(0, 1);
        ImGui::BeginChild("tabs", ImVec2(566, 30));
        {
            for (int i = 0; i < IM_ARRAYSIZE(tabs); i++) {
                if (ImGui::Button(tabs[i].c_str(), ImVec2(100, 30)))
                    active_tab = i;
                ImGui::SameLine();
            }
        }
        ImGui::EndChild();

        if (ImGui::Button("unhook"))
            hooks->uninstall();
    }
    ImGui::End();
чё-то не рисуеться
 
C++:
Expand Collapse Copy
ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(ImGui::GetWindowPos().x, ImGui::GetWindowPos().y + 1), ImVec2(ImGui::GetWindowPos().x + 566, ImGui::GetWindowPos().y + 1), menu_color);
Посмотреть вложение 128010
кто куда
а ты читать документацию имгуи и смотреть демо
Пожалуйста, авторизуйтесь для просмотра ссылки.
ImGui::GetForegroundDrawList() юзай блин........
 
C++:
Expand Collapse Copy
draw_list->AddRectFilled(ImVec2(0, 0), ImVec2(50, 50), menu_color);

ImVec2(0, 0) - позиция
Как сделать так что-бы он рисовался в менюшке а не на экране?
Посмотреть вложение 128001
Вот пример...
C++:
Expand Collapse Copy
if (ImGui::Begin(...)) {
    auto& window = *ImGui::GetCurrentWindow();
    auto& drawlist = *window.DrawList;
    auto pos = window.Pos;
   
    draw.AddRectFilled(pos, {pos.x + 50, pos.y + 50} /*pos + ImVec2(50, 50)*/, IM_COL32(255, 255, 255, 255));
    ...
    ImGui::End();
}
 
Назад
Сверху Снизу