Я точно не знаю, кто такой OpenGLWindow, но я предполагаю, что вы используете какую-то инфраструктуру, какую-то оболочку C # поверх OpenGL API.Если это так, то, скорее всего, OpenGL рендерится непосредственно в видеопамять, которая недоступна для GDI, поэтому вы, вероятно, получаете пустое изображение.
Чтобы фактически получить изображение, отрисованное OpenGL, вам нужновызов glReadPixels .Ваш фреймворк может предоставить вам метод-обертку над этим glReadPixels, или я полагаю, что вы можете напрямую вызывать glReadPixels через pinvoke с соответствующими параметрами и получать желаемое изображение (оно может быть перевернуто, а красный и синий каналы инвертированы, носможет исправить эти проблемы, манипулируя байтовым массивом).