OpenGL i wyswietlanie boxa z zdjęciem

0

Witam.
Potrzebuje prostego przykładu jak z mojej tablicy pixelowej przelać to na openGL w formie 2D.
Przeszukałem internety, ale nie potrafię znaleźć bardzo prostego przykładu... Próbowałem z Teksturami i DrawPixels - to albo nie podawali formatu tablicy, jaka funkcja drawPixels przyjmuje, albo tekstury rozbudowane na 300 linijek - a chce tylko wstawic kilkaset pixli w konkretne miejsca.
Chcę zrobić komponent do mojej klasy (coś jak KineticJS) , która pozwala dodwać obrazki (obecnie mam kwadraty, koleczka itp).

Uzywam gl i Gluta
Zna/ma ktoś jakiś sprawdzony przykład z własnych projektów?

0

http://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml

Format bitmapy podajesz za pomocą parametrów format i type.

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1