|
1 <HTML |
|
2 ><HEAD |
|
3 ><TITLE |
|
4 >SDL_SetAlpha</TITLE |
|
5 ><META |
|
6 NAME="GENERATOR" |
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
|
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_SetColorKey" |
|
17 HREF="sdlsetcolorkey.html"><LINK |
|
18 REL="NEXT" |
|
19 TITLE="SDL_SetClipRect" |
|
20 HREF="sdlsetcliprect.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 |
|
31 SUMMARY="Header navigation table" |
|
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="sdlsetcolorkey.html" |
|
49 ACCESSKEY="P" |
|
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="sdlsetcliprect.html" |
|
63 ACCESSKEY="N" |
|
64 >Next</A |
|
65 ></TD |
|
66 ></TR |
|
67 ></TABLE |
|
68 ><HR |
|
69 ALIGN="LEFT" |
|
70 WIDTH="100%"></DIV |
|
71 ><H1 |
|
72 ><A |
|
73 NAME="SDLSETALPHA" |
|
74 ></A |
|
75 >SDL_SetAlpha</H1 |
|
76 ><DIV |
|
77 CLASS="REFNAMEDIV" |
|
78 ><A |
|
79 NAME="AEN2096" |
|
80 ></A |
|
81 ><H2 |
|
82 >Name</H2 |
|
83 >SDL_SetAlpha -- Adjust the alpha properties of a surface</DIV |
|
84 ><DIV |
|
85 CLASS="REFSYNOPSISDIV" |
|
86 ><A |
|
87 NAME="AEN2099" |
|
88 ></A |
|
89 ><H2 |
|
90 >Synopsis</H2 |
|
91 ><DIV |
|
92 CLASS="FUNCSYNOPSIS" |
|
93 ><A |
|
94 NAME="AEN2100" |
|
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 >int <B |
|
106 CLASS="FSFUNC" |
|
107 >SDL_SetAlpha</B |
|
108 ></CODE |
|
109 >(SDL_Surface *surface, Uint32 flag, Uint8 alpha);</CODE |
|
110 ></P |
|
111 ><P |
|
112 ></P |
|
113 ></DIV |
|
114 ></DIV |
|
115 ><DIV |
|
116 CLASS="REFSECT1" |
|
117 ><A |
|
118 NAME="AEN2106" |
|
119 ></A |
|
120 ><H2 |
|
121 >Description</H2 |
|
122 ><DIV |
|
123 CLASS="NOTE" |
|
124 ><BLOCKQUOTE |
|
125 CLASS="NOTE" |
|
126 ><P |
|
127 ><B |
|
128 >Note: </B |
|
129 >This function and the semantics of SDL alpha blending have changed since version 1.1.4. Up until version 1.1.5, an alpha value of 0 was considered opaque and a value of 255 was considered transparent. This has now been inverted: 0 (<TT |
|
130 CLASS="LITERAL" |
|
131 >SDL_ALPHA_TRANSPARENT</TT |
|
132 >) is now considered transparent and 255 (<TT |
|
133 CLASS="LITERAL" |
|
134 >SDL_ALPHA_OPAQUE</TT |
|
135 >) is now considered opaque.</P |
|
136 ></BLOCKQUOTE |
|
137 ></DIV |
|
138 ><P |
|
139 ><TT |
|
140 CLASS="FUNCTION" |
|
141 >SDL_SetAlpha</TT |
|
142 > is used for setting the per-surface alpha |
|
143 value and/or enabling and disabling alpha blending.</P |
|
144 ><P |
|
145 >The<TT |
|
146 CLASS="PARAMETER" |
|
147 ><I |
|
148 >surface</I |
|
149 ></TT |
|
150 > parameter specifies which surface whose alpha |
|
151 attributes you wish to adjust. <TT |
|
152 CLASS="PARAMETER" |
|
153 ><I |
|
154 >flags</I |
|
155 ></TT |
|
156 > is used to specify |
|
157 whether alpha blending should be used (<TT |
|
158 CLASS="LITERAL" |
|
159 >SDL_SRCALPHA</TT |
|
160 >) and |
|
161 whether the surface should use RLE acceleration for blitting |
|
162 (<TT |
|
163 CLASS="LITERAL" |
|
164 >SDL_RLEACCEL</TT |
|
165 >). <TT |
|
166 CLASS="PARAMETER" |
|
167 ><I |
|
168 >flags</I |
|
169 ></TT |
|
170 > can be an OR'd |
|
171 combination of these two options, one of these options or 0. If |
|
172 <TT |
|
173 CLASS="LITERAL" |
|
174 >SDL_SRCALPHA</TT |
|
175 > is not passed as a flag then all alpha |
|
176 information is ignored when blitting the surface. The |
|
177 <TT |
|
178 CLASS="PARAMETER" |
|
179 ><I |
|
180 >alpha</I |
|
181 ></TT |
|
182 > parameter is the per-surface alpha value; a |
|
183 surface need not have an alpha channel to use per-surface alpha and blitting |
|
184 can still be accelerated with <TT |
|
185 CLASS="LITERAL" |
|
186 >SDL_RLEACCEL</TT |
|
187 >.</P |
|
188 ><DIV |
|
189 CLASS="NOTE" |
|
190 ><BLOCKQUOTE |
|
191 CLASS="NOTE" |
|
192 ><P |
|
193 ><B |
|
194 >Note: </B |
|
195 >The per-surface alpha value of 128 is considered a special case and |
|
196 is optimised, so it's much faster than other per-surface values.</P |
|
197 ></BLOCKQUOTE |
|
198 ></DIV |
|
199 ><P |
|
200 >Alpha effects surface blitting in the following ways:</P |
|
201 ><DIV |
|
202 CLASS="INFORMALTABLE" |
|
203 ><A |
|
204 NAME="AEN2126" |
|
205 ></A |
|
206 ><P |
|
207 ></P |
|
208 ><TABLE |
|
209 BORDER="0" |
|
210 CLASS="CALSTABLE" |
|
211 ><TBODY |
|
212 ><TR |
|
213 ><TD |
|
214 ALIGN="LEFT" |
|
215 VALIGN="TOP" |
|
216 >RGBA->RGB with <TT |
|
217 CLASS="LITERAL" |
|
218 >SDL_SRCALPHA</TT |
|
219 ></TD |
|
220 ><TD |
|
221 ALIGN="LEFT" |
|
222 VALIGN="TOP" |
|
223 ><P |
|
224 >The source is alpha-blended with the destination, using the alpha channel. <TT |
|
225 CLASS="LITERAL" |
|
226 >SDL_SRCCOLORKEY</TT |
|
227 > and the per-surface alpha are ignored.</P |
|
228 ></TD |
|
229 ></TR |
|
230 ><TR |
|
231 ><TD |
|
232 ALIGN="LEFT" |
|
233 VALIGN="TOP" |
|
234 >RGBA->RGB without <TT |
|
235 CLASS="LITERAL" |
|
236 >SDL_SRCALPHA</TT |
|
237 ></TD |
|
238 ><TD |
|
239 ALIGN="LEFT" |
|
240 VALIGN="TOP" |
|
241 ><P |
|
242 >The RGB data is copied from the source. The source alpha channel and the per-surface alpha value are ignored.</P |
|
243 ></TD |
|
244 ></TR |
|
245 ><TR |
|
246 ><TD |
|
247 ALIGN="LEFT" |
|
248 VALIGN="TOP" |
|
249 >RGB->RGBA with <TT |
|
250 CLASS="LITERAL" |
|
251 >SDL_SRCALPHA</TT |
|
252 ></TD |
|
253 ><TD |
|
254 ALIGN="LEFT" |
|
255 VALIGN="TOP" |
|
256 ><P |
|
257 >The source is alpha-blended with the destination using the per-surface alpha |
|
258 value. If <TT |
|
259 CLASS="LITERAL" |
|
260 >SDL_SRCCOLORKEY</TT |
|
261 > is set, only the pixels not |
|
262 matching the colorkey value are copied. The alpha channel of the copied pixels |
|
263 is set to opaque.</P |
|
264 ></TD |
|
265 ></TR |
|
266 ><TR |
|
267 ><TD |
|
268 ALIGN="LEFT" |
|
269 VALIGN="TOP" |
|
270 >RGB->RGBA without <TT |
|
271 CLASS="LITERAL" |
|
272 >SDL_SRCALPHA</TT |
|
273 ></TD |
|
274 ><TD |
|
275 ALIGN="LEFT" |
|
276 VALIGN="TOP" |
|
277 ><P |
|
278 >The RGB data is copied from the source and the alpha value of the copied pixels |
|
279 is set to opaque. If <TT |
|
280 CLASS="LITERAL" |
|
281 >SDL_SRCCOLORKEY</TT |
|
282 > is set, only the pixels |
|
283 not matching the colorkey value are copied. </P |
|
284 ></TD |
|
285 ></TR |
|
286 ><TR |
|
287 ><TD |
|
288 ALIGN="LEFT" |
|
289 VALIGN="TOP" |
|
290 >RGBA->RGBA with <TT |
|
291 CLASS="LITERAL" |
|
292 >SDL_SRCALPHA</TT |
|
293 ></TD |
|
294 ><TD |
|
295 ALIGN="LEFT" |
|
296 VALIGN="TOP" |
|
297 ><P |
|
298 >The source is alpha-blended with the destination using the source alpha |
|
299 channel. The alpha channel in the destination surface is left untouched. |
|
300 <TT |
|
301 CLASS="LITERAL" |
|
302 >SDL_SRCCOLORKEY</TT |
|
303 > is ignored.</P |
|
304 ></TD |
|
305 ></TR |
|
306 ><TR |
|
307 ><TD |
|
308 ALIGN="LEFT" |
|
309 VALIGN="TOP" |
|
310 >RGBA->RGBA without <TT |
|
311 CLASS="LITERAL" |
|
312 >SDL_SRCALPHA</TT |
|
313 ></TD |
|
314 ><TD |
|
315 ALIGN="LEFT" |
|
316 VALIGN="TOP" |
|
317 ><P |
|
318 >The RGBA data is copied to the destination surface. If <TT |
|
319 CLASS="LITERAL" |
|
320 >SDL_SRCCOLORKEY</TT |
|
321 > is set, only the pixels not matching the colorkey value are copied.</P |
|
322 ></TD |
|
323 ></TR |
|
324 ><TR |
|
325 ><TD |
|
326 ALIGN="LEFT" |
|
327 VALIGN="TOP" |
|
328 >RGB->RGB with <TT |
|
329 CLASS="LITERAL" |
|
330 >SDL_SRCALPHA</TT |
|
331 ></TD |
|
332 ><TD |
|
333 ALIGN="LEFT" |
|
334 VALIGN="TOP" |
|
335 ><P |
|
336 >The source is alpha-blended with the destination using the per-surface alpha value. If <TT |
|
337 CLASS="LITERAL" |
|
338 >SDL_SRCCOLORKEY</TT |
|
339 > is set, only the pixels not matching the colorkey value are copied.</P |
|
340 ></TD |
|
341 ></TR |
|
342 ><TR |
|
343 ><TD |
|
344 ALIGN="LEFT" |
|
345 VALIGN="TOP" |
|
346 >RGB->RGB without <TT |
|
347 CLASS="LITERAL" |
|
348 >SDL_SRCALPHA</TT |
|
349 ></TD |
|
350 ><TD |
|
351 ALIGN="LEFT" |
|
352 VALIGN="TOP" |
|
353 ><P |
|
354 >The RGB data is copied from the source. If <TT |
|
355 CLASS="LITERAL" |
|
356 >SDL_SRCCOLORKEY</TT |
|
357 > is set, only the pixels not matching the colorkey value are copied.</P |
|
358 ></TD |
|
359 ></TR |
|
360 ></TBODY |
|
361 ></TABLE |
|
362 ><P |
|
363 ></P |
|
364 ></DIV |
|
365 ><DIV |
|
366 CLASS="NOTE" |
|
367 ><BLOCKQUOTE |
|
368 CLASS="NOTE" |
|
369 ><P |
|
370 ><B |
|
371 >Note: </B |
|
372 > Note that RGBA->RGBA blits (with SDL_SRCALPHA set) keep the alpha |
|
373 of the destination surface. This means that you cannot compose two arbitrary |
|
374 RGBA surfaces this way and get the result you would expect from "overlaying" |
|
375 them; the destination alpha will work as a mask.</P |
|
376 ><P |
|
377 >Also note that per-pixel and per-surface alpha cannot be combined; |
|
378 the per-pixel alpha is always used if available</P |
|
379 ></BLOCKQUOTE |
|
380 ></DIV |
|
381 ></DIV |
|
382 ><DIV |
|
383 CLASS="REFSECT1" |
|
384 ><A |
|
385 NAME="AEN2179" |
|
386 ></A |
|
387 ><H2 |
|
388 >Return Value</H2 |
|
389 ><P |
|
390 >This function returns <SPAN |
|
391 CLASS="RETURNVALUE" |
|
392 >0</SPAN |
|
393 >, or |
|
394 <SPAN |
|
395 CLASS="RETURNVALUE" |
|
396 >-1</SPAN |
|
397 > if there was an error.</P |
|
398 ></DIV |
|
399 ><DIV |
|
400 CLASS="REFSECT1" |
|
401 ><A |
|
402 NAME="AEN2184" |
|
403 ></A |
|
404 ><H2 |
|
405 >See Also</H2 |
|
406 ><P |
|
407 ><A |
|
408 HREF="sdlmaprgba.html" |
|
409 ><TT |
|
410 CLASS="FUNCTION" |
|
411 >SDL_MapRGBA</TT |
|
412 ></A |
|
413 >, |
|
414 <A |
|
415 HREF="sdlgetrgba.html" |
|
416 ><TT |
|
417 CLASS="FUNCTION" |
|
418 >SDL_GetRGBA</TT |
|
419 ></A |
|
420 >, |
|
421 <A |
|
422 HREF="sdldisplayformatalpha.html" |
|
423 ><TT |
|
424 CLASS="FUNCTION" |
|
425 >SDL_DisplayFormatAlpha</TT |
|
426 ></A |
|
427 >, |
|
428 <A |
|
429 HREF="sdlblitsurface.html" |
|
430 ><TT |
|
431 CLASS="FUNCTION" |
|
432 >SDL_BlitSurface</TT |
|
433 ></A |
|
434 ></P |
|
435 ></DIV |
|
436 ><DIV |
|
437 CLASS="NAVFOOTER" |
|
438 ><HR |
|
439 ALIGN="LEFT" |
|
440 WIDTH="100%"><TABLE |
|
441 SUMMARY="Footer navigation table" |
|
442 WIDTH="100%" |
|
443 BORDER="0" |
|
444 CELLPADDING="0" |
|
445 CELLSPACING="0" |
|
446 ><TR |
|
447 ><TD |
|
448 WIDTH="33%" |
|
449 ALIGN="left" |
|
450 VALIGN="top" |
|
451 ><A |
|
452 HREF="sdlsetcolorkey.html" |
|
453 ACCESSKEY="P" |
|
454 >Prev</A |
|
455 ></TD |
|
456 ><TD |
|
457 WIDTH="34%" |
|
458 ALIGN="center" |
|
459 VALIGN="top" |
|
460 ><A |
|
461 HREF="index.html" |
|
462 ACCESSKEY="H" |
|
463 >Home</A |
|
464 ></TD |
|
465 ><TD |
|
466 WIDTH="33%" |
|
467 ALIGN="right" |
|
468 VALIGN="top" |
|
469 ><A |
|
470 HREF="sdlsetcliprect.html" |
|
471 ACCESSKEY="N" |
|
472 >Next</A |
|
473 ></TD |
|
474 ></TR |
|
475 ><TR |
|
476 ><TD |
|
477 WIDTH="33%" |
|
478 ALIGN="left" |
|
479 VALIGN="top" |
|
480 >SDL_SetColorKey</TD |
|
481 ><TD |
|
482 WIDTH="34%" |
|
483 ALIGN="center" |
|
484 VALIGN="top" |
|
485 ><A |
|
486 HREF="video.html" |
|
487 ACCESSKEY="U" |
|
488 >Up</A |
|
489 ></TD |
|
490 ><TD |
|
491 WIDTH="33%" |
|
492 ALIGN="right" |
|
493 VALIGN="top" |
|
494 >SDL_SetClipRect</TD |
|
495 ></TR |
|
496 ></TABLE |
|
497 ></DIV |
|
498 ></BODY |
|
499 ></HTML |
|
500 > |