1) Dziękuje Ci @Gynvael Coldwind za pomoc z tymi teksturami.
2)
O, już nie czarny kwadrat? ;). Chwilowo nie mogę, bo projekty - ale spróbuję się przyjrzeć (o ile nie zapomnę;/)
-
@msm
Czarny kwadrat wyświetlał się tylko wtedy gdy ładowałem plik z kanałem alfa, którego w przykładowym obrazie nie ma. *Jednak pytanie jak załadować plik .png z kanałem alfa nadal otwarte.
3) Dlaczego moja funkcja nie ładuje plików *.bmp i *.jpg?
int DrawImage(char* Path, int x, int y)
{
// tworzenie do przechowania tablicy
ILuint ImgID;
// pobranie szerokosci obrazu
ILuint WidthImage = ilGetInteger(IL_IMAGE_WIDTH);
// pobranie wysokosci obrazu
ILuint HeightImage = ilGetInteger(IL_IMAGE_HEIGHT);
// generowanie nazwy obrazu
ilGenImages(1, &ImgID);
// wybranie biezacego obrazu
ilBindImage(ImgID);
// ladowanie obrazu z pliku
ilLoadImage(Path);
// obsluga bledow
if(ilGetError() != IL_NO_ERROR)return ilGetError();
// generowanie nazwy tekstury
glGenTextures( 1, & ImgID );
// wybranie biezacej tekstury
glBindTexture( GL_TEXTURE_2D, ImgID );
// tworzenie tekstury
glTexImage2D( GL_TEXTURE_2D, 0, ilGetInteger( IL_IMAGE_BPP ), ilGetInteger( IL_IMAGE_WIDTH ),
ilGetInteger( IL_IMAGE_HEIGHT ), 0, ilGetInteger( IL_IMAGE_FORMAT ), GL_UNSIGNED_BYTE, ilGetData() );
// ustalenie parametrów tekstury
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
// ustalenie trybu teksturowania
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
// ustalenie koloru kwadratu
glColor3f( 0.0, 0.0, 0.0 );
// rysowanie kwadratu pod teksture
glBegin( GL_QUADS );
glTexCoord2f( 0, 0 );
glVertex2f( x, y );
glTexCoord2f( 1, 0 );
glVertex2f( x + WidthImage, y );
glTexCoord2f( 1, 1 );
glVertex2f( x + WidthImage, y + HeightImage );
glTexCoord2f( 0, 1 );
glVertex2f( x, y + HeightImage );
glEnd();
return 1;
}