Подтвердить что ты не робот

Можете ли вы создать контекст OpenGL, не открывая окно?

Иногда я попадал в места, где я хотел бы получить объект framebuffer OpenGL, но там, где меня не интересует открытие какого-либо окна.

Можно ли создать контекст opengl без привязки к окну любого типа?

4b9b3361

Ответ 1

Да! вы можете использовать окно рабочего стола в качестве окна, переданного OpenGL, если вы не пытаетесь отобразить на нем что-либо;)

Просто вызовите GetDesktopWindow и передайте результат в качестве аргумента при создании нового окна OpenGL.

Ответ 2

http://www.opengl.org/wiki/Creating_an_OpenGL_Context

В соответствии с этой веб-страницей WGL_ARB_create_context можно использовать для создания контекста без окна. Я на самом деле не пробовал это сам. Я использовал freeGLUT для создания контекста, а затем визуализировал вне экрана фреймбуфер + рендеринг. Я выхожу из программы без вызова glutMainLoop. Это klugy, но он работает для моих целей.

Ответ 3

Да, вы можете выполнять рендеринг за пределами экрана с помощью OpenGL, но точный способ его настройки зависит от операционной системы. Самое близкое, что вы можете использовать независимо от ОС, - это использовать Mesa 3D, но тогда ваш экранный рендеринг не будет ускорен.