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

Исходник ImGui Perfect circle image

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
11 Май 2020
Сообщения
115
Реакции
91
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
void ImGui::AddCircleImageFilled(ImTextureID user_texture_id, const ImVec2& centre, float radius, ImU32 col, int num_segments)
{
    auto window = GetCurrentWindow();
    if (window->SkipItems)
        return;

    ImGuiContext& g = *GImGui;
    window->DrawList->PathClear();

    if ((col & IM_COL32_A_MASK) == 0 || num_segments <= 2)
        return;


    const bool push_texture_id = window->DrawList->_TextureIdStack.empty() || user_texture_id != window->DrawList->_TextureIdStack.back();
    if (push_texture_id)
        window->DrawList->PushTextureID(user_texture_id);

    int vert_start_idx = window->DrawList->VtxBuffer.Size;
    const float a_max = IM_PI * 2.0f * ((float)num_segments - 1.0f) / (float)num_segments;
    window->DrawList->PathArcTo(centre, radius, 0.0f, a_max, num_segments - 1);
    window->DrawList->PathFillConvex(col);
    int vert_end_idx = window->DrawList->VtxBuffer.Size;

    ImGui::ShadeVertsLinearUV(window->DrawList, vert_start_idx, vert_end_idx, ImVec2(centre.x - radius, centre.y -radius), ImVec2(centre.x + radius, centre.y + radius), ImVec2(0,0), ImVec2(1, 1), true);

    if (push_texture_id)
        window->DrawList->PopTextureID();


}

usage :
Код:
Expand Collapse Copy
    ImGui::AddCircleImageFilled(
            my_texture,
            ImGui::GetWindowPos() + ImGui::GetWindowSize() - ImVec2(30, 30),
            30.f,
            ImColor(255,255,255),
            360
        );

ss:
1606733773743.png
 
Хороший гайд, мб в каком нибудь приватном проекте через это сделаю показ аватарки, или круглого лого
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а этого кто-то не знал?
в def imgui этого нет, при запросе imgui circle imgage выводи труху
1606735222226.png

поэтому да, кто-то не знал и сделал сам за 2-3 минуты. А чтобы люди не теряли на поиски свои 30-40 минут в надежде найти что-то - еще и дропнул в opensource.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
спасибо, полезная вещь)
 
в def imgui этого нет, при запросе imgui circle imgage выводи труху
поэтому да, кто-то не знал и сделал сам за 2-3 минуты. А чтобы люди не теряли на поиски свои 30-40 минут в надежде найти что-то - еще и дропнул в opensource.
эм
Код:
Expand Collapse Copy
pDrawList->AddImageRounded(pUserAvatar, ImVec2(rectFrame.Min.x + 8.0f, rectFrame.Max.y - 5.0f - M_GROUP_HEIGHT), ImVec2(rectFrame.Min.x + 8.0f + M_GROUP_HEIGHT, rectFrame.Max.y - 5.0f), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 36.f);
выведет тебе идеальную круглую картинку, упс.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
эм
Код:
Expand Collapse Copy
pDrawList->AddImageRounded(pUserAvatar, ImVec2(rectFrame.Min.x + 8.0f, rectFrame.Max.y - 5.0f - M_GROUP_HEIGHT), ImVec2(rectFrame.Min.x + 8.0f + M_GROUP_HEIGHT, rectFrame.Max.y - 5.0f), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 36.f);
выведет тебе идеальную круглую картинку, упс.
берем деф симпл -> пробуем сделать как ты написал -> упс
1606846765526.png

Если для тебя это perfect, то на этом мои полномочия все
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
эм изменить значение rounding, не?
Я вижу,вы самый умный.
Какое значение rounding? в аргументах метода?)
Давайте проведем тест:
Код:
Expand Collapse Copy
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(100,100), ImVec2(200, 200), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 36.f);
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(300, 300), ImVec2(400, 400), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 360.f);
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(500, 500), ImVec2(600, 600), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 100.f);
1606847285075.png

Если вас так много умных, почему бы просто самим не попробовать сделать сначала то, о чем вы пишите?)
 
Я вижу,вы самый умный.
Какое значение rounding? в аргументах метода?)
Давайте проведем тест:
Код:
Expand Collapse Copy
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(100,100), ImVec2(200, 200), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 36.f);
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(300, 300), ImVec2(400, 400), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 360.f);
ImGui::GetOverlayDrawList()->AddImageRounded(my_texture, ImVec2(500, 500), ImVec2(600, 600), ImVec2(0, 0), ImVec2(1, 1), 0xFFFFFFFF, 100.f);
Посмотреть вложение 116228
Если вас так много умных, почему бы просто самим не попробовать сделать сначала то, о чем вы пишите?)
эм это не мы самые умные, это ты тупой, смотри на IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER смени значение на 2 или 3 и будет тебе счастье, знал бы сам о чем ты пишешь вообще.
берем деф симпл -> пробуем сделать как ты написал -> упс
Посмотреть вложение 116227
Если для тебя это perfect, то на этом мои полномочия все
но для меню пойдет же, не? для аватаров в принципе не нужны огромные пикчи вообще
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
эм это не мы самые умные, это ты тупой, смотри на IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER смени значение на 2 или 3 и будет тебе счастье, знал бы сам о чем ты пишешь вообще.

