I don’t know what i’m doing wrong here. IMG_Load returns a Pointer to a
SDL_Surface and SDL_DisplayFormat expects a pointer to a SDL_Surface.
Any suggestions ?
You can’t check to see if IMG_Load returns NULL if you do it like that, and
you can’t free the surface either.
Try doing it like this:
SDL_Surface * blah=NULL;
SDL_Surface * temp=IMG_Load ( “data/images/block0.jpg”);
if(temp){
blah=SDL_DisplayFormat(temp);
SDL_FreeSurface(temp);
}else{
//handle the error.
}> ----- Original Message -----
From: altaycebe@vpw.wh.uni-dortmund.de (Altay Cebe)
To:
Sent: Wednesday, October 30, 2002 4:40 PM
Subject: [SDL] Using IMG_Load with SDL_DisplayFormat
Hi
Whenever i use SDL_DisplayFormat in addition with IMG_load (from SDL_image
libary) i get an segmentation Fault:
I don’t know what i’m doing wrong here. IMG_Load returns a Pointer to a
SDL_Surface and SDL_DisplayFormat expects a pointer to a SDL_Surface.
Any suggestions ?
it still Segfaults. It doesn’t work for that pSurface_Array . I experimented a
bit, but i can’t keep it from seg faulting. It seems that temp is != NULL
because it doesn’t even print “ERROR”.
But I would like to store all SDL_Surfaces in a array
SDL_Surface ** pSurface_Array = new SDL_Surface[ objectCount ];
new SDL_Surface[ objectCount ] is asking for an array of SDL_Surfaces.
This isn’t what you want - you want an array of SDL_Surface pointers,
which you can then initialise with IMG_Load. I’d probably do it like
this for clarity
typedef SDL_Surface* ptrSDL_Surface;
ptrSDL_Surface* pSurface_Array = new ptrSDL_Surface[objectCount];
Feel free to remove the typedef, but it’s there to make it explicit that
you’re allocating an array of pointers.–
Kylotan http://pages.eidosnet.co.uk/kylotan
SDL_FreeSurface(temp);
SDL_FreeSurface(blah); <-- You don’t want to do this!
}
leaves pSurface_Array[i] pointing to a surface you just freed,
cheers,
John.> ----- Original Message -----
From: altaycebe@vpw.wh.uni-dortmund.de (Altay Cebe)
To:
Sent: Wednesday, October 30, 2002 11:26 PM
Subject: Re: [SDL] Using IMG_Load with SDL_DisplayFormat
No, wait…it still doesn’t work the way i want :-((
it still Segfaults. It doesn’t work for that pSurface_Array . I experimented
a
bit, but i can’t keep it from seg faulting. It seems that temp is != NULL
because it doesn’t even print “ERROR”.