3cf7852e03
git-svn-id: svn://kolibrios.org@5131 a494cfbc-eb01-0410-851d-a64ba20cac60
299 lines
4.3 KiB
HTML
299 lines
4.3 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>SDL_LockSurface</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="SDL Library Documentation"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Video"
|
|
HREF="video.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="SDL_FreeSurface"
|
|
HREF="sdlfreesurface.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="SDL_UnlockSurface"
|
|
HREF="sdlunlocksurface.html"></HEAD
|
|
><BODY
|
|
CLASS="REFENTRY"
|
|
BGCOLOR="#FFF8DC"
|
|
TEXT="#000000"
|
|
LINK="#0000ee"
|
|
VLINK="#551a8b"
|
|
ALINK="#ff0000"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>SDL Library Documentation</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="sdlfreesurface.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="sdlunlocksurface.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><H1
|
|
><A
|
|
NAME="SDLLOCKSURFACE"
|
|
>SDL_LockSurface</A
|
|
></H1
|
|
><DIV
|
|
CLASS="REFNAMEDIV"
|
|
><A
|
|
NAME="AEN1504"
|
|
></A
|
|
><H2
|
|
>Name</H2
|
|
>SDL_LockSurface -- Lock a surface for directly access.</DIV
|
|
><DIV
|
|
CLASS="REFSYNOPSISDIV"
|
|
><A
|
|
NAME="AEN1507"
|
|
></A
|
|
><H2
|
|
>Synopsis</H2
|
|
><DIV
|
|
CLASS="FUNCSYNOPSIS"
|
|
><A
|
|
NAME="AEN1508"
|
|
></A
|
|
><P
|
|
></P
|
|
><PRE
|
|
CLASS="FUNCSYNOPSISINFO"
|
|
>#include "SDL.h"</PRE
|
|
><P
|
|
><CODE
|
|
><CODE
|
|
CLASS="FUNCDEF"
|
|
>int <B
|
|
CLASS="FSFUNC"
|
|
>SDL_LockSurface</B
|
|
></CODE
|
|
>(SDL_Surface *surface);</CODE
|
|
></P
|
|
><P
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN1514"
|
|
></A
|
|
><H2
|
|
>Description</H2
|
|
><P
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_LockSurface</TT
|
|
> sets up a surface for directly
|
|
accessing the pixels. Between calls to <TT
|
|
CLASS="FUNCTION"
|
|
>SDL_LockSurface</TT
|
|
>
|
|
and <TT
|
|
CLASS="FUNCTION"
|
|
>SDL_UnlockSurface</TT
|
|
>, you can write to and read from
|
|
<TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>surface-><TT
|
|
CLASS="STRUCTFIELD"
|
|
><I
|
|
>pixels</I
|
|
></TT
|
|
></I
|
|
></TT
|
|
>, using the pixel format stored in
|
|
<TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>surface-><TT
|
|
CLASS="STRUCTFIELD"
|
|
><I
|
|
>format</I
|
|
></TT
|
|
></I
|
|
></TT
|
|
>. Once you are done accessing the
|
|
surface, you should use <TT
|
|
CLASS="FUNCTION"
|
|
>SDL_UnlockSurface</TT
|
|
> to release it.</P
|
|
><P
|
|
>Not all surfaces require locking.
|
|
If <TT
|
|
CLASS="LITERAL"
|
|
>SDL_MUSTLOCK</TT
|
|
>(<TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>surface</I
|
|
></TT
|
|
>)
|
|
evaluates to <SPAN
|
|
CLASS="RETURNVALUE"
|
|
>0</SPAN
|
|
>, then you can read and write to the
|
|
surface at any time, and the pixel format of the surface will not change. </P
|
|
><P
|
|
>No operating system or library calls should be made between lock/unlock
|
|
pairs, as critical system locks may be held during this time.</P
|
|
><P
|
|
>It should be noted, that since SDL 1.1.8 surface locks are recursive. This means that you can lock a surface multiple times, but each lock must have a match unlock.
|
|
<PRE
|
|
CLASS="PROGRAMLISTING"
|
|
> .
|
|
.
|
|
SDL_LockSurface( surface );
|
|
.
|
|
/* Surface is locked */
|
|
/* Direct pixel access on surface here */
|
|
.
|
|
SDL_LockSurface( surface );
|
|
.
|
|
/* More direct pixel access on surface */
|
|
.
|
|
SDL_UnlockSurface( surface );
|
|
/* Surface is still locked */
|
|
/* Note: Is versions < 1.1.8, the surface would have been */
|
|
/* no longer locked at this stage */
|
|
.
|
|
SDL_UnlockSurface( surface );
|
|
/* Surface is now unlocked */
|
|
.
|
|
.</PRE
|
|
>
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN1532"
|
|
></A
|
|
><H2
|
|
>Return Value</H2
|
|
><P
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_LockSurface</TT
|
|
> returns <SPAN
|
|
CLASS="RETURNVALUE"
|
|
>0</SPAN
|
|
>,
|
|
or <SPAN
|
|
CLASS="RETURNVALUE"
|
|
>-1</SPAN
|
|
> if the surface couldn't be locked.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN1538"
|
|
></A
|
|
><H2
|
|
>See Also</H2
|
|
><P
|
|
><A
|
|
HREF="sdlunlocksurface.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_UnlockSurface</TT
|
|
></A
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdlfreesurface.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdlunlocksurface.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>SDL_FreeSurface</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="video.html"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>SDL_UnlockSurface</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |