Гайд [mimgui] Храним картинки в памяти

f0rtrix

Известный
208
15
Хочу сделать подгрузку faicons из памяти. Сделал по примеру от FYP, попытался совместить с примером выше *click* и в итоге следующие ошибки
Код:
[ML] (error) Kit: ...mes\GTA San Andreas MultiPlayer\moonloader\Kit.lua:601: bad argument #2 to 'AddFontFromMemoryCompressedBase85TTF' (cannot convert 'nil' to 'float')
stack traceback:
    [C]: in function 'AddFontFromMemoryCompressedBase85TTF'
    ...mes\GTA San Andreas MultiPlayer\moonloader\Kit.lua:601: in function 'loadIconicFont'
    ...mes\GTA San Andreas MultiPlayer\moonloader\Kit.lua:669: in function 'cb'
    ...A San Andreas MultiPlayer\moonloader\lib\mimgui\init.lua:86: in function 'InitializeRenderer'
    ...A San Andreas MultiPlayer\moonloader\lib\mimgui\init.lua:94: in function <...A San Andreas MultiPlayer\moonloader\lib\mimgui\init.lua:91>
[ML] (error) Kit: Script died due to error. (31D32364)
Вот код
Lua:
local function loadIconicFont(fontSizeFa)
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    config.PixelSnapH = true
    local iconRanges = new.ImWchar[3](faicons.min_range, faicons.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(faincons_font_compressed_data_base85, fontSize, config, iconRanges)
end

imgui.OnInitialize(function()
    faincons_font_compressed_data_base85 = ".. тут очень много цифр и букв .."
    fontSizeFa[0] = imgui.GetIO().Fonts.ConfigData.Data[0].SizePixels
end)
 

Belo4ka_belka

Известный
191
7
А возможно ли в moon imgui шрифт в память затолкать? Подскажите пж.
 
Последнее редактирование:

HarlyCloud

Потрачен
238
66
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А как показать часть изображения?
 

Hatiko

Известный
Проверенный
1,472
611
А как показать часть изображения?
3м и 4м параметром указать начало и конец части изображения в долях.
К примеру, отрисуем картинку размером 50 на 30 с исходным размером 100 на 60 px. Для отрисовки части изображения нужно показать какую часть мы берём. В нашем случае будет 1/4 по ширине и высоте, т.е. 0.25. Чтобы не мучиться с дробями просто открываешь картинку в любом редакторе, в том же paint, находим координаты по ширине и высоте в требуемом месте. Т.е. в нашем случае на коордах 50 и 30, где будет конец части изображения, делим их на общий размер исходного изображения: 50/100 по ширине и 30/60 по высоте.

imgui.Image(image, imgui.ImVec2(100, 60), imgui.ImVec2(50, 30), imgui.ImVec2(0, 0), imgui.ImVec2(50/100, 30/60), imgui.ImVec4(1,1,1,1), ImVec4(1,1,1,0))
Вопросы по imgui лучше задавать в соответствующую тему Вопросы по lua скриптингу. Здесь только касаемо хранения в памяти файла.
 

#Kai-

Известный
705
292
Ну значит запилил я все в скрипт, отображаю и проблема в том что о края картинки можно нахуй порезаться без анастезии.

Есть секреты по фиксу? Я пробовал заливать как большого разрешения картинку, так и точности как и отображаю, все равно по краям пиксели что порезаться можно.

2021-07-20_22-46-03.png
 

Corenale

Известный
148
133
Мб кому надо.
В архиве 2 батника
image.png
Кидаем батники в папку с b2c_lua.exe
Потом кидаем картинки/шрифты на батник
На выходе получаем либо просто lua файл, либо папку с луашниками (смотря сколько файлов кидали на батник) ((будет папка если 2 или более))
image.png

image.png
image.png

image.png
 

Вложения

  • b2c_lua_bat.7z
    417 байт · Просмотры: 32

Gorskin

I shit on you
Проверенный
1,245
1,025
Кто шарит как убрать фриз при открытии мимгуи окна с картинкой?
Загружаю так:
Lua:
imgui.OnInitialize(function()
    image = imgui.CreateTextureFromFile(getWorkingDirectory()..'\\resource\\image.png')
end)
 

Corenale

Известный
148
133
Кто шарит как убрать фриз при открытии мимгуи окна с картинкой?
Загружаю так:
Lua:
imgui.OnInitialize(function()
    image = imgui.CreateTextureFromFile(getWorkingDirectory()..'\\resource\\image.png')
end)
Либо подгружать картинку при загрузке скрипта, либо подгружать картинку из памяти
Что-то другое тут особо не сделаешь:
image.png
 
  • Нравится
Реакции: deleted-user-422095

Gorskin

I shit on you
Проверенный
1,245
1,025
Либо подгружать картинку при загрузке скрипта, либо подгружать картинку из памяти
Что-то другое тут особо не сделаешь:
image.png
Проблема в том что я пытался сделать загрузку при запуске скрипта но у меня была какая-то ошибка renderer.