OpenGL / OpenTK: отображать FBO в фоновом потоке в OpenGL-control - PullRequest
0 голосов
/ 21 января 2011

Я использую OpenGL через OpenTK и выполняю рендеринг в FramebufferObject в фоновом потоке.Теперь после каждого рендеринга кадра я хочу отобразить (часть) FBO в одном или нескольких элементах управления OpenGL в моем пользовательском интерфейсе.

Как это работает?

1 Ответ

1 голос
/ 08 февраля 2011

У вас есть два варианта:

  • Если ваши драйверы поддерживают совместное использование контекста, вы можете привязать текстуру FBO к элементам управления OpenGL и отобразить ее напрямую (связать текстуру, выполнить рендеринг, готово).Просто и быстро - просто убедитесь, что ваш рендеринг синхронизирован с дисплеем.
  • Если ваши драйверы этого не делают, вам придется считывать результаты рендеринга в объект Bitmap (или эквивалентный) через GL.ReadPixels.Затем вы можете повторно загрузить их в другие элементы управления OpenGL в качестве текстур или отобразить их непосредственно в элементах управления, отличных от OpenGL.

По умолчанию OpenTK всегда будет пытаться обмениваться контекстами.К сожалению, драйверы Intel не поддерживают совместное использование контекста, поэтому вы не можете использовать первый подход там.

...