Исходник Imgui glow text

Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,176
Реакции[?]
314
Поинты[?]
152K
C++:
void RenderGlowingText(const char* text, const ImVec4& color, float glowSize, ImGuiWindow* window = nullptr) {
    ImGuiContext& g = *GImGui;
    ImGuiWindow* currentWindow = window ? window : g.CurrentWindow;

    ImVec2 pos = ImGui::GetCursorScreenPos();
    ImGui::RenderText(pos, text);

    ImDrawList* drawList = currentWindow->DrawList;
    ImVec2 textSize = ImGui::CalcTextSize(text);
    ImVec2 drawPos = pos;

    // Рендеринг обводки (глоу)
    drawList->AddText(drawPos, ImGui::ColorConvertFloat4ToU32(color), text);
    for (float i = 0; i < 360; i += 45) {
        float dx = cosf(i) * glowSize;
        float dy = sinf(i) * glowSize;
        drawList->AddText(drawPos + ImVec2(dx, dy), IM_COL32_BLACK_TRANS, text);
    }
}
 
че
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2021
Сообщения
477
Реакции[?]
64
Поинты[?]
16K
C++:
void RenderGlowingText(const char* text, const ImVec4& color, float glowSize, ImGuiWindow* window = nullptr) {
    ImGuiContext& g = *GImGui;
    ImGuiWindow* currentWindow = window ? window : g.CurrentWindow;

    ImVec2 pos = ImGui::GetCursorScreenPos();
    ImGui::RenderText(pos, text);

    ImDrawList* drawList = currentWindow->DrawList;
    ImVec2 textSize = ImGui::CalcTextSize(text);
    ImVec2 drawPos = pos;

    // Рендеринг обводки (глоу)
    drawList->AddText(drawPos, ImGui::ColorConvertFloat4ToU32(color), text);
    for (float i = 0; i < 360; i += 45) {
        float dx = cosf(i) * glowSize;
        float dy = sinf(i) * glowSize;
        drawList->AddText(drawPos + ImVec2(dx, dy), IM_COL32_BLACK_TRANS, text);
    }
}
ss?
 
Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,176
Реакции[?]
314
Поинты[?]
152K
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,552
Реакции[?]
519
Поинты[?]
189K
C++:
void RenderGlowingText(const char* text, const ImVec4& color, float glowSize, ImGuiWindow* window = nullptr) {
    ImGuiContext& g = *GImGui;
    ImGuiWindow* currentWindow = window ? window : g.CurrentWindow;

    ImVec2 pos = ImGui::GetCursorScreenPos();
    ImGui::RenderText(pos, text);

    ImDrawList* drawList = currentWindow->DrawList;
    ImVec2 textSize = ImGui::CalcTextSize(text);
    ImVec2 drawPos = pos;

    // Рендеринг обводки (глоу)
    drawList->AddText(drawPos, ImGui::ColorConvertFloat4ToU32(color), text);
    for (float i = 0; i < 360; i += 45) {
        float dx = cosf(i) * glowSize;
        float dy = sinf(i) * glowSize;
        drawList->AddText(drawPos + ImVec2(dx, dy), IM_COL32_BLACK_TRANS, text);
    }
}
1703264052563.png
OPTIMISATION V KOMPLEKTE
 
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
777
Реакции[?]
245
Поинты[?]
10K
C++:
void RenderGlowingText(const char* text, const ImVec4& color, float glowSize, ImGuiWindow* window = nullptr) {
    ImGuiContext& g = *GImGui;
    ImGuiWindow* currentWindow = window ? window : g.CurrentWindow;

    ImVec2 pos = ImGui::GetCursorScreenPos();
    ImGui::RenderText(pos, text);

    ImDrawList* drawList = currentWindow->DrawList;
    ImVec2 textSize = ImGui::CalcTextSize(text);
    ImVec2 drawPos = pos;

    // Рендеринг обводки (глоу)
    drawList->AddText(drawPos, ImGui::ColorConvertFloat4ToU32(color), text);
    for (float i = 0; i < 360; i += 45) {
        float dx = cosf(i) * glowSize;
        float dy = sinf(i) * glowSize;
        drawList->AddText(drawPos + ImVec2(dx, dy), IM_COL32_BLACK_TRANS, text);
    }
}
мне кажется полноценное меню с таким текстом ахуеет от оптимизации
 
Начинающий
Статус
Оффлайн
Регистрация
3 Сен 2022
Сообщения
85
Реакции[?]
17
Поинты[?]
8K
so basically
C++:
// Function to render glowing text
void RenderGlowingText(const char* text, ImVec4 color, ImVec4 glowColor, float glowSize) {
    // Get the current ImGui window draw list
    ImDrawList* drawList = ImGui::GetWindowDrawList();

    // Get the text size
    ImVec2 textSize = ImGui::CalcTextSize(text);

    // Calculate the position for the text
    ImVec2 textPos = ImGui::GetCursorScreenPos();

    // Render the glowing part of the text
    drawList->AddText(textPos, ImGui::ColorConvertFloat4ToU32(glowColor), text);
    drawList->AddText(textPos, ImGui::ColorConvertFloat4ToU32(glowColor), text, false, 0, glowSize);

    // Render the main text
    drawList->AddText(textPos, ImGui::ColorConvertFloat4ToU32(color), text);
}
but worse
 
Новичок
Статус
Оффлайн
Регистрация
22 Мар 2024
Сообщения
1
Реакции[?]
0
Поинты[?]
0
C++:
void RenderGlowingText(const char* text, const ImVec4& color, float glowSize, ImGuiWindow* window = nullptr) {
    ImGuiContext& g = *GImGui;
    ImGuiWindow* currentWindow = window ? window : g.CurrentWindow;

    ImVec2 pos = ImGui::GetCursorScreenPos();
    ImGui::RenderText(pos, text);

    ImDrawList* drawList = currentWindow->DrawList;
    ImVec2 textSize = ImGui::CalcTextSize(text);
    ImVec2 drawPos = pos;

    // Рендеринг обводки (глоу)
    drawList->AddText(drawPos, ImGui::ColorConvertFloat4ToU32(color), text);
    for (float i = 0; i < 360; i += 45) {
        float dx = cosf(i) * glowSize;
        float dy = sinf(i) * glowSize;
        drawList->AddText(drawPos + ImVec2(dx, dy), IM_COL32_BLACK_TRANS, text);
    }
}
не ворк
 
Сверху Снизу