Генерация тени под окном Xlib
По -видимому, диспетчер окон (в моем случае Compiz) обрабатывает тень, которую вы видите во всех окнах Xlib в Ubuntu, поэтому связь с системой X Window не повлияет на тень по умолчанию, сгенерированную в окне, которое я создал в своем коде. Поэтому, как я могу общаться через мой код с Compiz, чтобы назначить большую / меньшую / другую цветную тень под вновь созданным окном?
Редактировать: я использую только C++ и библиотеку xlib, а не QT
Изменить: метод общения с оконным менеджером становится все более сложным, чем больше я пытаюсь, так что у кого-нибудь есть какие-либо другие предложения? Может быть, второе окно позади оригинала с какой-то настройкой?
1 ответ
Вам нужно написать композитный менеджер, чтобы иметь тени / прозрачность и подобные эффекты (я полагаю, вы делаете это, чтобы узнать, как это работает под капотом. Если вам просто нужна тень - почти у каждого менеджера компов есть эта опция, прочитайте руководства xcompmgr / compiz)
Вот очень хорошее введение в расширения Composite/Damage. Вам нужно перенаправить все окна верхнего уровня и нарисовать их вручную в специальном оверлейном окне.