Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

C++ ImGui Tricks - библиотека с полезными дополнениями для ImGui.

эс-те́т
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
8 Дек 2019
Сообщения
178
Реакции
270
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В данный момент имеет в себе:
  • Систему уведомлений для вашего меню.
  • Функции для упрощения в разработке различных анимаций.
  • Некоторые не стандартные виджеты.
  • Касмомизированная структура ImColor с дополнительным конструктором из цветового кода HEX HTML и методом получения HEX HTML из уже существующего цвета.
Пожалуйста, авторизуйтесь для просмотра ссылки.


Функционал со временем будет расширяться.

Код:
Expand Collapse Copy
void RenderMyGUI() {
   ...
   ImGui::Checkbox("Enable Animation", &enable_animation);
   float trickFloat = ImTricks::Animations::FastFloatLerp("header", enable_animation, 0.f, 1.f, 0.05f);
   ImVec2 pos1 = ImTricks::Animations::FastImVec2Lerp("pos1", enable_animation, ImVec2(0, 50), ImVec2(100, 50), 5);
   ImVec2 pos2 = ImTricks::Animations::FastImVec2Lerp("pos2", enable_animation, ImVec2(413, 80), ImVec2(513, 80), 5);
   draw->AddRectFilled(p + pos1, p + pos2, ImTricks::Animations::FastColorLerp(ImColor(255, 0, 0), ImColor(0, 255, 0), trickFloat));
   ...
}

Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
Expand Collapse Copy
void RenderMyGUI() {
   ...
   if (ImGui::Button("Create Notify", { 120, 25 }))
       ImTricks::NotifyManager::AddNotify("The notification was displayed successfully.", ImTrickNotify_Success);
   ...

   ImTricks::NotifyManager::HandleNotifies(ImGui::GetOverlayDrawList());
}

1629737360989.png
Код:
Expand Collapse Copy
void RenderMyGUI() {
   ...
  static ImColor col = ImColor(23, 23, 23);
  ImTricks::Widgets::ColorEdit4("test", col, NULL); // Окорнут так и не добавил редактирование ImColor при помощи стандартного ColorEdit
   ...
}
Код:
Expand Collapse Copy
   ...
   ImTrickyColor color = ImTrickyColor("#eb4034ff");
   ImGui::Text(color.HTML().c_str());
   ...
Код:
Expand Collapse Copy
void RenderMyGUI() {
   ...
ImVec2 points[] = { p + ImVec2(0, 75),p + ImVec2(75, 0), p + ImVec2(150, 25), p + ImVec2(150, 150), p + ImVec2(75, 200), p + ImVec2(0, 150) }; 
ImTrickyColor colors[] = { ImTrickyColor("#00ffffff"), ImTrickyColor("#00ffffff"),ImTrickyColor("#00ffffff"), ImTrickyColor("#e600ffff"),ImTrickyColor("#e600ffff"), ImTrickyColor("#e600ffff") }; 
ImTricks::DrawList::AddConvexPolyFilledMultiColor(draw, points, colors, 6);
   ...
}
 
Последнее редактирование:
Окорнут так и не добавил редактирование ImColor при помощи стандартного ColorEdit

Так может потому что окорнут сам и говорит, мол ImColor устарел и лучше избегать его использование? В один день ведь можно проснуться, обновить имгуй и начать чинить ошибки, вызванные окончательным удалением ImColor
bvmQ2fO.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добавлена кастомизированная структура Im(Tricky)Color с конструктором цвета из HEX HTML.

Код:
Expand Collapse Copy
ImTrickyColor color = ImTrickyColor("#eb4034ff");
ImGui::Text(color.HTML().c_str());

А так же добавлен ImTricks::Animations::FastImVec2Lerp.

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добавлены:
  • ImTricks::DrawList::AddTriangleFilledMultiColor (Автор -
    Пожалуйста, авторизуйтесь для просмотра ссылки.
    )
  • ImTricks::DrawList::AddConvexPolyFilledMultiColor (Автор -
    Пожалуйста, авторизуйтесь для просмотра ссылки.
    )
 
Я конечно может чего не понимаю, но наверное понимаю.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Добавляем, но не удаляем? Опираясь только лишь на то что тик уже прошел. Только зачем?
C++:
Expand Collapse Copy
for (int i = 0; i < notifies.size(); i++)
{
    auto current_notify = notifies.at(i);
    if (current_notify.time < GetTickCount64())
    {
        notifies.erase(notifies.begin() + i);
        continue;
    }
    DrawNotify(current_notify);            
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я конечно может чего не понимаю, но наверное понимаю.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Добавляем, но не удаляем? Опираясь только лишь на то что тик уже прошел. Только зачем?
C++:
Expand Collapse Copy
for (int i = 0; i < notifies.size(); i++)
{
    auto current_notify = notifies.at(i);
    if (current_notify.time < GetTickCount64())
    {
        notifies.erase(notifies.begin() + i);
        continue;
    }
    DrawNotify(current_notify);           
}


Исправил, спасибо!
 
Добавлена кастомизированная структура Im(Tricky)Color с конструктором цвета из HEX HTML.

Код:
Expand Collapse Copy
ImTrickyColor color = ImTrickyColor("#eb4034ff");
ImGui::Text(color.HTML().c_str());

А так же добавлен ImTricks::Animations::FastImVec2Lerp.

Пожалуйста, авторизуйтесь для просмотра ссылки.
зачем? если ImU32 который используется сейчас в имгуи почти везде это и есть цвет в хексе.
T0dCUV3.png

и для этого были дефайны IM_COL32 которые через сдвиги сделаю тебе хекс подобное значение из ргба инта
и для ImColor есть конструктор который примет ImU32 в который снова же можно передать 0xFFFFFFFF
 
Мне кажется, хорошей идеей будет добавление третьего параметра функции AddNotify() который будет отвечать за место появления уведомления, например верхний левый угол, правый верхний, и так далее.
 
Назад
Сверху Снизу