1

単純にウィンドウに三角形を描画しようとしています。以前のコードで図形を描画し、フラッシュの失敗やカラーバッファーのクリアの失敗などの一般的な問題を調べました。

何を試しても、基本的に以前の(動作している!)コードとまったく同じようにコードを単純化した後でも、画面に何も描画できません。私が持っているのはメインとレンダリングだけです:

// Declarations //
void Render(void); //Call the drawing functions

int main(int argc, char *argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(20,20);
    glutCreateWindow("Triangle Test");

    //prepare for drawing
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);

    //now draw
    glutDisplayFunc(Render);

    glutMainLoop();
}


// ---- Render Function ----
void Render(void)
{

    // Draw a triangle
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_LINE_STRIP);

    glVertex2f(100.0f, 20.0f);
    glVertex2f(0.0f, 20.0f);
    glVertex2f(20.0f, 50.0f);

    glEnd();
    glFlush();
}

実行時に、設定した背景色(この場合は黒)だけでウィンドウを描画します。私は完全に困惑しています。スタック上の他のすべての質問は、私がここに持っているもの(つまり、glFlush)によって解決されているようであり、それは私の古いコードと実質的に同じです。何か案は?

4

1 に答える 1

1

ウィンドウよりも大きなライン ストリップを描画しています。より広い領域が表示されるようにマトリックスを設定するか、より小さな多角形を描画するか、ライン ストリップの代わりに三角形を描画して塗りつぶされた多角形を描画する必要があります。

于 2012-10-27T15:38:37.820 に答える