diff options
Diffstat (limited to 'distrib/sdl-1.2.15/docs/man3/SDL_BlitSurface.3')
-rw-r--r-- | distrib/sdl-1.2.15/docs/man3/SDL_BlitSurface.3 | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/docs/man3/SDL_BlitSurface.3 b/distrib/sdl-1.2.15/docs/man3/SDL_BlitSurface.3 new file mode 100644 index 0000000..5f62ffb --- /dev/null +++ b/distrib/sdl-1.2.15/docs/man3/SDL_BlitSurface.3 @@ -0,0 +1,60 @@ +.TH "SDL_BlitSurface" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" +.SH "NAME" +SDL_BlitSurface \- This performs a fast blit from the source surface to the destination surface\&. +.SH "SYNOPSIS" +.PP +\fB#include "SDL\&.h" +.sp +\fBint \fBSDL_BlitSurface\fP\fR(\fBSDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect\fR); +.SH "DESCRIPTION" +.PP +This performs a fast blit from the source surface to the destination surface\&. +.PP +Only the position is used in the \fBdstrect\fR (the width and height are ignored)\&. +.PP +If either \fBsrcrect\fR or \fBdstrect\fR are \fBNULL\fP, the entire surface (\fBsrc\fR or \fBdst\fR) is copied\&. +.PP +The final blit rectangle is saved in \fBdstrect\fR after all clipping is performed (\fBsrcrect\fR is not modified)\&. +.PP +The blit function should not be called on a locked surface\&. +.PP +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\&. +.PP +.nf +\f(CWif (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 +}\fR +.fi +.PP +.SH "RETURN VALUE" +.PP +If the blit is successful, it returns \fB0\fR, otherwise it returns \fB-1\fR\&. +.PP +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: +.PP +.nf +\f(CW while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) { + while ( SDL_LockSurface(image)) < 0 ) + Sleep(10); + -- Write image pixels to image->pixels -- + SDL_UnlockSurface(image); + }\fR +.fi +.PP + 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\&. +.SH "SEE ALSO" +.PP +\fI\fBSDL_LockSurface\fP\fR, \fI\fBSDL_FillRect\fP\fR, \fI\fBSDL_Surface\fR\fR, \fI\fBSDL_Rect\fR\fR +.\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01 |