我已經看過一大堆關於OpenGL的文章和SO問題,不是繪圖,常見的錯誤等等。這個問題困擾着我。QGLWidget拒絕繪製任何東西
我試過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();
}
即使關閉剔除,該三角形也不會被顯示。但是,所有三個調試日誌都被稱爲它們應該如何。
我錯過了什麼?
所以基本上,你會得到一個紫色的屏幕(作爲'glClearColor'和'glClear'的結果),但沒有三角形繪圖?只是想澄清... – Aaron
正確。我已經嘗試過四邊形,而且我現在只是在嘗試不同的東西,沒有韻律或理由。我刪除了對'makeCurrent'的調用,並將'updateGL'改爲'update'。依然沒有。 – Qix