Mercurial > sdl-ios-xcode
annotate docs/html/sdlsurface.html @ 4355:9b464226e541 SDL-1.2
Fixed bug #855
Ludwig Nussel 2009-10-18 06:31:52 PDT
an mprotect call was added to fix bug 528. However that results in a buffer
that allows writing and code execution. Ie the no-execute security features of
modern operating systems are defeated this way. Two mprotect calls are needed.
One to make the buffer executable but not writeable when done and another one
to make the buffer writeable again if the content needs to be changed.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 18 Oct 2009 17:31:37 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >SDL_Surface</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_PixelFormat" | |
17 HREF="sdlpixelformat.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_VideoInfo" | |
20 HREF="sdlvideoinfo.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="sdlpixelformat.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="sdlvideoinfo.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="SDLSURFACE" | |
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_Surface</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="AEN3263" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_Surface -- Graphical Surface Structure</DIV | |
84 ><DIV | |
85 CLASS="REFSECT1" | |
86 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
87 NAME="AEN3266" |
0 | 88 ></A |
89 ><H2 | |
90 >Structure Definition</H2 | |
91 ><PRE | |
92 CLASS="PROGRAMLISTING" | |
93 >typedef struct SDL_Surface { | |
94 Uint32 flags; /* Read-only */ | |
95 SDL_PixelFormat *format; /* Read-only */ | |
96 int w, h; /* Read-only */ | |
97 Uint16 pitch; /* Read-only */ | |
98 void *pixels; /* Read-write */ | |
99 | |
100 /* clipping information */ | |
101 SDL_Rect clip_rect; /* Read-only */ | |
102 | |
103 /* Reference count -- used when freeing surface */ | |
104 int refcount; /* Read-mostly */ | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
105 |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
106 /* This structure also contains private fields not shown here */ |
0 | 107 } SDL_Surface;</PRE |
108 ></DIV | |
109 ><DIV | |
110 CLASS="REFSECT1" | |
111 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
112 NAME="AEN3269" |
0 | 113 ></A |
114 ><H2 | |
115 >Structure Data</H2 | |
116 ><DIV | |
117 CLASS="INFORMALTABLE" | |
118 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
119 NAME="AEN3271" |
0 | 120 ></A |
121 ><P | |
122 ></P | |
123 ><TABLE | |
124 BORDER="0" | |
125 CLASS="CALSTABLE" | |
126 ><TBODY | |
127 ><TR | |
128 ><TD | |
129 ALIGN="LEFT" | |
130 VALIGN="TOP" | |
131 ><TT | |
132 CLASS="STRUCTFIELD" | |
133 ><I | |
134 >flags</I | |
135 ></TT | |
136 ></TD | |
137 ><TD | |
138 ALIGN="LEFT" | |
139 VALIGN="TOP" | |
140 >Surface flags</TD | |
141 ></TR | |
142 ><TR | |
143 ><TD | |
144 ALIGN="LEFT" | |
145 VALIGN="TOP" | |
146 ><TT | |
147 CLASS="STRUCTFIELD" | |
148 ><I | |
149 >format</I | |
150 ></TT | |
151 ></TD | |
152 ><TD | |
153 ALIGN="LEFT" | |
154 VALIGN="TOP" | |
155 >Pixel <A | |
156 HREF="sdlpixelformat.html" | |
157 >format</A | |
158 ></TD | |
159 ></TR | |
160 ><TR | |
161 ><TD | |
162 ALIGN="LEFT" | |
163 VALIGN="TOP" | |
164 ><TT | |
165 CLASS="STRUCTFIELD" | |
166 ><I | |
167 >w, h</I | |
168 ></TT | |
169 ></TD | |
170 ><TD | |
171 ALIGN="LEFT" | |
172 VALIGN="TOP" | |
173 >Width and height of the surface</TD | |
174 ></TR | |
175 ><TR | |
176 ><TD | |
177 ALIGN="LEFT" | |
178 VALIGN="TOP" | |
179 ><TT | |
180 CLASS="STRUCTFIELD" | |
181 ><I | |
182 >pitch</I | |
183 ></TT | |
184 ></TD | |
185 ><TD | |
186 ALIGN="LEFT" | |
187 VALIGN="TOP" | |
188 >Length of a surface scanline in bytes</TD | |
189 ></TR | |
190 ><TR | |
191 ><TD | |
192 ALIGN="LEFT" | |
193 VALIGN="TOP" | |
194 ><TT | |
195 CLASS="STRUCTFIELD" | |
196 ><I | |
197 >pixels</I | |
198 ></TT | |
199 ></TD | |
200 ><TD | |
201 ALIGN="LEFT" | |
202 VALIGN="TOP" | |
203 >Pointer to the actual pixel data</TD | |
204 ></TR | |
205 ><TR | |
206 ><TD | |
207 ALIGN="LEFT" | |
208 VALIGN="TOP" | |
209 ><TT | |
210 CLASS="STRUCTFIELD" | |
211 ><I | |
212 >clip_rect</I | |
213 ></TT | |
214 ></TD | |
215 ><TD | |
216 ALIGN="LEFT" | |
217 VALIGN="TOP" | |
218 >surface clip <A | |
219 HREF="sdlrect.html" | |
220 >rectangle</A | |
221 ></TD | |
222 ></TR | |
223 ></TBODY | |
224 ></TABLE | |
225 ><P | |
226 ></P | |
227 ></DIV | |
228 ></DIV | |
229 ><DIV | |
230 CLASS="REFSECT1" | |
231 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
232 NAME="AEN3300" |
0 | 233 ></A |
234 ><H2 | |
235 >Description</H2 | |
236 ><P | |
237 ><SPAN | |
238 CLASS="STRUCTNAME" | |
239 >SDL_Surface</SPAN | |
240 >'s represent areas of "graphical" | |
241 memory, memory that can be drawn to. The video framebuffer is returned | |
242 as a <SPAN | |
243 CLASS="STRUCTNAME" | |
244 >SDL_Surface</SPAN | |
245 > by | |
246 <A | |
247 HREF="sdlsetvideomode.html" | |
248 ><TT | |
249 CLASS="FUNCTION" | |
250 >SDL_SetVideoMode</TT | |
251 ></A | |
252 > | |
253 and <A | |
254 HREF="sdlgetvideosurface.html" | |
255 ><TT | |
256 CLASS="FUNCTION" | |
257 >SDL_GetVideoSurface</TT | |
258 ></A | |
259 >. | |
260 Most of the fields should be pretty obvious. | |
261 <TT | |
262 CLASS="STRUCTFIELD" | |
263 ><I | |
264 >w</I | |
265 ></TT | |
266 > and <TT | |
267 CLASS="STRUCTFIELD" | |
268 ><I | |
269 >h</I | |
270 ></TT | |
271 > are the | |
272 width and height of the surface in pixels. | |
273 <TT | |
274 CLASS="STRUCTFIELD" | |
275 ><I | |
276 >pixels</I | |
277 ></TT | |
278 > is a pointer to the actual pixel data, | |
279 the surface should be <A | |
280 HREF="sdllocksurface.html" | |
281 >locked</A | |
282 > | |
283 before accessing this field. The <TT | |
284 CLASS="STRUCTFIELD" | |
285 ><I | |
286 >clip_rect</I | |
287 ></TT | |
288 > field | |
289 is the clipping rectangle as set by | |
290 <A | |
291 HREF="sdlsetcliprect.html" | |
292 ><TT | |
293 CLASS="FUNCTION" | |
294 >SDL_SetClipRect</TT | |
295 ></A | |
296 >.</P | |
297 ><P | |
298 >The following are supported in the | |
299 <TT | |
300 CLASS="STRUCTFIELD" | |
301 ><I | |
302 >flags</I | |
303 ></TT | |
304 > field.</P | |
305 ><DIV | |
306 CLASS="INFORMALTABLE" | |
307 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
308 NAME="AEN3318" |
0 | 309 ></A |
310 ><P | |
311 ></P | |
312 ><TABLE | |
313 BORDER="1" | |
314 CLASS="CALSTABLE" | |
315 ><TBODY | |
316 ><TR | |
317 ><TD | |
318 ALIGN="LEFT" | |
319 VALIGN="TOP" | |
320 ><TT | |
321 CLASS="LITERAL" | |
322 >SDL_SWSURFACE</TT | |
323 ></TD | |
324 ><TD | |
325 ALIGN="LEFT" | |
326 VALIGN="TOP" | |
327 >Surface is stored in system memory</TD | |
328 ></TR | |
329 ><TR | |
330 ><TD | |
331 ALIGN="LEFT" | |
332 VALIGN="TOP" | |
333 ><TT | |
334 CLASS="LITERAL" | |
335 >SDL_HWSURFACE</TT | |
336 ></TD | |
337 ><TD | |
338 ALIGN="LEFT" | |
339 VALIGN="TOP" | |
340 >Surface is stored in video memory</TD | |
341 ></TR | |
342 ><TR | |
343 ><TD | |
344 ALIGN="LEFT" | |
345 VALIGN="TOP" | |
346 ><TT | |
347 CLASS="LITERAL" | |
348 >SDL_ASYNCBLIT</TT | |
349 ></TD | |
350 ><TD | |
351 ALIGN="LEFT" | |
352 VALIGN="TOP" | |
353 >Surface uses asynchronous blits if possible</TD | |
354 ></TR | |
355 ><TR | |
356 ><TD | |
357 ALIGN="LEFT" | |
358 VALIGN="TOP" | |
359 ><TT | |
360 CLASS="LITERAL" | |
361 >SDL_ANYFORMAT</TT | |
362 ></TD | |
363 ><TD | |
364 ALIGN="LEFT" | |
365 VALIGN="TOP" | |
366 >Allows any pixel-format (Display surface)</TD | |
367 ></TR | |
368 ><TR | |
369 ><TD | |
370 ALIGN="LEFT" | |
371 VALIGN="TOP" | |
372 ><TT | |
373 CLASS="LITERAL" | |
374 >SDL_HWPALETTE</TT | |
375 ></TD | |
376 ><TD | |
377 ALIGN="LEFT" | |
378 VALIGN="TOP" | |
379 >Surface has exclusive palette</TD | |
380 ></TR | |
381 ><TR | |
382 ><TD | |
383 ALIGN="LEFT" | |
384 VALIGN="TOP" | |
385 ><TT | |
386 CLASS="LITERAL" | |
387 >SDL_DOUBLEBUF</TT | |
388 ></TD | |
389 ><TD | |
390 ALIGN="LEFT" | |
391 VALIGN="TOP" | |
392 >Surface is double buffered (Display surface)</TD | |
393 ></TR | |
394 ><TR | |
395 ><TD | |
396 ALIGN="LEFT" | |
397 VALIGN="TOP" | |
398 ><TT | |
399 CLASS="LITERAL" | |
400 >SDL_FULLSCREEN</TT | |
401 ></TD | |
402 ><TD | |
403 ALIGN="LEFT" | |
404 VALIGN="TOP" | |
405 >Surface is full screen (Display Surface)</TD | |
406 ></TR | |
407 ><TR | |
408 ><TD | |
409 ALIGN="LEFT" | |
410 VALIGN="TOP" | |
411 ><TT | |
412 CLASS="LITERAL" | |
413 >SDL_OPENGL</TT | |
414 ></TD | |
415 ><TD | |
416 ALIGN="LEFT" | |
417 VALIGN="TOP" | |
418 >Surface has an OpenGL context (Display Surface)</TD | |
419 ></TR | |
420 ><TR | |
421 ><TD | |
422 ALIGN="LEFT" | |
423 VALIGN="TOP" | |
424 ><TT | |
425 CLASS="LITERAL" | |
426 >SDL_OPENGLBLIT</TT | |
427 ></TD | |
428 ><TD | |
429 ALIGN="LEFT" | |
430 VALIGN="TOP" | |
431 >Surface supports OpenGL blitting (Display Surface)</TD | |
432 ></TR | |
433 ><TR | |
434 ><TD | |
435 ALIGN="LEFT" | |
436 VALIGN="TOP" | |
437 ><TT | |
438 CLASS="LITERAL" | |
439 >SDL_RESIZABLE</TT | |
440 ></TD | |
441 ><TD | |
442 ALIGN="LEFT" | |
443 VALIGN="TOP" | |
444 >Surface is resizable (Display Surface)</TD | |
445 ></TR | |
446 ><TR | |
447 ><TD | |
448 ALIGN="LEFT" | |
449 VALIGN="TOP" | |
450 ><TT | |
451 CLASS="LITERAL" | |
452 >SDL_HWACCEL</TT | |
453 ></TD | |
454 ><TD | |
455 ALIGN="LEFT" | |
456 VALIGN="TOP" | |
457 >Surface blit uses hardware acceleration</TD | |
458 ></TR | |
459 ><TR | |
460 ><TD | |
461 ALIGN="LEFT" | |
462 VALIGN="TOP" | |
463 ><TT | |
464 CLASS="LITERAL" | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
465 >SDL_SRCCOLORKEY</TT |
0 | 466 ></TD |
467 ><TD | |
468 ALIGN="LEFT" | |
469 VALIGN="TOP" | |
470 >Surface use colorkey blitting</TD | |
471 ></TR | |
472 ><TR | |
473 ><TD | |
474 ALIGN="LEFT" | |
475 VALIGN="TOP" | |
476 ><TT | |
477 CLASS="LITERAL" | |
478 >SDL_RLEACCEL</TT | |
479 ></TD | |
480 ><TD | |
481 ALIGN="LEFT" | |
482 VALIGN="TOP" | |
483 >Colorkey blitting is accelerated with RLE</TD | |
484 ></TR | |
485 ><TR | |
486 ><TD | |
487 ALIGN="LEFT" | |
488 VALIGN="TOP" | |
489 ><TT | |
490 CLASS="LITERAL" | |
491 >SDL_SRCALPHA</TT | |
492 ></TD | |
493 ><TD | |
494 ALIGN="LEFT" | |
495 VALIGN="TOP" | |
496 >Surface blit uses alpha blending</TD | |
497 ></TR | |
498 ><TR | |
499 ><TD | |
500 ALIGN="LEFT" | |
501 VALIGN="TOP" | |
502 ><TT | |
503 CLASS="LITERAL" | |
504 >SDL_PREALLOC</TT | |
505 ></TD | |
506 ><TD | |
507 ALIGN="LEFT" | |
508 VALIGN="TOP" | |
509 >Surface uses preallocated memory</TD | |
510 ></TR | |
511 ></TBODY | |
512 ></TABLE | |
513 ><P | |
514 ></P | |
515 ></DIV | |
516 ></DIV | |
517 ><DIV | |
518 CLASS="REFSECT1" | |
519 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
520 NAME="AEN3381" |
0 | 521 ></A |
522 ><H2 | |
523 >See Also</H2 | |
524 ><P | |
525 ><A | |
526 HREF="sdlpixelformat.html" | |
527 ><SPAN | |
528 CLASS="STRUCTNAME" | |
529 >SDL_PixelFormat</SPAN | |
530 ></A | |
531 ></P | |
532 ></DIV | |
533 ><DIV | |
534 CLASS="NAVFOOTER" | |
535 ><HR | |
536 ALIGN="LEFT" | |
537 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
538 SUMMARY="Footer navigation table" |
0 | 539 WIDTH="100%" |
540 BORDER="0" | |
541 CELLPADDING="0" | |
542 CELLSPACING="0" | |
543 ><TR | |
544 ><TD | |
545 WIDTH="33%" | |
546 ALIGN="left" | |
547 VALIGN="top" | |
548 ><A | |
549 HREF="sdlpixelformat.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
550 ACCESSKEY="P" |
0 | 551 >Prev</A |
552 ></TD | |
553 ><TD | |
554 WIDTH="34%" | |
555 ALIGN="center" | |
556 VALIGN="top" | |
557 ><A | |
558 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
559 ACCESSKEY="H" |
0 | 560 >Home</A |
561 ></TD | |
562 ><TD | |
563 WIDTH="33%" | |
564 ALIGN="right" | |
565 VALIGN="top" | |
566 ><A | |
567 HREF="sdlvideoinfo.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
568 ACCESSKEY="N" |
0 | 569 >Next</A |
570 ></TD | |
571 ></TR | |
572 ><TR | |
573 ><TD | |
574 WIDTH="33%" | |
575 ALIGN="left" | |
576 VALIGN="top" | |
577 >SDL_PixelFormat</TD | |
578 ><TD | |
579 WIDTH="34%" | |
580 ALIGN="center" | |
581 VALIGN="top" | |
582 ><A | |
583 HREF="video.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
584 ACCESSKEY="U" |
0 | 585 >Up</A |
586 ></TD | |
587 ><TD | |
588 WIDTH="33%" | |
589 ALIGN="right" | |
590 VALIGN="top" | |
591 >SDL_VideoInfo</TD | |
592 ></TR | |
593 ></TABLE | |
594 ></DIV | |
595 ></BODY | |
596 ></HTML | |
597 > |