Blitting in SDL

Started by
3 comments, last by Chocoboko 21 years, 5 months ago
Hello. I am trying to blit an image in SDL, yet before that, I am trying to blit an empty screen to erase the screen before blitting the image. It causes nasty flickering effects. My code is set up like this: *blit empty surface to erase screen* *blit image* *swap buffers* How do I do multiple blits in the same function without causing the screen to flicker? Or could it just be an outdated video card? I''d appreciate any answers you have. Thank you.
Advertisement
Are you using double buffering?
Make sure to pass SDL_DOUBLEBUF to SDL_SetVideoMode.
Instead of blitting an empty surface you might try using SDL_Rect to clear the background.
baumep
I don''t know if I can help you because I don''t know much about SDL, but the following is the first thing that popped into my mind:

please tell me that this empty screen is being blitted to the offscreen surface. If you were to blit the empty screen to the buffer that is currently on the screen it would cause the flickering that you describe.
quote:Original post by baumep
Are you using double buffering?
Make sure to pass SDL_DOUBLEBUF to SDL_SetVideoMode.
Instead of blitting an empty surface you might try using SDL_Rect to clear the background.

Yea SDL_Rect is the common practice to clearing the screen (the primary surface) in order to redraw it and definetly better than blitting a whole surface.

Just a little addition to what baumep said... when you use the SDL_DOUBLEBUF flag, make sure you also use the SDL_HWSURFACE flag otherwise the double buffering won''t work.

_________________________________________________________________

Drew Sikora
A.K.A. Gaiiden

ICQ #: 70449988
AOLIM: DarkPylat

Blade Edge Software
Staff Member, GDNet
Public Relations, Game Institute

3-time Contributing author, Game Design Methods , Charles River Media
Online column - Design Corner at Pixelate

Unnoficial IGDA chat! [polaris.starchat.net -> #igda]
NJ IGDA Chapter - NJ developers unite!! [Chapter Home | Chapter Forum]

"Real programmers don''t work from 9 to 5. If any real programmers are around at 9am it''s because they were up all night."
-Anon.

"It''s not the size of the source that matters, it''s how you use it"
- Self

Drew Sikora
Executive Producer
GameDev.net


  SDL_FillRect(screen, 0, 0);DrawScene();SDL_Flip(screen);  


Use fillrect, not a good idea to blit a whole surface onto the screen.

This topic is closed to new replies.

Advertisement