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);
   ...
}
 
Последнее редактирование:
Thanks for the share and Great Job!
 
Окорнут так и не добавил редактирование 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.

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Сделай цвет из hsv в float
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добавлены:
  • 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
 
very nuce opost lil pesornsa
 
Мне кажется, хорошей идеей будет добавление третьего параметра функции AddNotify() который будет отвечать за место появления уведомления, например верхний левый угол, правый верхний, и так далее.
 
Назад
Сверху Снизу