LINUX.ORG.RU

прозрачное X окно по типу XMMS


0

0

подскажите пожалуйста, как можно создать X окно без фона. Т.е. как бы прозрачное, чтобы внутри отрисовывалось только то, что рисую в нем я, безо всякого белого фона, с которым создаётся окно XCreateSimpleWindow.

Т.е. я так себе представляю работу XMMS:

- создаётся пустое окно (без фона);

- в это окно врисовывается картинка из скина. там, где в картинке пустые (прозрачные) места - в окне отображается то, что под окном.

В исходниках xmms работает через gdk. Как добиться такого эффекта через xlib?

Надеюсь, что удалось объяснить, что я хочу :)

заранее спасибо

я бы поставил X.Org >= R6.8 (впрочем, уже стоит)... ...и поигрался бы с новым расширением XComposite - оно как раз предназначено для создания прозрачных окон, причём не как в xmms, а с альфа-прозрачностью Что касается xmms, там, возможно, через регионы окошко отрисовывается, в иксах есть такое, только при этом у кривых края рваные и красиво это смотреться никогда не будет. так что XComposite

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

а как в yab (из ADesklets) иконки рисуются? при наведении на иконку она вырастает, фон под иконкой прозрачен, но смотрится отлично, хотя XComposite не включен. Как такое делается? Не на Питоне, не на imlib2? Кто нибудь знает?

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

>>я бы поставил X.Org >= R6.8 (впрочем, уже стоит)

в QT + XFree86 4.3 прозрачность работает на ура. Любой сложности. Хоть окно в виде буквы А - такое тоже возможно.

butterfly
()
Ответ на: комментарий от jackLucas

XComposite - это настоящая прозрачность, но для нее необходима аппаратная поддержка обеспечиваемя видеокартой.

Прозрачность в Адесклетс - это псевдопрозрачность. В них все далеается просто: создается окно размером с окно АДесклется без фона. Если не задан фон у окна, то ХСервер не заполняет окно ничем, т.е. какая картинка была на месте создания окна, та картинка и будет фоном. Эту картинку потом можно считать.

Для создания окон без фона используйте функцию XCreateWindow.

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

> в QT + XFree86 4.3 прозрачность работает на ура. Любой сложности. Хоть окно в виде буквы А - такое тоже возможно.

с альфа-каналом?

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

я же сказал - xfree 4.3. Там нет альфы, только 24 бита. Все QT-шные проги с масками работают отлично.

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