我的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();
}
答案 0 :(得分:0)
要渲染到另一个窗口或子窗口,您需要使用glutSetWindow将其设置为活动状态。
这取决于您发布图像更新的位置,也就是您设置活动窗口的位置。例如,如果从重塑函数执行此操作,则需要在那里执行:
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();
}