Moja klasa wygląda bardzo podobnie do tej: http://doc.qt.nokia.com/stable/activeqt-opengl-glbox-cpp.html. Z tą róznicą, że mam zamiast metody makeObject() dwie: jedna: rysujTrojkat() i rysujKwadrat(). W nich wyrysowuję sobie wszystko i jest ok. Ale kiedy chcę pokazać je na ekranie, widać tylko kwadrat.
Ważniejsze kawałki kodu:
void klasa::initializeGL()
{
qglClearColor(QColor(0,0,0));
kwadrat = rysujKwadrat();
glLoadIdentity();
glTranslatef(0.0f,1.0f,0.0f);
trojkat = rysujTrojkat();
glShadeModel (GL_FLAT);
}
void klasa::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0, -3, -10);
glScalef(skala, skala, skala);
glRotatef(xRot, 1, 0, 0);
glRotatef(yRot, 0, 1, 0);
glRotatef(zRot, 0, 0, 1);
glCallList(kwadrat);
glCallList(trojkat);
}
i rysowanie kwadratu:
GLuint klasa::rysujKwadrat()
{
GLuint kwLista = glGenLists(1);
glNewList(kwLista, GL_COMPILE);
qglColor(QColor(0, 255, 0));
glBegin(GL_QUADS);
//....
glEnd();
glEndList();
return kwLista;
}
w konstruktorze mam tak:
kwadrat = rysujKwadrat();
trojkat = rysujTrojkat();
jestem poczatkujacy jesli chodzi o Qt, a co dopiero o OpenGL. Prosze o pomoc