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