GLuint TextureHandle = 0;
FIBITMAP* Image = 0;
int ImageWidth = 0;
int ImageHeight = 0;
FIBITMAP* tmp;
FREE_IMAGE_FORMAT Format;
const char *File = "~/Bilder/lavaPathTraceTest.png"
FreeImage_Initialize();
Format= FreeImage_GetFileType(File,0);
tmp = FreeImage_Load(Format,File);
Image = FreeImage_ConvertTo32Bits(tmp);
FreeImage_Unload(tmp);
ImageWidth = FreeImage_GetWidth(Image);
ImageHeight = FreeImage_GetHeight(Image);
if(TextureHandle == 0){
glGenTextures(1,&TextureHandle);
checkOpenGLErrors();
}
//this works perfectly
//FreeImage_Save(Format,Image,"/home/alex/Bilder/FreeImageSave",0);
glBindTexture(GL_TEXTURE_2D,TextureHandle);
checkOpenGLErrors();
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,getTextureFilter(MagFilter));
checkOpenGLErrors();
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,getTextureFilter(MinFilter));
checkOpenGLErrors();
//this crashes with SIGSEGV
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,ImageWidth,ImageHeight,
0,GL_BGRA,GL_UNSIGNED_BYTE,(GLvoid *) Image);
checkOpenGLErrors();