OpenGL多子窗口问题

OpenGL multiple subwindow problems

本文关键字:问题 窗口 OpenGL      更新时间:2023-10-16

我的GL代码有问题。我在Ubuntu 12.10平台上运行,我试图在我创建的两个子窗口中渲染顶点数组数据。我创建了一个主窗口,然后创建了两个子窗口。

我正在渲染顶点数据到两个子窗口,但问题是,顶点数据只渲染到最后声明的子窗口。另一个子窗口保持黑色。

这些是显示回调函数:

void display1( void )
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     // clear the window
    glDrawArrays( GL_TRIANGLES, 0, 59);   
    glutSwapBuffers();
}
void display2( void )
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );     // clear the window
    glDrawArrays( GL_TRIANGLES, 0, 59);       
    glutSwapBuffers();
}

要渲染到另一个窗口或子窗口,您需要使用glutsetwwindow将其设置为活动

这取决于你发布图像更新的地方,也就是你设置活动窗口的地方。例如,如果您从重塑函数中执行此操作,则需要在这里执行:

void Reshape1( int width, int height )
{
  // activate sub-window 1
  glutSetWindow(subWin1);
  // ...
  glutPostRedisplay();
}
void Reshape2( int width, int height )
{
  // activate sub-window 2
  glutSetWindow(subWin2);
  // ...
  glutPostRedisplay();
}