но для меню пойдет же, не? для аватаров в принципе не нужны огромные пикчи вообще
Ой-ой-ой, заинька обиделась и перешла на личности)
Напомню, что я работаю на данный момент в деф симпле ,а в деф симлпе стоит гуи 1.69 в котором нет IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER да и вообще ArcFastVtx.
1606921285744.png

Иначе говоря, ты высрал из себя опять "умную" мысль и нихуя не проверил.
И да, мне на угловую хуету,которую ты называешь "perfect circle" смотреть неприятно (от слова совсем).
Мне проще написать метод ,убив на это 5 минут, нежели чем обновлять фулл гуи и тащить за собой хуеву тучу проблем и несостыковок, что может убить от часу моего времени.
 
Ой-ой-ой, заинька обиделась и перешла на личности)
Напомню, что я работаю на данный момент в деф симпле ,а в деф симлпе стоит гуи 1.69 в котором нет IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER да и вообще ArcFastVtx.
Посмотреть вложение 116374
Иначе говоря, ты высрал из себя опять "умную" мысль и нихуя не проверил.
И да, мне на угловую хуету,которую ты называешь "perfect circle" смотреть неприятно (от слова совсем).
Мне проще написать метод ,убив на это 5 минут, нежели чем обновлять фулл гуи и тащить за собой хуеву тучу проблем и несостыковок, что может убить от часу моего времени.
ясно. чел избегает обновлений и винит похуй кого, главное не себя, ибо сидит на задроченном симпле и придумывает на голову себе проблем. если для тебя обновить имгуи или сменить базу - проблема на несколько часов, то до связи.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ясно. чел избегает обновлений и винит похуй кого, главное не себя, ибо сидит на задроченном симпле и придумывает на голову себе проблем. если для тебя обновить имгуи или сменить базу - проблема на несколько часов, то до связи.
ясно, чел думает, что ради рендера ссаного кружка надо обновлять гуи или (с какого-то хуя) менять базу,ну ок че. держи в курсе.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ясно. чел избегает обновлений и винит похуй кого, главное не себя, ибо сидит на задроченном симпле и придумывает на голову себе проблем. если для тебя обновить имгуи или сменить базу - проблема на несколько часов, то до связи.
Причём тут нахуй симпл вообще?
И на кой хуй менять имгуи, если абсолютно так же, ты не сможешь отрисовать идеально ровный имейдж кругом. Он у тебя будет с углами, и это не есть прикольно. И искать в конфигах имгуя что то ,что даст это пофиксить - лишний заёб. Проще взять код с этого треда, и более не выёбываться. Признай уже что ты тупо обосрался, мы все это поняли
 
ясно, чел думает, что ради рендера ссаного кружка надо обновлять гуи или (с какого-то хуя) менять базу,ну ок че. держи в курсе.
неприязнь к симплу, его время уже прошло и ты проебешь больше времени на обновлении другой параши в нем, нежели перейдешь на другую базу поновее.
Причём тут нахуй симпл вообще?
ты не сможешь отрисовать идеально ровный имейдж кругом. Он у тебя будет с углами, и это не есть прикольно.
эм найти Ctrl+F IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER и поменять 1 цифру для тебя проблема? ебать ладно.
 
неприязнь к симплу, его время уже прошло и ты проебешь больше времени на обновлении другой параши в нем нежели перейдешь на другую базу поновее.
Всмысле его время прошло? Дядя... Что не так с симплом? И что на нем сделать сложнее, чем на условном wok'e? Обновить имгуй как ты и говорил дело нескольких минут. К тому же с таким количеством гайдов симпл всегда будет самой лучшей базой для пастеров.
А для НЕ пастеров база вообще не имеет значения, только разве что личные предпочтения (например мне кодстайл аристоиса режет глаза)
 
Обновить имгуй как ты и говорил дело нескольких минут.
Мне проще написать метод ,убив на это 5 минут, нежели чем обновлять фулл гуи и тащить за собой хуеву тучу проблем и несостыковок, что может убить от часу моего времени.
видимо не для всех
 
Назад
Сверху Снизу