Tao Te KaChing
Workin' the cash register of the Great Tao

Mazes, SDL, Smoking, and Me...

So, first and foremost, I will (hopefully) be posting daily for the next month.  I've decided to quit smoking.  I feel like ass all the time and have a 4-month old son for whom I've promised to quit.  I will, starting tomorrow, be using the patch, eating excessively, and curling up into a fetal position.  I will also, as a reminder to myself and a small benefit to mankind, provide an entry each day recounting my pain and suffering.  I've "quit" twice before for 2+ years.  If I can make it 30 days, I should be golden.

I have also been playing around with SDL the last week or so, and have re-written my MazeRunner screensaver to use SDL.  Based on my recent OCD on (GDI-based) screensavers, some initial Pros and Cons:


  • WAY WAY easy to use; much more so than DirectX or OpenGL
  • Fast and effective


  • Screensaver display settings "preview" seems next to impossible
  • SDL_Timer + SDL_Events for rendering = bad idea.  I had the timer send an event message for when to re-render the screen.  Quitting the saver would throw an error big time.  Seems that the saver was "in the process of rendering" when SDL_Quit was called and the saver was trying to free the surfaces.

I've also been having one hell of a time trying to figure out how to remove the "chunkiness" of the animation.  It's not flicker, but rather looks like a screen sync issue.

Although I'm not near to being fully pleased with the final product, and haven't taken the time to clean up my code, I've decided to throw the source (Visual Studio 2005) out here.  The screensaver and necessary dlls are here in a zip file.  I've also decided to throw the Yagol++ screensaver and GDI-based MazeRunner source out in zips.  They are here and here, respectively.

If anyone out there can take a look at the SDL MazeRunner code and provide any tips, changes, etc., I'd be thrilled.  I'd really like to know what I might be able to do to improve the "smoothness" of the animation.  I've only tried it out so far on my laptop here at home, so that may be a major reason, but I'd like it to look good on any system.