2014-12-18 3 views
0

заходящего

Использование Xlib, я создаю 32 бит на пиксел, а также окно 32 БПП объект XImage.32bit XImage, XPutImage и альфа-смешивание

Сначала я рисую непрозрачный прямоугольник на окне, чтобы стереть фон.

Затем я попытаюсь нарисовать созданный полупрозрачный XImage на окне.

В этих операциях я могу использовать только функцию GXCopy графического контекста, потому что все другие функции ведут себя не очень хорошо с альфа-каналом.

Но, рисуя XImage, он не смешивается с фоном, а просто заменяет его (GXCopy) таким образом, создавая прозрачные отверстия в окне.

Вопрос

Есть ли способ, чтобы сделать сервер X правильно смешивать полупрозрачные изображения? (Возможно, какая-то функция называется GXBlend?)

P.S. Я знаю расширения XRender, но предпочитаю использовать XLib, если это возможно.

ответ

1

Нет, поэтому XRender был представлен. Другой вариант - GLX. Еще один вариант (медленный): передача предыдущего содержимого клиенту, смешение в коде клиента и перенос pixmap на сервер.

+0

Хм, но мне не нужны прозрачные окна, мне нужно только прозрачные изображения в моем окне. Затем я могу просто нарисовать содержимое всего окна на стороне клиента и только XPutImage на сервере. Считаете ли вы, что это тоже будет медленным? – johnfound

+0

Вы спрашивали о компоновке на стороне сервера, и ответ «не с ядром x11». Да, вы можете сделать это на стороне клиента и получить результат XPutImage –

+0

Действительно, я спросил о компоновке на стороне сервера. Комментарии - это просто комментарии ...;) – johnfound