📄 sdllocksurface.html
字号:
<HTML><HEAD><TITLE>SDL_LockSurface</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="SDL Library Documentation"HREF="index.html"><LINKREL="UP"TITLE="Video"HREF="video.html"><LINKREL="PREVIOUS"TITLE="SDL_FreeSurface"HREF="sdlfreesurface.html"><LINKREL="NEXT"TITLE="SDL_UnlockSurface"HREF="sdlunlocksurface.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFF8DC"TEXT="#000000"LINK="#0000ee"VLINK="#551a8b"ALINK="#ff0000"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">SDL Library Documentation</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="sdlfreesurface.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="sdlunlocksurface.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><H1><ANAME="SDLLOCKSURFACE"></A>SDL_LockSurface</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN1919"></A><H2>Name</H2>SDL_LockSurface -- Lock a surface for directly access.</DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN1922"></A><H2>Synopsis</H2><DIVCLASS="FUNCSYNOPSIS"><ANAME="AEN1923"></A><P></P><PRECLASS="FUNCSYNOPSISINFO">#include "SDL.h"</PRE><P><CODE><CODECLASS="FUNCDEF">int <BCLASS="FSFUNC">SDL_LockSurface</B></CODE>(SDL_Surface *surface);</CODE></P><P></P></DIV></DIV><DIVCLASS="REFSECT1"><ANAME="AEN1929"></A><H2>Description</H2><P><TTCLASS="FUNCTION">SDL_LockSurface</TT> sets up a surface for directly accessing the pixels. Between calls to <TTCLASS="FUNCTION">SDL_LockSurface</TT>and <TTCLASS="FUNCTION">SDL_UnlockSurface</TT>, you can write to and read from <TTCLASS="PARAMETER"><I>surface-><TTCLASS="STRUCTFIELD"><I>pixels</I></TT></I></TT>, using the pixel format stored in<TTCLASS="PARAMETER"><I>surface-><TTCLASS="STRUCTFIELD"><I>format</I></TT></I></TT>. Once you are done accessing thesurface, you should use <TTCLASS="FUNCTION">SDL_UnlockSurface</TT> to release it.</P><P>Not all surfaces require locking. If <TTCLASS="LITERAL">SDL_MUSTLOCK</TT>(<TTCLASS="PARAMETER"><I>surface</I></TT>)evaluates to <SPANCLASS="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/unlockpairs, 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.<PRECLASS="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><DIVCLASS="REFSECT1"><ANAME="AEN1947"></A><H2>Return Value</H2><P><TTCLASS="FUNCTION">SDL_LockSurface</TT> returns <SPANCLASS="RETURNVALUE">0</SPAN>, or <SPANCLASS="RETURNVALUE">-1</SPAN> if the surface couldn't be locked.</P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN1953"></A><H2>See Also</H2><P><AHREF="sdlunlocksurface.html"><TTCLASS="FUNCTION">SDL_UnlockSurface</TT></A></P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="sdlfreesurface.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="sdlunlocksurface.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">SDL_FreeSurface</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="video.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">SDL_UnlockSurface</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -