Я пишу программу, в которой мне нужно получить доступ к пиксельным данным окна X11 максимально эффективно, в идеале через общую память, без необходимости выполнять вызовы XCB каждый раз, когда я хочу обновить пиксельные данные. Это аналогичная опция Xvfb -shmem, но я хочу получить доступ к данным пикселей каждого окна через общую память, а не ко всему экрану.
Я могу настроить X-сервер любым способом, который поможет в этом.
Мне известны расширения XShm и XComposite. Насколько я вижу, каждый из них делает только половину того, что мне нужно:
- Расширение XComposite перемещает данные пикселей окна во внеэкранный буфер, в котором хранится данные пикселей.
- Расширение XShm позволяет создавать области общей памяти и растровые изображения, которые можно обновлять из существующих окон (но, насколько я могу судить, только по требованию и требуя копирования памяти).
Могу ли я каким-то образом объединить эти два расширения, чтобы я мог напрямую получать доступ к данным пикселей окна из моего собственного приложения,
без необходимости постоянно просить X-сервер копировать данные пикселей?
Подробнее здесь:
https://stackoverflow.com/questions/786 ... red-memory