Mercurial > sdl-ios-xcode
annotate docs/man3/SDL_BlitSurface.3 @ 1166:da33b7e6d181
Date: Tue, 1 Nov 2005 20:25:10 +0100
From: Dirk Mueller
Subject: [PATCH] build SDL with nonexecutable stack
libSDL is by default marked with an executable stack, which it doesn't
actually need. the reason for this is that there are assembler files in the
source tree not properly annotated with the "noexec stack" section. As such
the linker does a safe-fallback and marks the whole lib as "requires
executable stack".
the patch below removes this by adding annotations. As far as I can see it
shouldn't break anything.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 01 Nov 2005 23:19:59 +0000 |
parents | e5bc29de3f0a |
children | 546f7c1eb755 |
rev | line source |
---|---|
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
1 .TH "SDL_BlitSurface" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" |
0 | 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 | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
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\&. |
0 | 22 .PP |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
23 .nf |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
24 \f(CWif (source surface has SDL_SRCALPHA set) { |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
25 if (source surface has alpha channel (that is, format->Amask != 0)) |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
26 blit using per-pixel alpha, ignoring any colour key |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
27 else { |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
28 if (source surface has SDL_SRCCOLORKEY set) |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
29 blit using the colour key AND the per-surface alpha value |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
30 else |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
31 blit using the per-surface alpha value |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
32 } |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
33 } else { |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
34 if (source surface has SDL_SRCCOLORKEY set) |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
35 blit using the colour key |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
36 else |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
37 ordinary opaque rectangular blit |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
38 }\fR |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
39 .fi |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
40 .PP |
0 | 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 | |
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
60 ...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01 |