a mozesz wygenerowac przykladowa tablice (z palca napisać), jaka ta funkcja przyjmuje? Otóż próbowałem tej funkcji i ani jeden pixel się nie zmienił.
Właśnie próbowałem i za nic nie chciało odpalić.
Nie jestem pewny czy chodzi o mój sposób renderowania. Dlatego tez chciałbym się zapytać i poprawność logiki OpenGL:
Struktura klas wygląda tak
-Stage
--Layer
---Rectangle
--- Circle
--- Image - nad tym pracuje
Stage renderuje Layer'y, a Layer obiekty.
Tak wyglada renderowanie stage:
glClear( GL_COLOR_BUFFER_BIT );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
for(std::vector<Layer*>::const_iterator it = this->layers.begin(); it != this->layers.end(); ++it)
{
(*it)->draw();
}
glutSwapBuffers();
Funkcja draw w Layer wyglada tak:
void drawElements(){
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
for(std::vector<Abstract::ElementAbstract*>::const_iterator it = this->elements.begin(); it != this->elements.end(); ++it)
{
(*it)->draw();
}
}
A znow Obiekt sie renedruje np tak:
void draw(){
glBegin(GL_POLYGON);
glColor3d( (this->color[0]/255), (this->color[1]/255), (this->color[2]/255));
glVertex2d(x-1, -(y+height-1));
glVertex2d(x-1, -(y-1));
glVertex2d(x+width-1, -(y-1));
glVertex2d(x+width-1 , -(y+height-1));
glEnd();
}
I elementy sie renderuja co 25ms (taki clockTime)
Jako to że zauważyłem że elementy, obiekty zaczynaja sie od glBegin(); natomiast drawPixels od niczego - i nie jestem pewien czy tego to jest wina, ze nic mi sie nie wyswietlalo