Original Post
Hey all, anybody here had any problems with SDL_Surface pointers when encapsulating SDL in classes??
Here''s a piece of code:
Now, the problem is, that function works fine the first time the program calls it, the second time it gives me this in the stderr.txt file:
Fatal signal: Segmentation Fault (SDL Parachute Deployed)
Can anybody see anything wrong in my this function? I''ve been trying to debug this code for 3 days now and can''t seem to figure out what''s wrong... I know that the error occurs somewhere in the SDL_BlitSurface function but I can''t seem to put my hand on what the exact problem is. Just so you know, HSSurface is simply an SDL_Surface *surface and an SDL_Rect rect. I encapsulated them in classes...
"And that''s the bottom line cause I said so!"
** I WANT TO BE THE MODERATOR FOR THE LINUX FORUM **
Cyberdrek
Headhunter Soft
A division of DLC Multimedia
Resist Windows XP''s Invasive Production Activation Technology! "gitty up" -- Kramer /(bb|[^b]{2})/ that is the Question -- ThinkGeek.com
int HSSprite::draw( HSSurface screen )
{
SDL_Surface *tmpSurface = screen.getSurface();
SDL_Rect tmpRect = screen.getRect();
screen.changeRectW( image->w );
screen.changeRectH( image->h );
// **
// ** Palettized screen modes will have a default palette (a standard
// ** 8*8*4 colour cube), but if the image is palettized as well we can
// ** use that palette for a nicer colour matching
// **
if ( image->format->palette && tmpSurface->format->palette )//screen.getSurface()->format->palette )
{
SDL_SetColors( tmpSurface, image->format->palette->colors, 0,
image->format->palette->ncolors );
}
// ** Blit onto the screen surface
if( SDL_BlitSurface( image, NULL, tmpSurface, &tmpRect ) < 0 )//&(screen.getRect()) ) < 0 )
fprintf( stderr, "BlitSurface error: %s\n", SDL_GetError() );
// ** Update modified rectangles
SDL_UpdateRect( tmpSurface, 0, 0, image->w, image->h );
return( 1 );
};
|
Resist Windows XP''s Invasive Production Activation Technology! "gitty up" -- Kramer /(bb|[^b]{2})/ that is the Question -- ThinkGeek.com