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