symbian-qemu-0.9.1-12/libsdl-trunk/docs/man3/SDL_BlitSurface.3
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 .TH "SDL_BlitSurface" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" 
       
     2 .SH "NAME"
       
     3 SDL_BlitSurface \- This performs a fast blit from the source surface to the destination surface\&.
       
     4 .SH "SYNOPSIS"
       
     5 .PP
       
     6 \fB#include "SDL\&.h"
       
     7 .sp
       
     8 \fBint \fBSDL_BlitSurface\fP\fR(\fBSDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect\fR);
       
     9 .SH "DESCRIPTION"
       
    10 .PP
       
    11 This performs a fast blit from the source surface to the destination surface\&.
       
    12 .PP
       
    13 Only the position is used in the \fBdstrect\fR (the width and height are ignored)\&.
       
    14 .PP
       
    15 If either \fBsrcrect\fR or \fBdstrect\fR are \fBNULL\fP, the entire surface (\fBsrc\fR or \fBdst\fR) is copied\&.
       
    16 .PP
       
    17 The final blit rectangle is saved in \fBdstrect\fR after all clipping is performed (\fBsrcrect\fR is not modified)\&.
       
    18 .PP
       
    19 The blit function should not be called on a locked surface\&.
       
    20 .PP
       
    21 The results of blitting operations vary greatly depending on whether \fBSDL_SRCAPLHA\fP is set or not\&. See \fISDL_SetAlpha\fR 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\&. 
       
    22 .PP
       
    23 .nf
       
    24 \f(CWif (source surface has SDL_SRCALPHA set) {
       
    25     if (source surface has alpha channel (that is, format->Amask != 0))
       
    26         blit using per-pixel alpha, ignoring any colour key
       
    27     else {
       
    28         if (source surface has SDL_SRCCOLORKEY set)
       
    29             blit using the colour key AND the per-surface alpha value
       
    30         else
       
    31             blit using the per-surface alpha value
       
    32     }
       
    33 } else {
       
    34     if (source surface has SDL_SRCCOLORKEY set)
       
    35         blit using the colour key
       
    36     else
       
    37         ordinary opaque rectangular blit
       
    38 }\fR
       
    39 .fi
       
    40 .PP
       
    41 .SH "RETURN VALUE"
       
    42 .PP
       
    43 If the blit is successful, it returns \fB0\fR, otherwise it returns \fB-1\fR\&.
       
    44 .PP
       
    45 If either of the surfaces were in video memory, and the blit returns \fB-2\fR, the video memory was lost, so it should be reloaded with artwork and re-blitted: 
       
    46 .PP
       
    47 .nf
       
    48 \f(CW        while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) {
       
    49                 while ( SDL_LockSurface(image)) < 0 )
       
    50                         Sleep(10);
       
    51                 -- Write image pixels to image->pixels --
       
    52                 SDL_UnlockSurface(image);
       
    53         }\fR
       
    54 .fi
       
    55 .PP
       
    56  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\&.
       
    57 .SH "SEE ALSO"
       
    58 .PP
       
    59 \fI\fBSDL_LockSurface\fP\fR, \fI\fBSDL_FillRect\fP\fR, \fI\fBSDL_Surface\fR\fR, \fI\fBSDL_Rect\fR\fR
       
    60 ...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01