1 <HTML 2 ><HEAD 3 ><TITLE 4 >SDL_Surface</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_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 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="sdlpixelformat.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="sdlvideoinfo.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="SDLSURFACE" 74 ></A 75 >SDL_Surface</H1 76 ><DIV 77 CLASS="REFNAMEDIV" 78 ><A 79 NAME="AEN3263" 80 ></A 81 ><H2 82 >Name</H2 83 >SDL_Surface -- Graphical Surface Structure</DIV 84 ><DIV 85 CLASS="REFSECT1" 86 ><A 87 NAME="AEN3266" 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 */ 105 106 /* This structure also contains private fields not shown here */ 107 } SDL_Surface;</PRE 108 ></DIV 109 ><DIV 110 CLASS="REFSECT1" 111 ><A 112 NAME="AEN3269" 113 ></A 114 ><H2 115 >Structure Data</H2 116 ><DIV 117 CLASS="INFORMALTABLE" 118 ><A 119 NAME="AEN3271" 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 232 NAME="AEN3300" 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 308 NAME="AEN3318" 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" 465 >SDL_SRCCOLORKEY</TT 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 520 NAME="AEN3381" 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 538 SUMMARY="Footer navigation table" 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" 550 ACCESSKEY="P" 551 >Prev</A 552 ></TD 553 ><TD 554 WIDTH="34%" 555 ALIGN="center" 556 VALIGN="top" 557 ><A 558 HREF="index.html" 559 ACCESSKEY="H" 560 >Home</A 561 ></TD 562 ><TD 563 WIDTH="33%" 564 ALIGN="right" 565 VALIGN="top" 566 ><A 567 HREF="sdlvideoinfo.html" 568 ACCESSKEY="N" 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" 584 ACCESSKEY="U" 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 >