Авто размер иконки

IlyaHL2

Активный
Автор темы
230
48
Версия MoonLoader
.026-beta
В общем занимаюсь херней и пытаюсь сделать так чтобы иконка ставила автоматически размер, отпираясь от размера окна по Y, но прикол в том что он не меняет размер приходится заниматься перезапуском скрипта, можно ли это как то исправить чтобы я например захотел изменить разрешение и иконка менялась в размере

Lua:
--начало
local imgui = require('imgui')
local result, fa = pcall(require, 'fAwesome5')

--кончало
local fa_font, fa_glyph_ranges = nil, imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
        local x,y = getScreenResolution()
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', (y <= 600 and 10 or y <= 768 and 12.5 or 15), font_config, fa_glyph_ranges)
    end
end
 

RedHolms

Известный
Проверенный
619
365
В общем занимаюсь херней и пытаюсь сделать так чтобы иконка ставила автоматически размер, отпираясь от размера окна по Y, но прикол в том что он не меняет размер приходится заниматься перезапуском скрипта, можно ли это как то исправить чтобы я например захотел изменить разрешение и иконка менялась в размере

Lua:
--начало
local imgui = require('imgui')
local result, fa = pcall(require, 'fAwesome5')

--кончало
local fa_font, fa_glyph_ranges = nil, imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
        local x,y = getScreenResolution()
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', (y <= 600 and 10 or y <= 768 and 12.5 or 15), font_config, fa_glyph_ranges)
    end
end
1. Лучше всё же использовать mimgui)
2. Лучше отталкиваться от ImGui.GetIO().DisplaySize
3. вот пример кода:
Lua:
local font = nil

do
    local prev_screen_height = -1
    function ImGui.OnBeforeFrame()
        local current_screen_size = ImGui.GetIO().DisplaySize
        
        if current_screen_size.y ~= prev_screen_height then
            font = ...
        end
    end
end