diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/sdlblitsurface.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/sdlblitsurface.html Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,339 @@ +
This performs a fast blit from the source surface to the destination surface.
The width and height in srcrect determine the +size of the copied rectangle. Only the position is used in the +dstrect (the width and height are ignored).
If srcrect is NULL, the +entire surface is copied. If dstrect is +NULL, then the destination position (upper left +corner) is (0, 0).
The final blit rectangle is saved in +dstrect after all clipping is performed +(srcrect is not modified).
The blit function should not be called on a locked surface.
The results of blitting operations vary greatly depending on whether SDL_SRCAPLHA is set or not. See SDL_SetAlpha for an explaination of how this affects your results. Colorkeying and alpha attributes also interact with surface blitting, as the following pseudo-code should hopefully explain. +
if (source surface has SDL_SRCALPHA set) { + if (source surface has alpha channel (that is, format->Amask != 0)) + blit using per-pixel alpha, ignoring any colour key + else { + if (source surface has SDL_SRCCOLORKEY set) + blit using the colour key AND the per-surface alpha value + else + blit using the per-surface alpha value + } +} else { + if (source surface has SDL_SRCCOLORKEY set) + blit using the colour key + else + ordinary opaque rectangular blit +}
If the blit is successful, it returns 0, +otherwise it returns -1.
If either of the surfaces were in video memory, and the blit returns +-2, the video memory was lost, so it should be +reloaded with artwork and re-blitted: +
while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) { + while ( SDL_LockSurface(image)) < 0 ) + SDL_Delay(10); + -- Write image pixels to image->pixels -- + SDL_UnlockSurface(image); + }+This happens under DirectX 5.0 when the system switches away from your +fullscreen application. Locking the surface will also fail until you +have access to the video memory again.