Индивидуальный размер для каждой иконки.

Sidney31

Известный
Автор темы
1,124
385
Версия MoonLoader
.026-beta
Доброго времени суток. Вопрос: как настроить разный размер для каждой иконки.
Чтобы иконка в заголовке было в 15 размере, а иконка в теле имгуи, например 50.
1645736895355.png



local fontsize = nil function imgui.BeforeDrawFrame() if fontsize == nil then fontsize = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 30.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic()) -- вместо 30 любой нужный размер end end function imgui.OnDrawFrame() imgui.PushFont(fontsize) imgui.Text('Текст размером 30') imgui.PopFont() end
Пробовал этот способ - вместо иконок иероглифы.

Код:
imgui.SetWindowFontScale(1.2) -- большой текст
imgui.Text('123')
imgui.SetWindowFontScale(1.0) -- обычный
imgui.Text('456')
imgui.SetWindowFontScale(0.5) -- маленький
imgui.Text('789')
Так теряется качество иконки.

Спасибо за помощь!

Нашёл решение.
Подгружаем ещё один шрифт, '90.0' - его размер. Изменяем под необходимый вам. (При размере 100 скрипт крашится)

Lua:
function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fontawesome-webfont.ttf', 15.0, font_config, fa_glyph_ranges)
        fa_font2 = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fontawesome-webfont.ttf', 90.0, font_config2, fa_glyph_ranges)

    end
end

Lua:
function imgui.OnDrawFrame()
    imgui.PushFont(fa_font2)
    imgui.Text(fa.ICON_NEWSPAPER_O)
    imgui.PopFont()
end


В итоге получаем такой результат:




Screenshot_3.png
 
Последнее редактирование: