Хочется такую штуку, чтоб было два окна. Одно над другим. В нижнем окне показывается видео, через mplayer -wid... например. В верхнем окне я рисую собственную графику. При этом нужно блендить два окна, с учётом альфаканала. Т.е. графика накладывается поверх видео и может быть (полу)прозрачной.
Как это можно сделать?
Вариант 1: делаем окно, которое с графикой, override redirect (чтоб им window manager не управлял), управляем его позицией и размером сами (по образу и подобию нижнего окна). Это потому, что оно должно в качестве parent иметь root window. И тогд можно использовать Composite extension, например, если запустить xcompmgr... Я проверил, даже работает. Не могу понять, используется ли при этом аппаратное ускорение или нет. Мне только не нравится, что при этом пропадает xearth из root window.
Вариант 2: даём mplayer'у какое-то окно, которое не замаплено в экран. И с использованием функций XRender вручную 50 раз в секунду блендим его с нашей графикой. Мне кажется, данный способ будет тормозным.
Ещё варианты? Мне кажется Xv мог бы поддерживать такую штуку, чтоб выводит в окно видео только в пиксели заданного цвета, а другие пиксели чтоб отображались как есть. Но вроде как Xv просто тупо растягивает картинку из source в destination.