Несколько окон в OpenGL?
Если вы используете GLUT, вы opengl можете использовать вызовы multi-window glutSetWindow() / glutGetWindow() для opengl выбора правильного окна (после opengl их создания с помощью glutCreateSubWindow()). Однако opengl иногда GLUT может оказаться multi-window неподходящим инструментом opengl для работы.
Если вы работаете multi-window в Windows, вам следует изучить multi-window функции wglMakeCurrent() и multi-window wglCreateContext(). В OS opengl X есть aglSetCurrentContext() и multi-window так далее, а X11 требует multi-window glXMakeCurrent().
Эти функции multi-window активируют текущий контекст opengl OpenGL, в котором вы можете multi-window выполнить рендеринг. Каждая multi-window библиотека для конкретной opengl платформы имеет собственные multi-window способы создания окна и привязки opengl к нему контекста OpenGL.
В opengl Windows после приобретения multi-window HWND и HDC для окна (после opengl вызова CreateWindow и GetDC). Обычно opengl вы делаете что-то вроде этого, чтобы multi-window настроить OpenGL:
GLuint l_PixelFormat = 0;
// some pixel format descriptor that I generally use:
static PIXELFORMATDESCRIPTOR l_Pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_WINDOW + PFD_SUPPORT_OPENGL + PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA, m_BitsPerPixel, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0};
if(!(l_PixelFormat = ChoosePixelFormat(m_hDC, &l_Pfd))){
throw std::runtime_error("No matching pixel format descriptor");
}
if(!SetPixelFormat(m_hDC, l_PixelFormat, &l_Pfd)){
throw std::runtime_error("Can't set the pixel format");
}
if(!(m_hRC = wglCreateContext(m_hDC))){
throw std::runtime_error("Can't create rendering context");
}
wglMakeCurrent(m_hDC, m_hRC);
Вы используете opengl этот код для создания нескольких multi-window окон и привязки к нему OpenGL, затем multi-window каждый раз, когда вы хотите multi-window рисовать в определенном окне, вы opengl должны вызывать wglMakeCurrent multi-window перед, что вы делаете что-либо opengl и передаете параметры соответствующее opengl этому окну.
В качестве примечания: OpenGL opengl позволяет вам обмениваться opengl определенными данными между multi-window разными контекстами, однако multi-window согласно спецификации данные, которыми multi-window вы можете поделиться, довольно multi-window ограничены. Однако большинство opengl операционных систем позволяют opengl передавать больше данных, чем opengl указано в спецификации.
opengl
multi-window
Несколько окон в OpenGL?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.