Можно ли скрыть окно OpenGL, и рендеринг все еще работает?
Да и Нет для обеих частей вопроса.
Если вы скрываете окно, все пиксели окна просмотра окна не смогут выполнить проверку прав на пиксель при рендеринге. Таким образом, вы не можете использовать скрытое окно в качестве пригодного для работы OpenGL.
Что вам нужно, это заставка для вытягивания.
Современный вариант: Объекты Framebuffer (FBOs), которые можно создавать в обычном контексте OpenGL, что может даже работать в скрытом окне. FBOs берут некоторые доступные вложения (визуализировать буферы, текстуры) и позволяют OpenGL рисовать их вместо этого в окне.
Более старый метод - это PBuffers, также широко поддерживаемый, но не такой простой в использовании, как FBOs.
Обратите внимание, что если вы хотите выполнять внеэкранную визуализацию в Linux/X11, X-сервер должен быть активным, то есть владеть VT, чтобы GPU фактически обрабатывал команды. Таким образом, вы не можете просто запустить X-сервер «в фоновом режиме», но другой X-сервер использует устройство отображения.
Итак, как реализовать? –
@ BЈовић: Он не имеет ничего общего с обратным вызовом дисплея. И ни один из ОП не может быть наивным. – datenwolf
@ datenwolf Хорошо, это зависит от оконной системы. Мой опыт в том, что если вы выдаете рендеринг окна, он может быть повторно отображен - независимо от того, включено ли окно. –