glDrawPixels - (NVIDIA?) gondok

Sziasztok! A következő (elvileg egyszerű) feladat fogott ki rajtam: egy kép (bitmap), illetve a rajta egérrel kijelölt, fekete téglalapok kirajzolása. A gondom pedig az, hogy az alábbi kód egyik gépen helyesen működött, egy másikon viszont a bitmap mögé rajzolta a téglalapokat. Arra tippelek, hogy a glDrawPixels függvényel, illetve a proci (vagy videokártya) sebességével van valamilyen összefüggés (fura, hogy a két gépben, ahol rosszul működött, GeForce6-os kártya volt)


	//draw image (as bitmap)
	int ww = image_orig_m->Width();
	int hh = image_orig_m->Height();
	unsigned char* pixels = image_orig_m->ImageData();
	glPixelStorei(GL_UNPACK_ALIGNMENT,1);
	glRasterPos2i(0,hh);
        GLenum  format = GL_RGB;
	glDrawPixels(ww,hh,format,GL_UNSIGNED_BYTE,pixels);

	//draw mask
	glBegin(GL_QUADS);	
	for(int ii=0; ii<mask_m.size(); ii++)
	{
		glColor4f(0.0f,0.0f,0.0f,1.0f);
                glVertex3i(mask_m[ii].x1, mask_m[ii].y1, 0);
		glVertex3i(mask_m[ii].x2, mask_m[ii].y1, 0);
		glVertex3i(mask_m[ii].x2, mask_m[ii].y2, 0);
		glVertex3i(mask_m[ii].x1, mask_m[ii].y2, 0);
	}
	glEnd();

Lehet, hogy a glDrawPixels még "nem végzett", amikor a glBegin-nel rajzolgatok? (Ez mondjuk elég hülyén hangzik). Ha bárkinek bármilyen tippje lenne, hogy merre induljak tovább, azt nagyon megköszönném.

Üdv.: Deacon

Hozzászólások

Rakd a bitmapet egy texturaba, egy fullscreen quadra, es akkor a melyseggel tudod egyertelmuen, hogy melyik hol lesz, es akkor nem kell a sorrend miatt aggodni, hogy melyikkel vegzett mar a pipeline es melyikkel nem.

Arra figyelj, hogy a texturakoordinatak stimmeljenek, mert kulonben a bitmap szele csunya lesz.

Köszi a villámgyors választ! :) Reméltem, hogy megúszom textúrázás nélkül, de akkor mégis nekiesem (és remélem kiderül, hogy nem is lesz az olyan bonyolult - egyelőre csak az homályos, hogy a quad-ot hogy tudom a megfelelő helyen és méretben megjeleníteni; gondolom az orthografikus nézet ebben segíteni fog...) Ha jutottam valamire, bekopizom (és köszi még egyszer!)

DoubleBuffert hasznalsz esetleg ? Kikapcsolva megszunik a jelenseg ?

Ha DEPTH teszt engedelyezve van, meg amit tehetsz, hogy kep terulten, a DEPTH buffert is atirod nagyon tavolira.

Egyebkent mibol gondolod, hogy moge rajzolja ?
glClear -t hasznalsz ? DEPTH buffert is torlod ? Mas anomalia nincs ?

Z fight. Ne ugyanazon a Z koordinatan legyen a ketto.

---
pontscho / fresh!mindworkz