Я пишу кроссплатформенную программу просмотра Oculus Rift с открытым исходным кодом. Я решил начать с Linux, потому что я предпочитаю разрабатывать на нем. У меня уже работает деформация текстуры, но теперь мне нужно захватить рабочий стол в текстуру OpenGL. Есть и другие проблемы, которые я не совсем уверен, как решить, как рендеринг деформированного рабочего стола в мое окно при захвате каждого окна, кроме моего. Любая подсказка, как я поступил бы по этому поводу?
Я думаю, что ваш лучший способ действий будет на самом деле написать полноценный композитор.
Здесь GLX_texture_from_pixmap
расширение, которое позволяет вам получать любые растровые изображения, совместимые с X11, в текстуру OpenGL. Для начала может быть достаточно просто вытащить корневое окно (растровое изображение) в виде текстуры OpenGL. Позже вы можете захотеть использовать расширение Composite для перенаправления окон на рендеринг вне экрана и компоновки их в трехмерном пространстве в качестве стереоскопического изображения в Occulus Rift.
Других решений пока нет …