<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Crystal Space 1.2.1: csRenderBufferLock< T, TbufferKeeper > Class Template Reference (Crystal Space 1.2.1 Public API Reference)</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="head"> <tr height="59"> <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td> <td class="head"><h2>Public API Reference</h2></td> </tr> <tr height="11"> <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td> </tr> </table> <div class="content"> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>csRenderBufferLock< T, TbufferKeeper > Class Template Reference</h1><!-- doxytag: class="csRenderBufferLock" -->Helper class for convenient locking/unlocking of an <a class="el" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="rbuflock_8h-source.html">cstool/rbuflock.h</a>></code> <p> <p> <a href="classcsRenderBufferLock-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#6d6bf4106f65c0c51f108537dda1452f">csRenderBufferLock</a> (<a class="el" href="structiRenderBuffer.html">iRenderBuffer</a> *buf, <a class="el" href="group__gfx3d.html#g6415ede5d389a1c56c44ddbc924c8fdc">csRenderBufferLockType</a> lock=CS_BUF_LOCK_NORMAL)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct the helper. <a href="#6d6bf4106f65c0c51f108537dda1452f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#83ca5ea94e2a6210f51a24893d869383">Get</a> (size_t n) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve an item in the render buffer. <a href="#83ca5ea94e2a6210f51a24893d869383"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#7ce76286c55962281f10dae66d02e4d2">GetSize</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve number of items in buffer. <a href="#7ce76286c55962281f10dae66d02e4d2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#5a0f0a34872f04ef744f2c0e8a058834">IsValid</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the buffer is valid (ie not null). <a href="#5a0f0a34872f04ef744f2c0e8a058834"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#7bcd17c2436839c0cc9f66d8423d2c56">Lock</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Lock the renderbuffer. <a href="#7bcd17c2436839c0cc9f66d8423d2c56"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#ff0f4c842a448aba613f8b717b288fd9">operator *</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get current element. <a href="#ff0f4c842a448aba613f8b717b288fd9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#ffad85cb6b07b682bf9b93bfcf2880e4">operator T *</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a pointer to the contained data. <a href="#ffad85cb6b07b682bf9b93bfcf2880e4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">PointerProxy </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#346b7a8afcb6666ed979bb3c303790c5">operator++</a> (int)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set current element to the next, post-increment version. <a href="#346b7a8afcb6666ed979bb3c303790c5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">PointerProxy </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#85303043ac965b13518375461fe8d48f">operator++</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set current element to the next, pre-increment version. <a href="#85303043ac965b13518375461fe8d48f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">PointerProxy </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#cd5687044f6efac6d1ea74f9be8c14a1">operator+=</a> (int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a value to the current element index. <a href="#cd5687044f6efac6d1ea74f9be8c14a1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#7b7fab34359f2f1d7a59847415b89464">operator[]</a> (size_t n) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve an item in the render buffer. <a href="#7b7fab34359f2f1d7a59847415b89464"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderBufferLock.html#b76caf859563992d9a63f5dc4813a4c6">~csRenderBufferLock</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destruct the helper. <a href="#b76caf859563992d9a63f5dc4813a4c6"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T, class TbufferKeeper = iRenderBuffer*><br> class csRenderBufferLock< T, TbufferKeeper ></h3> Helper class for convenient locking/unlocking of an <a class="el" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>. <p> The buffer is locked upon construction of the csRenderBufferLock<> object and unlocked on destruction.<p> The contents can be accessed either directly, array-style or iterator-style in a typed way. <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The TbufferKeeper template argument can be used to have the lock store the buffer in a <a class="el" href="classcsRef.html">csRef<iRenderBuffer></a> (instead a iRenderBuffer*) in case there is a risk that the buffer gets destroyed while thelock exists. </dd></dl> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00044">44</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="6d6bf4106f65c0c51f108537dda1452f"></a><!-- doxytag: member="csRenderBufferLock::csRenderBufferLock" ref="6d6bf4106f65c0c51f108537dda1452f" args="(iRenderBuffer *buf, csRenderBufferLockType lock=CS_BUF_LOCK_NORMAL)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::<a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="structiRenderBuffer.html">iRenderBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__gfx3d.html#g6415ede5d389a1c56c44ddbc924c8fdc">csRenderBufferLockType</a> </td> <td class="paramname"> <em>lock</em> = <code>CS_BUF_LOCK_NORMAL</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Construct the helper. <p> Locks the buffer. <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00116">116</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="b76caf859563992d9a63f5dc4813a4c6"></a><!-- doxytag: member="csRenderBufferLock::~csRenderBufferLock" ref="b76caf859563992d9a63f5dc4813a4c6" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::~<a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destruct the helper. <p> Unlocks the buffer. <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00132">132</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="83ca5ea94e2a6210f51a24893d869383"></a><!-- doxytag: member="csRenderBufferLock::Get" ref="83ca5ea94e2a6210f51a24893d869383" args="(size_t n) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">T& <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::Get </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve an item in the render buffer. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00190">190</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> <p>Referenced by <a class="el" href="rbuflock_8h-source.html#l00156">csRenderBufferLock< unsigned char >::operator *()</a>, and <a class="el" href="rbuflock_8h-source.html#l00184">csRenderBufferLock< unsigned char >::operator[]()</a>.</p> </div> </div><p> <a class="anchor" name="7ce76286c55962281f10dae66d02e4d2"></a><!-- doxytag: member="csRenderBufferLock::GetSize" ref="7ce76286c55962281f10dae66d02e4d2" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::GetSize </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve number of items in buffer. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00197">197</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="5a0f0a34872f04ef744f2c0e8a058834"></a><!-- doxytag: member="csRenderBufferLock::IsValid" ref="5a0f0a34872f04ef744f2c0e8a058834" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::IsValid </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Returns whether the buffer is valid (ie not null). <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00203">203</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="7bcd17c2436839c0cc9f66d8423d2c56"></a><!-- doxytag: member="csRenderBufferLock::Lock" ref="7bcd17c2436839c0cc9f66d8423d2c56" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">T* <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::Lock </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Lock the renderbuffer. <p> Returns a pointer to the contained data. <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Watch the stride of the buffer. </dd></dl> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00141">141</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> <p>Referenced by <a class="el" href="rbuflock_8h-source.html#l00190">csRenderBufferLock< unsigned char >::Get()</a>, and <a class="el" href="rbuflock_8h-source.html#l00150">csRenderBufferLock< unsigned char >::operator unsigned char *()</a>.</p> </div> </div><p> <a class="anchor" name="ff0f4c842a448aba613f8b717b288fd9"></a><!-- doxytag: member="csRenderBufferLock::operator *" ref="ff0f4c842a448aba613f8b717b288fd9" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">T& <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator * </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get current element. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00156">156</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="ffad85cb6b07b682bf9b93bfcf2880e4"></a><!-- doxytag: member="csRenderBufferLock::operator T *" ref="ffad85cb6b07b682bf9b93bfcf2880e4" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator T * </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve a pointer to the contained data. <p> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Watch the stride of the buffer. </dd></dl> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00150">150</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="346b7a8afcb6666ed979bb3c303790c5"></a><!-- doxytag: member="csRenderBufferLock::operator++" ref="346b7a8afcb6666ed979bb3c303790c5" args="(int)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">PointerProxy <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator++ </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set current element to the next, post-increment version. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00169">169</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="85303043ac965b13518375461fe8d48f"></a><!-- doxytag: member="csRenderBufferLock::operator++" ref="85303043ac965b13518375461fe8d48f" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">PointerProxy <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator++ </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set current element to the next, pre-increment version. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00162">162</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="cd5687044f6efac6d1ea74f9be8c14a1"></a><!-- doxytag: member="csRenderBufferLock::operator+=" ref="cd5687044f6efac6d1ea74f9be8c14a1" args="(int n)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">PointerProxy <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator+= </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a value to the current element index. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00177">177</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <a class="anchor" name="7b7fab34359f2f1d7a59847415b89464"></a><!-- doxytag: member="csRenderBufferLock::operator[]" ref="7b7fab34359f2f1d7a59847415b89464" args="(size_t n) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T, class TbufferKeeper = iRenderBuffer*> </div> <table class="memname"> <tr> <td class="memname">T& <a class="el" href="classcsRenderBufferLock.html">csRenderBufferLock</a>< T, TbufferKeeper >::operator[] </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve an item in the render buffer. <p> <p>Definition at line <a class="el" href="rbuflock_8h-source.html#l00184">184</a> of file <a class="el" href="rbuflock_8h-source.html">rbuflock.h</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>cstool/<a class="el" href="rbuflock_8h-source.html">rbuflock.h</a></ul> <hr size="1"><address><small>Generated for Crystal Space 1.2.1 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 </small></address> </div></body> </html>