[MIMGUI] fawesome6 при увеличение шрифта вопросительные знаки появляются

Dewize

Известный
Автор темы
439
91
Версия MoonLoader
.027.0-preview
При увеличение иконок, они просто начинают выдавать вопросительные знаки. Как это пофиксить?


код:
--===== [ Подключаем библиотеки ] =====--
local imgui = require 'mimgui' -- Графический модуль mimgui
local fa = require('fAwesome6') -- Дополнение к графическому модулю с его помощью можно добавлять разного рода иконок.
------------------------------


--===== [ Функции ] =====--

-- Функция, вызывающаяся один раз за период жизни скрипта. Типа пред загрузка, перед показом в Imgui--
imgui.OnInitialize(function()

    --Fawesome6(Иконки)--
    imgui.GetIO().IniFilename = nil -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui
    local config = imgui.ImFontConfig() -- Создаём новую пременную и присваиваем ей новый экземпляр класса ImFontConfig(). Этот класс используется для настройки параментров шрифта.
    config.MergeMode = true -- Ставим true, что означает, что шрифт будет объединён с другими шрифтами, если они уже были добавлены в Fonts
    config.PixelSnapH = true -- Ставим true, что означает, что горизонтальные координаты будут выравниваться по пикселям, что бы избежать размытия текста
    iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0) -- Создаём новую переменную и присваиваем ей новый массив типа ImWchar c размером 3. Значениям массивам является min_range, max_range и 0. Это используется для определения диапазона символов иконок, которые будут добавлены в шрифт.
    imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(fa.get_font_data_base85('solid'), 18, config, iconRanges) -- Добавляем новый шрифт, с помощью функции AddFontFromMemoryCompressedBase85TTF. В качестве  аргументов передаём данные шрифта в формате Base85, размер шрифта, настройки шрифта(config) и диапазон символов иконок. Здесь используется solid, что-бы получить данные шрифта в формате Base85 для типа иконок "solid"
    ---


    --Размер текста--
    imgui.GetIO().IniFilename = nil -- -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui.
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic() -- Создаём новую переменную и присвеиваем ей диапазон символов кирилллицы, этот диапазон будет использоваться при добавление шрифта.
    local path = getFolderPath(0x14) .. '\\trebucbd.ttf' -- Создаём новую переменную и присваиваем ей путь к файлу шрифта. Функция getFolderPath(0x14) используется для получения пути к системной папке шрифтов.
    -- дополнительные шриты:
    font[18] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 18.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
    font[25] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 25.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
    --
    
end)
------

--Кнопки без фона, но с текстом --
function imgui.InvisButton(text, size)
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0, 0, 0, 0))
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0, 0, 0, 0))
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(0, 0, 0, 0))
         local button = imgui.Button(text, size)
    imgui.PopStyleColor(3)
    return button
end
---

------------------------------


--in frame


 --===== [ Кнопки перехода ] ======--
            imgui.SetCursorPosX(-1.5)
            imgui.SetCursorPosY(280) -- Меняем положение кнопок по Y
            imgui.PushFont(font[18])
            if imgui.InvisButton((fa('HOUSE')..u8'Основное'), imgui.ImVec2(215,40)) then -- Создаем проверку на нажатие кнопки
                window = 0 -- Если кнопка была нажата, то это окно переключается на главное меню
            end
               imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Настройки'), imgui.ImVec2(215,40)) then
                window = 1 -- Если кнопка была нажата, то
            end
               imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'та'), imgui.ImVec2(215,40)) then
                window = 2
            end
            imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Абив'), imgui.ImVec2(215,40)) then
                window = 3
            end
            imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Гиши'), imgui.ImVec2(215,40)) then
                window = 4
            end
            imgui.PopFont()
            ---


1692646133605.png
 
Решение
При увеличение иконок, они просто начинают выдавать вопросительные знаки. Как это пофиксить?


код:
--===== [ Подключаем библиотеки ] =====--
local imgui = require 'mimgui' -- Графический модуль mimgui
local fa = require('fAwesome6') -- Дополнение к графическому модулю с его помощью можно добавлять разного рода иконок.
------------------------------


--===== [ Функции ] =====--

