OpenGLが描画されない、よくある間違いなどに関するたくさんの記事やSOの質問を見てきました。これは、私を困惑させています。
glOrtho
いくつかの異なる設定、異なる頂点の位置、色などを試しましたが、すべて役に立ちませんでした。
コードのクリアカラーが紫色(ウィンドウが紫色)であるため、OpenGLの状態が有効であることを確認できます。gDEBuggerは、フレームが更新されていることも確認しています(Frapsも同様です)。
これがコードです。「役に立たなかった」とマークされた行は元々そこになく、私が試したものと失敗したものでした。
QTWindow::QTWindow( )
{
// Enable mouse tracking
this->setMouseTracking(true);
}
void QTWindow::initializeGL()
{
// DEBUG
debug("Init'ing GL");
this->makeCurrent(); ///< Didn't help
this->resizeGL(0, 0); ///< Didn't help
glDisable(GL_CULL_FACE); ///< Didn't help
glClearColor(1, 0, 1, 0);
}
void QTWindow::paintGL()
{
// DEBUG
debug("Painting GL");
this->makeCurrent(); ///< Didn't help
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,1,1);
glBegin(GL_TRIANGLES);
glVertex2f(500,100);
glVertex2f(100,500);
glVertex2f(0,0);
glEnd();
this->swapBuffers(); ///< Didn't help
}
void QTWindow::resizeGL(int width, int height)
{
// DEBUG
debug("Resizing GL");
this->makeCurrent(); ///< Didn't help
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 1000, 0, 1000, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
カリングをオフにしても、三角形はまったく表示されません。ただし、3つのデバッグログはすべて、本来あるべき状態で正確に呼び出されます。
私は何が欠けていますか?