Mercurial > sdl-ios-xcode
annotate docs/html/sdlcreateyuvoverlay.html @ 1542:a8bf1aa21020
Fixed bug #15
SDL_blit_A.mmx-speed.patch.txt --
Speed improvements and a bugfix for the current GCC inline mmx
asm code:
- Changed some ops and removed some resulting useless ones.
- Added some instruction parallelism (some gain)
The resulting speed on my Xeon improved upto 35% depending on
the function (measured in fps).
- Fixed a bug where BlitRGBtoRGBSurfaceAlphaMMX() was
setting the alpha component on the destination surfaces (to
opaque-alpha) even when the surface had none.
SDL_blit_A.mmx-msvc.patch.txt --
MSVC mmx intrinsics version of the same GCC asm code.
MSVC compiler tries to parallelize the code and to avoid
register stalls, but does not always do a very good job.
Per-surface blending MSVC functions run quite a bit faster
than their pure-asm counterparts (upto 55% faster for 16bit
ones), but the per-pixel blending runs somewhat slower than asm.
- BlitRGBtoRGBSurfaceAlphaMMX and BlitRGBtoRGBPixelAlphaMMX (and all
variants) can now also handle formats other than (A)RGB8888. Formats
like RGBA8888 and some quite exotic ones are allowed -- like
RAGB8888, or actually anything having channels aligned on 8bit
boundary and full 8bit alpha (for per-pixel alpha blending).
The performance cost of this change is virtually 0 for per-surface
alpha blending (no extra ops inside the loop) and a single non-MMX
op inside the loop for per-pixel blending. In testing, the per-pixel
alpha blending takes a ~2% performance hit, but it still runs much
faster than the current code in CVS. If necessary, a separate function
with this functionality can be made.
This code requires Processor Pack for VC6.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 15 Mar 2006 15:39:29 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >SDL_CreateYUVOverlay</TITLE | |
5 ><META | |
6 NAME="GENERATOR" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
0 | 8 "><LINK |
9 REL="HOME" | |
10 TITLE="SDL Library Documentation" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="Video" | |
14 HREF="video.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="SDL_GL_SwapBuffers" | |
17 HREF="sdlglswapbuffers.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_LockYUVOverlay" | |
20 HREF="sdllockyuvoverlay.html"></HEAD | |
21 ><BODY | |
22 CLASS="REFENTRY" | |
23 BGCOLOR="#FFF8DC" | |
24 TEXT="#000000" | |
25 LINK="#0000ee" | |
26 VLINK="#551a8b" | |
27 ALINK="#ff0000" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
31 SUMMARY="Header navigation table" |
0 | 32 WIDTH="100%" |
33 BORDER="0" | |
34 CELLPADDING="0" | |
35 CELLSPACING="0" | |
36 ><TR | |
37 ><TH | |
38 COLSPAN="3" | |
39 ALIGN="center" | |
40 >SDL Library Documentation</TH | |
41 ></TR | |
42 ><TR | |
43 ><TD | |
44 WIDTH="10%" | |
45 ALIGN="left" | |
46 VALIGN="bottom" | |
47 ><A | |
48 HREF="sdlglswapbuffers.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
49 ACCESSKEY="P" |
0 | 50 >Prev</A |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 ></TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="sdllockyuvoverlay.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
63 ACCESSKEY="N" |
0 | 64 >Next</A |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><H1 | |
72 ><A | |
73 NAME="SDLCREATEYUVOVERLAY" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
74 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
75 >SDL_CreateYUVOverlay</H1 |
0 | 76 ><DIV |
77 CLASS="REFNAMEDIV" | |
78 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
79 NAME="AEN2808" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_CreateYUVOverlay -- Create a YUV video overlay</DIV | |
84 ><DIV | |
85 CLASS="REFSYNOPSISDIV" | |
86 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
87 NAME="AEN2811" |
0 | 88 ></A |
89 ><H2 | |
90 >Synopsis</H2 | |
91 ><DIV | |
92 CLASS="FUNCSYNOPSIS" | |
93 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
94 NAME="AEN2812" |
0 | 95 ></A |
96 ><P | |
97 ></P | |
98 ><PRE | |
99 CLASS="FUNCSYNOPSISINFO" | |
100 >#include "SDL.h"</PRE | |
101 ><P | |
102 ><CODE | |
103 ><CODE | |
104 CLASS="FUNCDEF" | |
105 >SDL_Overlay *<B | |
106 CLASS="FSFUNC" | |
107 >SDL_CreateYUVOverlay</B | |
108 ></CODE | |
109 >(int width, int height, Uint32 format, SDL_Surface *display);</CODE | |
110 ></P | |
111 ><P | |
112 ></P | |
113 ></DIV | |
114 ></DIV | |
115 ><DIV | |
116 CLASS="REFSECT1" | |
117 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
118 NAME="AEN2818" |
0 | 119 ></A |
120 ><H2 | |
121 >Description</H2 | |
122 ><P | |
123 ><TT | |
124 CLASS="FUNCTION" | |
125 >SDL_CreateYUVOverlay</TT | |
126 > creates a YUV overlay of the specified <TT | |
127 CLASS="PARAMETER" | |
128 ><I | |
129 >width</I | |
130 ></TT | |
131 >, <TT | |
132 CLASS="PARAMETER" | |
133 ><I | |
134 >height</I | |
135 ></TT | |
136 > and <TT | |
137 CLASS="PARAMETER" | |
138 ><I | |
139 >format</I | |
140 ></TT | |
141 > (see <A | |
142 HREF="sdloverlay.html" | |
143 ><SPAN | |
144 CLASS="STRUCTNAME" | |
145 >SDL_Overlay</SPAN | |
146 ></A | |
147 > for a list of available formats), for the provided <TT | |
148 CLASS="PARAMETER" | |
149 ><I | |
150 >display</I | |
151 ></TT | |
152 >. A <A | |
153 HREF="sdloverlay.html" | |
154 ><SPAN | |
155 CLASS="STRUCTNAME" | |
156 >SDL_Overlay</SPAN | |
157 ></A | |
158 > structure is returned.</P | |
159 ><P | |
160 >The term 'overlay' is a misnomer since, unless the overlay is created in hardware, the contents for the display surface underneath the area where the overlay is shown will be overwritten when the overlay is displayed.</P | |
161 ></DIV | |
162 ><DIV | |
163 CLASS="REFSECT1" | |
164 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
165 NAME="AEN2831" |
0 | 166 ></A |
167 ><H2 | |
168 >See Also</H2 | |
169 ><P | |
170 ><A | |
171 HREF="sdloverlay.html" | |
172 ><SPAN | |
173 CLASS="STRUCTNAME" | |
174 >SDL_Overlay</SPAN | |
175 ></A | |
176 >, | |
177 <A | |
178 HREF="sdldisplayyuvoverlay.html" | |
179 ><TT | |
180 CLASS="FUNCTION" | |
181 >SDL_DisplayYUVOverlay</TT | |
182 ></A | |
183 >, | |
184 <A | |
185 HREF="sdlfreeyuvoverlay.html" | |
186 ><TT | |
187 CLASS="FUNCTION" | |
188 >SDL_FreeYUVOverlay</TT | |
189 ></A | |
190 ></P | |
191 ></DIV | |
192 ><DIV | |
193 CLASS="NAVFOOTER" | |
194 ><HR | |
195 ALIGN="LEFT" | |
196 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
197 SUMMARY="Footer navigation table" |
0 | 198 WIDTH="100%" |
199 BORDER="0" | |
200 CELLPADDING="0" | |
201 CELLSPACING="0" | |
202 ><TR | |
203 ><TD | |
204 WIDTH="33%" | |
205 ALIGN="left" | |
206 VALIGN="top" | |
207 ><A | |
208 HREF="sdlglswapbuffers.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
209 ACCESSKEY="P" |
0 | 210 >Prev</A |
211 ></TD | |
212 ><TD | |
213 WIDTH="34%" | |
214 ALIGN="center" | |
215 VALIGN="top" | |
216 ><A | |
217 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
218 ACCESSKEY="H" |
0 | 219 >Home</A |
220 ></TD | |
221 ><TD | |
222 WIDTH="33%" | |
223 ALIGN="right" | |
224 VALIGN="top" | |
225 ><A | |
226 HREF="sdllockyuvoverlay.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
227 ACCESSKEY="N" |
0 | 228 >Next</A |
229 ></TD | |
230 ></TR | |
231 ><TR | |
232 ><TD | |
233 WIDTH="33%" | |
234 ALIGN="left" | |
235 VALIGN="top" | |
236 >SDL_GL_SwapBuffers</TD | |
237 ><TD | |
238 WIDTH="34%" | |
239 ALIGN="center" | |
240 VALIGN="top" | |
241 ><A | |
242 HREF="video.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
243 ACCESSKEY="U" |
0 | 244 >Up</A |
245 ></TD | |
246 ><TD | |
247 WIDTH="33%" | |
248 ALIGN="right" | |
249 VALIGN="top" | |
250 >SDL_LockYUVOverlay</TD | |
251 ></TR | |
252 ></TABLE | |
253 ></DIV | |
254 ></BODY | |
255 ></HTML | |
256 > |