LINUX.ORG.RU

Замещение ключевого цвета-маски изображением под X.Org

 , , , ,


1

1

У DirectDraw из Windows NT 5 есть такая замечательная багофича. Для вывода аппаратно ускоренного слоя вместе с отрисованными на растр окнами используется замещение по цветовой маске, для чего задаётся ключевой цвет. Используется Direct Draw в основном для видеоплееров. Посему оконные видеоплееры там дёргаются при перетаскивании окна, а штатная скринилка не может их заскринить — отображается монотонно залитая ключевым цветом область.

В плагине Advanced Visualization Studio из Winamp 2.95 есть экспериментальный режим отрисовки через DirectDraw. Эксплуатируя эту багофичу, можно залить выбранным ключевым цветом любую поверхность пользовательского интерфейса, например, рабочий стол, и наблюдать на ней визуализацию, не отвлекаясь от других приложений.

Вопрос: возможно ли подобное шерето под X.Org?

Ответ на: комментарий от anonymous

Композит разве так работает? Он же должен отрисовывать окна на слоях и сводить слои, вместо отрисовки окон на общий растр с инвалидацией, принудительной перерисовкой областей и прочей вознёй на стороне приложения.

bodqhrohro_promo
() автор топика
Ответ на: комментарий от bodqhrohro_promo

Ну, без костылей естественно.

anonymous
()

Так работают железячные оверлеи. Устанавливаешь значение colorkey равным какому-либо цвету и оверлей видеокарты выводит изображение на основной экран там, где цвет пикселя равен colorkey.

Так, например, Xv работает. Узнать дефолтный colorkey - XvGetPortAttribute с атомом XV_COLORKEY, установить - XvSetPortAttribute c тем же атомом. Ну и соответственно, видео будет «просвечивать» на местах залитых вышеупомянутым colorkey'ем.

Загляни в сырцы mpv (где-то video/out/vo_xv.c или как-то так) - там достаточно понятно всё это реализовано.

Stanson ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.