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.