работа с fAwesome5 для mimgui

EclipsedFlow

Известный
Автор темы
Проверенный
1,043
474
Версия MoonLoader
.026-beta
Столкнулся с проблемой!
Расскажите подробнее как можно поставить иконку!
Решил добавить пару иконок для mimgui, решил подключить либу fAwesome5, и ошибка.
Как подключить и пользоваться?
 

Hatiko

Известный
Проверенный
1,494
617
Cтандартный шрифт на свой поменяешь и путь до него, аналогично с иконками.
Для использования иконок в тексте не использовать переменную icon, т.е. не использовать PushFont/PopFont. (На всякий случай, если будешь пытаться)
Lua:
imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromFileTTF('Шрифт какой-то.ttf', 14.0, nil, glyph_ranges) -- Стандартный шрифт
    icon = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/lib/font-icon5.ttf', 14.0, config, iconRanges) -- подгружаем иконки для верхнего (стандартного) шрифта.
end)
UPD, обновил
 
Последнее редактирование:

EclipsedFlow

Известный
Автор темы
Проверенный
1,043
474
Cтандартный шрифт на свой поменяешь и путь до него, аналогично с иконками.
Для использования иконок в тексте не использовать переменную icon, т.е. не использовать PushFont/PopFont. (На всякий случай, если будешь пытаться)
Lua:
imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromFileTTF('Шрифт какой-то.ttf', 14.0, nil, glyph_ranges) -- Стандартный шрифт
    icon = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/lib/font-icon5.ttf', 14.0, config, iconRanges) -- подгружаем иконки для верхнего (стандартного) шрифта.
end)
UPD, обновил
Можно пример привести, скрипт какой-то прикрепить, пробую крашит скрипт, проще на imgui пересесть обратно!
 

EclipsedFlow

Известный
Автор темы
Проверенный
1,043
474
1611063172780.png

Lua:
local faicons = require("fAwesome5")

imgui.Begin(faicons.ICON_FA_EGG .. u8"Smooth Aim by Scar", aim.renderWindow.renderWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoCollapse)
imgui.End()

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    local ImVec2 = imgui.ImVec2

    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local iconRanges = imgui.new.ImWchar[3](faicons.min_range, faicons.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/font/20289.ttf', 14.0, nil, glyph_ranges) -- Стандартный шрифт
    icon = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/lib/fAwesome5.ttf', 14.0, config, iconRanges)

     style.WindowPadding = ImVec2(15, 15)
     style.WindowRounding = 15.0
     style.FramePadding = ImVec2(5, 5)
     style.ItemSpacing = ImVec2(12, 8)
     style.ItemInnerSpacing = ImVec2(8, 6)
     style.IndentSpacing = 25.0
     style.ScrollbarSize = 15.0
     style.ScrollbarRounding = 15.0
     style.GrabMinSize = 15.0
     style.GrabRounding = 7.0
     style.ChildRounding = 15.0
     style.FrameRounding = 6.0
     style.WindowTitleAlign = ImVec2(0.5, 0.5)
     style.ButtonTextAlign = ImVec2(0.5, 0.5)
 

       colors[clr.Text] = ImVec4(0.95, 0.96, 0.98, 1.00)
       colors[clr.TextDisabled] = ImVec4(0.36, 0.42, 0.47, 1.00)
       colors[clr.WindowBg] = ImVec4(0.11, 0.11, 0.24, 1.00)
       colors[clr.ChildBg] = ImVec4(0.15, 0.18, 0.22, 1.00)
       colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
       colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)
       colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
       colors[clr.FrameBg] = ImVec4(0.25, 0.20, 0.83, 0.69)
       colors[clr.FrameBgHovered] = ImVec4(0.12, 0.20, 0.28, 1.00)
       colors[clr.FrameBgActive] = ImVec4(0.09, 0.12, 0.14, 1.00)
       colors[clr.TitleBg] = ImVec4(0.09, 0.12, 0.14, 0.65)
       colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
       colors[clr.TitleBgActive] = ImVec4(0.30, 0.25, 1.00, 1.00)
       colors[clr.MenuBarBg] = ImVec4(0.15, 0.18, 0.22, 1.00)
       colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.39)
       colors[clr.ScrollbarGrab] = ImVec4(0.20, 0.25, 0.29, 1.00)
       colors[clr.ScrollbarGrabHovered] = ImVec4(0.18, 0.22, 0.25, 1.00)
       colors[clr.ScrollbarGrabActive] = ImVec4(0.09, 0.21, 0.31, 1.00)
       --colors[clr.ComboBg] = ImVec4(0.20, 0.25, 0.29, 1.00)
       colors[clr.CheckMark] = ImVec4(0.28, 0.56, 1.00, 1.00)
       colors[clr.SliderGrab] = ImVec4(1.00, 0.34, 0.92, 1.00)
       colors[clr.SliderGrabActive] = ImVec4(0.37, 0.61, 1.00, 1.00)
       colors[clr.Button] = ImVec4(0.12, 0.23, 0.93, 0.71)
       colors[clr.ButtonHovered] = ImVec4(0.28, 0.56, 1.00, 1.00)
       colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)
       colors[clr.Header] = ImVec4(0.12, 0.23, 0.93, 0.71)
       colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)
       colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
       colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)
       colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)
       colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
       --colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)
       --colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)
       --colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)
       colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
       colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
       colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
       colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
       colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)
       colors[clr.Separator] = ImVec4(0.43, 0.43, 0.50, 0.50)
       --colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)
end)

Можно пример привести, скрипт какой-то прикрепить, пробую крашит скрипт, проще на imgui пересесть обратно!
Вот
 

Hatiko

Известный
Проверенный
1,494
617
Видимо, где-то ошибся. Вот пример, у меня работает.

Lua:
local imgui = require 'mimgui'
require "lib.moonloader"
local ffi = require 'ffi'
 

local wm = require 'windows.message'
local fa = require('fAwesome5')
local new = imgui.new            
local renderWindow = new.bool(false)
local sizeX, sizeY = getScreenResolution()


local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver)
        imgui.Begin("Main Window", renderWindow)
            imgui.Text(fa.ICON_FA_CHECK.." OK")
        imgui.End()
    end
)


imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromFileTTF('Arial.ttf', 14.0, nil, glyph_ranges) -- Стандартный шрифт
    icon = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/files/font-icon5.ttf', 14.0, config, iconRanges) -- подгружаем иконки для верхнего (стандартного) шрифта.

end)


function main()
    repeat wait(100) until isSampAvailable()

    while true do
        wait(0)
        if isKeyJustPressed(VK_B) then
            renderWindow[0] = not renderWindow[0]
        end
    end
end
1611067072005.png
 
Последнее редактирование:
  • Нравится
Реакции: ReleaseN и EclipsedFlow