-- Функция, вызывающаяся один раз за период жизни скрипта. Типа пред загрузка, перед показом в Imgui--
imgui.OnInitialize(function()

    --Fawesome6(Иконки)--
    imgui.GetIO().IniFilename = nil -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui
    local config =...

XRLM

Против ветра рождённый
Проверенный
1,503
1,062
При увеличение иконок, они просто начинают выдавать вопросительные знаки. Как это пофиксить?


код:
--===== [ Подключаем библиотеки ] =====--
local imgui = require 'mimgui' -- Графический модуль mimgui
local fa = require('fAwesome6') -- Дополнение к графическому модулю с его помощью можно добавлять разного рода иконок.
------------------------------


--===== [ Функции ] =====--

-- Функция, вызывающаяся один раз за период жизни скрипта. Типа пред загрузка, перед показом в Imgui--
imgui.OnInitialize(function()

    --Fawesome6(Иконки)--
    imgui.GetIO().IniFilename = nil -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui
    local config = imgui.ImFontConfig() -- Создаём новую пременную и присваиваем ей новый экземпляр класса ImFontConfig(). Этот класс используется для настройки параментров шрифта.
    config.MergeMode = true -- Ставим true, что означает, что шрифт будет объединён с другими шрифтами, если они уже были добавлены в Fonts
    config.PixelSnapH = true -- Ставим true, что означает, что горизонтальные координаты будут выравниваться по пикселям, что бы избежать размытия текста
    iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0) -- Создаём новую переменную и присваиваем ей новый массив типа ImWchar c размером 3. Значениям массивам является min_range, max_range и 0. Это используется для определения диапазона символов иконок, которые будут добавлены в шрифт.
    imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(fa.get_font_data_base85('solid'), 18, config, iconRanges) -- Добавляем новый шрифт, с помощью функции AddFontFromMemoryCompressedBase85TTF. В качестве  аргументов передаём данные шрифта в формате Base85, размер шрифта, настройки шрифта(config) и диапазон символов иконок. Здесь используется solid, что-бы получить данные шрифта в формате Base85 для типа иконок "solid"
    ---


    --Размер текста--
    imgui.GetIO().IniFilename = nil -- -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui.
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic() -- Создаём новую переменную и присвеиваем ей диапазон символов кирилллицы, этот диапазон будет использоваться при добавление шрифта.
    local path = getFolderPath(0x14) .. '\\trebucbd.ttf' -- Создаём новую переменную и присваиваем ей путь к файлу шрифта. Функция getFolderPath(0x14) используется для получения пути к системной папке шрифтов.
    -- дополнительные шриты:
    font[18] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 18.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
    font[25] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 25.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
    --
   
end)
------

--Кнопки без фона, но с текстом --
function imgui.InvisButton(text, size)
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0, 0, 0, 0))
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0, 0, 0, 0))
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(0, 0, 0, 0))
         local button = imgui.Button(text, size)
    imgui.PopStyleColor(3)
    return button
end
---

------------------------------


--in frame


 --===== [ Кнопки перехода ] ======--
            imgui.SetCursorPosX(-1.5)
            imgui.SetCursorPosY(280) -- Меняем положение кнопок по Y
            imgui.PushFont(font[18])
            if imgui.InvisButton((fa('HOUSE')..u8'Основное'), imgui.ImVec2(215,40)) then -- Создаем проверку на нажатие кнопки
                window = 0 -- Если кнопка была нажата, то это окно переключается на главное меню
            end
               imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Настройки'), imgui.ImVec2(215,40)) then
                window = 1 -- Если кнопка была нажата, то
            end
               imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'та'), imgui.ImVec2(215,40)) then
                window = 2
            end
            imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Абив'), imgui.ImVec2(215,40)) then
                window = 3
            end
            imgui.SetCursorPosX(-1.5)
            if imgui.InvisButton((u8'Гиши'), imgui.ImVec2(215,40)) then
                window = 4
            end
            imgui.PopFont()
            ---


Посмотреть вложение 212670
18 строку удали и вставь после 27 и после 28, только после 28 поменяй размер шрифта на 25
 
  • Клоун
Реакции: Air_Official