LINUX.ORG.RU

История изменений

Исправление mittorn, (текущая версия) :

https://git.disroot.org/mittorn/glxanim

gcc glxanim.c -lm -lX11 -lGL -o glxanim


GLXANIM_PERIOD=10000 GLXANIM_WIDTH=1920 GLXANIM_HEIGHT=1080 path/to/xwinwrap -b -s -fs -st -sp -nf -ov -fdt  -- sh path/to/glxanim.sh WID /path/to/*.png

GLXANIM_FILTER=1 - включение фильтрации (мыльное масштабирование)
GLXANIM_COMPAT=1 - включение compatibility профиля
GLXANIM_DOUBLEBUFFER=1 - включение double buffer (по умолчанию используется single buffer, возможен тиринг)
GLXANIM_PERIOD=N - период анимации в микросекундах
Даже на 1000 микросекундах уже нагрузка на процессор небольшая
Используется glBlitFramebuffer, так что нагрузка на gpu тоже небольшая

P.S
На картинке из поста (нашёл тут широкий gif: https://vk.com/doc12004966_466201489) какое-то кривое разрешение, которое не принимается нормально то ли stbi, то ли opengl, потому стоит кропнуть так (желательно пересчитать кратную 8 ширину под aspect ratio):
ffmpeg -i bg.gif -vf crop=864:384 bg/%d.png

Исходная версия mittorn, :

https://git.disroot.org/mittorn/glxanim

gcc glxanim.c -lm -lX11 -lGL -o glxanim


GLXANIM_PERIOD=10000 GLXANIM_WIDTH=1920 GLXANIM_HEIGHT=1080 path/to/xwinwrap -b -s -fs -st -sp -nf -ov -fdt  -- sh path/to/glxanim.sh WID /path/to/*.png

GLXANIM_FILTER=1 - включение фильтрации (мыльное масштабирование)
GLXANIM_COMPAT=1 - включение compatibility профиля
GLXANIM_DOUBLEBUFFER=1 - включение double buffer (по умолчанию используется single buffer, возможен тиринг)
GLXANIM_PERIOD=N - период анимации в микросекундах
Даже на 1000 микросекундах уже нагрузка на процессор небольшая
Используется glBlitFramebuffer, так что нагрузка на gpu тоже небольшая