OpenGL을 프로그래밍하는 데 익숙하며 Qt에 처음 익숙합니다. 튜토리얼에 따라, 내 OpenGL을 위젯에 두 개의 삼각형을 만들려면 다음 코드를 사용했습니다 :크기가 조정될 때까지 삼각형을 표시하지 않는 Qt OpenGL 위젯
mainwindow.cpp
void MainWindow::initializeGL() {
qDebug("initializing");
GLfloat verticies[] = {
+0.0f, +0.0f,
+1.0f, +1.0f,
-1.0f, +1.0f,
-1.0f, -1.0f,
+1.0f, -1.0f
};
GLuint vertexBufferID;
glGenBuffers(1, &vertexBufferID);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferID);
glBufferData(GL_ARRAY_BUFFER, sizeof(verticies), verticies, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
GLushort indices[] = {
0, 1, 2,
0, 3, 4
};
GLuint indexBufferID;
glGenBuffers(1, &indexBufferID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferID);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
glClearColor(0, 0, 0, 1);
}
void MainWindow::paintGL() {
qDebug("painting");
//glViewport(0, 0, width(), height());
glClear(GL_COLOR_BUFFER_BIT);
//glDrawArrays(GL_TRIANGLES, 0, 6);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
}
이 이상한이 코드가 완벽하게 작동,하지만 내가 크기를 조정하면 나타난다이다 창 : 크기 조정하기 전에
: 크기 조정 후
:
initializing
과 painting
모두 크기 변경 전에 콘솔에 출력되어 호출됩니다.
크기를 조정하면 삼각형이 표시됩니다.
차이가 있다면 Mac OSX (Mavericks)를 사용하고 있습니다.
사용하는 것이 유용 할 수 있습니다;'paintGL''의 끝. 같은 행동. – carloabelli