Как отобразить окно системы windows / X window в трехмерном пространстве на текстуре? - PullRequest
2 голосов
/ 29 января 2009

Мне интересно, как я могу поймать окно и отобразить его на текстуре в 3D пространстве. И как я могу перенаправить ввод с помощью мыши и клавиатуры из 3D-приложения в приложение, работающее в фоновом режиме? Я имею в виду полноценный рабочий стол 3D.

Ответы [ 2 ]

1 голос
/ 29 января 2009

Это может быть немного сложно, и "полный" ответ может не подойти для этого форума. Вот идея / план, хотя:

Один из способов сделать это - VNC . Запустите отдельный невидимый «виртуальный» рабочий стол на сервере VNC, а затем запустите нужные приложения с ним в качестве дисплея. Ваша программа 3D-рендеринга на «реальном» рабочем столе может затем подключиться к серверу VNC и получить доступ к его рабочему столу в растровом формате, а затем передать его на текстурированные полигоны. Трубопровод во входных событиях тоже выполним.

Я фактически сделал это, или, по крайней мере, половину (дисплей). Вот очень старый скриншот того, что мне тогда удалось сделать: alt text
(источник: sourceforge.net )
Черное небо и синяя / пурпурная "земля" отображаются 3D-программой на реальном рабочем столе, в то время как наклонный квадрат показывает окно на "виртуальном" рабочем столе VNC.

Fun!

0 голосов
/ 30 января 2009

Ключевой частью решения является расширение OpenGL / GLX GLX_EXT_texture_from_pixmap, которое ликвидирует разрыв между мирами X11 и OpenGL.

Что касается остальных ... Compiz и CompizFusion уже реализуют 3D-десктопы. Дайте им попробовать; если у вас есть конкретные идеи о том, как все должно работать, источники свободно доступны (и они также поддерживают идею плагинов).

...