Limas
08-20-2010, 06:07 AM
Hi,
I want to load a PNG file with freeimage and then render it with glDrawPixels but it dont work.
void ImageLoader::LoadImage(const char *filename){
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
FIBITMAP *dib(0);
fif = FreeImage_GetFileType(filename, 0);
if(fif == FIF_UNKNOWN)
fif = FreeImage_GetFIFFromFilename(filename);
if(FreeImage_FIFSupportsReading(fif))
dib = FreeImage_Load(fif, filename);
bits = FreeImage_GetBits(dib);
width = FreeImage_GetWidth(dib);
height = FreeImage_GetHeight(dib);
FreeImage_Unload(dib);
}
This functon loads a file and then I render it:
ImageLoader pic;
pic.LoadImage("C:\\pic.png");
...
glClearColor(0.9, 0.9, 0.9, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glRasterPos2i(10,10);
glDrawPixels(pic.width, pic.height, GL_RGBA, GL_INT, pic.bits);
glfwSwapBuffers();
Can someone help me? I dont want to use a texture.
I want to load a PNG file with freeimage and then render it with glDrawPixels but it dont work.
void ImageLoader::LoadImage(const char *filename){
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
FIBITMAP *dib(0);
fif = FreeImage_GetFileType(filename, 0);
if(fif == FIF_UNKNOWN)
fif = FreeImage_GetFIFFromFilename(filename);
if(FreeImage_FIFSupportsReading(fif))
dib = FreeImage_Load(fif, filename);
bits = FreeImage_GetBits(dib);
width = FreeImage_GetWidth(dib);
height = FreeImage_GetHeight(dib);
FreeImage_Unload(dib);
}
This functon loads a file and then I render it:
ImageLoader pic;
pic.LoadImage("C:\\pic.png");
...
glClearColor(0.9, 0.9, 0.9, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glRasterPos2i(10,10);
glDrawPixels(pic.width, pic.height, GL_RGBA, GL_INT, pic.bits);
glfwSwapBuffers();
Can someone help me? I dont want to use a texture.