Stworzyłem sobie klasę która wyświetla obraz.
Gdy ją wywołałem nic się nie pokazało więc sprawdziłem czy plik graficzny jest ładowany poprawnie.
Okazało się że tak więc użyłem glGetError() i okazało się, że to OpenGL ma jakiś błąd.
Sprawdziłem kod błędu, który wynosi 1280 - GL_INVALID_ENUM - tylko nie wiem co jest nie tak bo w funkcji nic nie zmieniałem.
Oto klasa testowa:
class Klasa{
public:
Klasa(); // Konstruktor
void Draw();
~Klasa(); // Destruktor
};
Klasa::Klasa(){
}
void Klasa::Draw(){
DrawTexture(100,100,100,100,SE);
}
Klasa::~Klasa(){
}
Jak już mówiłem - tzn. pisałem - sprawdziłem funkcje glGetError() i w tej wskazał błąd tylko nie wiem co jest przyczyną.
ILuint LoadTexture(ILuint & Texture, char *Path)
{
// generowanie nazwy obrazu
ilGenImages(1, &Texture);
// wybranie biezacego obrazu
ilBindImage(Texture);
// ladowanie obrazu z pliku
ilLoadImage(Path);
// konwertowanie tekstury
if (ilGetInteger(IL_IMAGE_BITS_PER_PIXEL) == 24)ilConvertImage(IL_RGB, IL_UNSIGNED_BYTE);
else if (ilGetInteger(IL_IMAGE_BITS_PER_PIXEL) == 32)ilConvertImage(IL_RGBA, IL_UNSIGNED_BYTE);
// obsluga bledow
if(ilGetError() != IL_NO_ERROR)return ilGetError();
// generowanie nazwy tekstury
glGenTextures( 1, & Texture );
// wybranie biezacej tekstury
glBindTexture( GL_TEXTURE_2D, Texture );
// 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
glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
// 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() );
//szybkie spr kodu bledu
//itoa(glGetError(),Error,10);
if(glGetError==GL_NO_ERROR )return IL_NO_ERROR;
}
Dlaczeo nagle w tej funkcji jest błąd - czy klasa mogła coś na mieszać?