1

GL コードに問題があります。Ubuntu 12.10 プラットフォームで実行しており、作成した 2 つのサブ ウィンドウで頂点配列データをレンダリングしようとしています。メイン ウィンドウを作成し、その直後に 2 つのサブウィンドウを作成します。

頂点データを両方のサブウィンドウにレンダリングしていますが、問題は、宣言された最後のサブウィンドウにのみ頂点データがレンダリングされることです。もう一方のサブウィンドウは黒のままです。

これらは表示コールバック関数です:

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();
}
4

1 に答える 1

0

別のウィンドウまたはサブウィンドウにレンダリングするには、 glutSetWindowでアクティブに設定する必要があります。

画像の更新をどこから発行するかによって異なり、アクティブなウィンドウを設定する場所です。たとえば、reshape 関数から実行する場合は、そこで実行する必要があります。

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();
}
于 2013-04-22T07:31:00.250 に答える