Исходник GifTexture — GIF-текстуры для MoonLoader

Nimbique

Новичок
Автор темы
1
7
GifTexture

Нативная библиотека для загрузки и воспроизведения GIF-файлов в виде текстур Direct3D 9. Декодирование реализовано на Rust, а Lua API — через LuaJIT FFI.

demo.gif


Поддерживает прозрачность, частичные кадры, disposal-методы 0–3, конечные и бесконечные циклы, управление воспроизведением и скоростью.

Пример:

Lua:
local giftexture = require('giftexture')

local gif = assert(giftexture.load(
    getD3DDevicePtr(),
    'animation.gif'
))

gif:play()

-- Each frame
gif:update(deltaTime)

local texture = gif:getTexture()
local width, height = gif:getSize()

-- When no longer needed
gif:destroy()

deltaTime — время между кадрами в секундах. Полученные текстура и размеры используются для дальнейшей отрисовки выбранным способом.

Все операции с одним GIF должны выполняться в одном потоке рендера.

Для установки скопируйте папку giftexture из архива в moonloader/lib.

GitHub: nimbique/giftexture
 

Вложения

  • giftexture-v1.0.0.zip
    69.3 KB · Просмотры: 5