One additional question

do you provide direct access to frame buffers so that i can treat them
raw? as that is what i prefer to do. my main reason with wanting to
go with a game API is for the sound usage…as well as the portability
issue of course…and loop/event timing…

j–
/* ------------------------------------------------ *
Always remember you’re unique, just like everyone else
* ------------------------------------------------ */

do you provide direct access to frame buffers so that i can treat them
raw?

Yes. The only thing you have to be careful of is that the pitch of the
surface may be different than it’s width:

/----------------------
|VVVVVVVVVVVVVVVVVV| |
|VVVVVVVVVVVVVVVVVV| |
|VVVVVVVVVVVVVVVVVV| |
|VVVVVVVVVVVVVVVVVV| |
|VVVVVVVVVVVVVVVVVV| |
|VVVVVVVVVVVVVVVVVV| |
------------------/----/

The area filled with V is the visible area, but the surface actually
extends beyond the edge of the screen.

The formula for setting a surface to 0 is:

Uint8 *scanline = (Uint8 )surface->pixels;
for ( y=0; yh; ++y ) {
memset(scanline, 0, surface->w
surface->format->BytesPerPixel);
scanline += surface->pitch;
}

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/SDL/