icons

MrBidloKoder

Известный
Автор темы
425
248
Версия MoonLoader
.027.0-preview
Короче, нашёл прикол. Если юзать иконки с кодом ниже, то вместо иконок будет вопросики. Методом тыка нашёл проблему. Проблема в строке с fsStil. Оно ломает всё к хуям. Кто-то знает как это можно пофиксить? Я пока попробую путь шрифта поменять.

Lua:
local fa = require 'faIcons'
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })

local fsStil = nil
local fa_font = nil
function imgui.BeforeDrawFrame()
    if fsStil == nil then
        fsStil = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 17.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
    end
    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', 14.0, font_config, fa_glyph_ranges)
    end
end

--то что снизу в имгуи

imgui.PushFont(fsStil) imgui.CenterTextColoredRGB('Функции') imgui.PopFont()

if imgui.Button(fa.ICON_FA_FILE_CODE..u8'Сохранить', imgui.ImVec2(200, 25)) then 
        
        end
 
Решение
Решил поменяв местами. Как это связано - хуй знает, но как-то так.

Lua:
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', 14.0, font_config, fa_glyph_ranges)
end
if fsStil == nil then
   fsStil = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 17.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
end

MrBidloKoder

Известный
Автор темы
425
248
Решил поменяв местами. Как это связано - хуй знает, но как-то так.

Lua:
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', 14.0, font_config, fa_glyph_ranges)
end
if fsStil == nil then
   fsStil = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 17.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
end
 

Hatiko

Известный
Проверенный
1,469
610
У меня с твоей конструкцией игру вообще крашит. У тебя нет не очистки шрифтов, не ребилдинга. Также присваивая первый шрифт (текстовый) ты по умолчанию его присваиваешь к дефолтному шрифту, и его пушать не надо. В imgui немного запутанная система со шрифтами.

Решил поменяв местами. Как это связано - хуй знает, но как-то так.
Ну вот как раз, ты шрифт иконок применил к дефолтному. Далее у тебя идёт дополнительный шрифт, для которого отображение иконок нужно ещё раз наложить иконки.
Для множество шрифтов обычно такую систему применяют. На каждый текстовый шрифт приходится шрифт иконок, это единственный рабочий способ.

Lua:
local isFontChange
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
function imgui.BeforeDrawFrame()
    if not isFontChange then
      isFontChange = true
      local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
      local font_config = imgui.ImFontConfig()
      font_config.MergeMode = true
      imgui.GetIO().Fonts:Clear()

      imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 17.0, nil, glyph_ranges)
      fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('.../иконки.ttf', 14.0, font_config, fa_glyph_ranges)

      fsStil = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\trebucbd.ttf', 20.0, nil, glyph_ranges)
      fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('.../иконки.ttf', 17.0, font_config, fa_glyph_ranges)

      imgui.RebuildFonts()
    end
end