niestety, moja klasa nie chce ładować obrazów, błąd występuje w funkcji initalize, bynajmniej przy debugowaniu tak jest
class Object2D
{
private:
GLuint Id;
int Width, Height;
public:
void Initalize(const char *Path)
{
ILuint img;
if (!ilLoadImage(Path))
{
printf("Object2D.Initialize(const char *Path): Failed to load %s, image id = %d", Path, img);
exit(0);
}
if (!ilConvertImage(IL_RGBA, IL_UNSIGNED_BYTE))
{
printf("Object2D.Initialize(const char *Path): Failed to convert %s, image id = %d", Path, img);
exit(0);
}
ilGenImages(1, &img);
ilBindImage(img);
glGenTextures(1, &this->Id);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, this->Id);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, ilGetInteger(IL_IMAGE_BPP), ilGetInteger(IL_IMAGE_WIDTH),
ilGetInteger(IL_IMAGE_HEIGHT), 0, ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE,
ilGetData());
this->Width = ilGetInteger(IL_IMAGE_WIDTH);
this->Height = ilGetInteger(IL_IMAGE_HEIGHT);
ilDeleteImages(1, &img);
}
void Draw()
{
glColor3f(1.f, 1.f, 1.f);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, this->Id);
glBegin(GL_QUADS);
glTexCoord2i(0, 0);
glVertex2i(0, 0);
glTexCoord2i(this->Width, 0);
glVertex2i(this->Width, 0);
glTexCoord2i(this->Width, this->Height);
glVertex2i(this->Width, this->Height);
glTexCoord2i(0, this->Height);
glVertex2i(0, this->Height);
glEnd();
}
};
i funkcja wywolujaca
Object2D obb;
obb.Initalize("test.png");
obb.Draw();