<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>OpenSceneGraph: osg::BufferObject Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">OpenSceneGraph <span id="projectnumber">2.8.4</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a01628.html">osg</a> </li> <li class="navelem"><a class="el" href="a00080.html">BufferObject</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-types">Protected Types</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <div class="title">osg::BufferObject Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="osg::BufferObject" --><!-- doxytag: inherits="osg::Object" --><div class="dynheader"> Inheritance diagram for osg::BufferObject:</div> <div class="dyncontent"> <div class="center"><img src="a01707.png" border="0" usemap="#osg_1_1BufferObject_inherit__map" alt="Inheritance graph"/></div> <map name="osg_1_1BufferObject_inherit__map" id="osg_1_1BufferObject_inherit__map"> <area shape="rect" id="node7" href="a00241.html" title="osg::ElementBufferObject" alt="" coords="537,5,740,35"/><area shape="rect" id="node9" href="a00550.html" title="osg::PixelBufferObject" alt="" coords="551,59,727,88"/><area shape="rect" id="node11" href="a00553.html" title="This object represent a general class of pixel buffer objects, which are capable of allocating buffer..." alt="" coords="533,112,744,141"/><area shape="rect" id="node13" href="a01079.html" title="osg::VertexBufferObject" alt="" coords="544,165,733,195"/><area shape="rect" id="node2" href="a00500.html" title="Base class/standard interface for objects which require IO support, cloning and reference counting..." alt="" coords="191,85,292,115"/><area shape="rect" id="node4" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="7,85,140,115"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a01708.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">BufferEntry</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00265.html">Extensions</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a00265.html" title="Extensions class which encapsulates the querying of extensions and associated function pointers...">Extensions</a> class which encapsulates the querying of extensions and associated function pointers, and provide convenience wrappers to check for the extensions or use the associated functions. <a href="a00265.html#details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#afb073fa642f07b9efa264789a6dbe6b5">BufferObject</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a324eadd2bcf51e45a8431e04befc9d98">BufferObject</a> (const <a class="el" href="a00080.html">BufferObject</a> &bo, const <a class="el" href="a00169.html">CopyOp</a> &copyop=CopyOp::SHALLOW_COPY)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor using <a class="el" href="a00169.html" title="Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...">CopyOp</a> to manage deep vs shallow copy. <a href="#a324eadd2bcf51e45a8431e04befc9d98"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a165450c3e12db8f133b1d702ce154a26">isSameKindAs</a> (const <a class="el" href="a00500.html">Object</a> *obj) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#ab81b6b3f63e6a0954f8055cf2bf5ac82">libraryName</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the name of the object's library. <a href="#ab81b6b3f63e6a0954f8055cf2bf5ac82"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a92e5ba322a9022a57c23ed3ff38af015">className</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the name of the object's class type. <a href="#a92e5ba322a9022a57c23ed3ff38af015"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a17ece486a56a0486d1a8a1937d91481e">setUsage</a> (GLenum usage)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set what type of usage the buffer object will have. <a href="#a17ece486a56a0486d1a8a1937d91481e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GLenum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a7e712a60a6fdc02cd22b8f573ee6af51">getUsage</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the type of usage the buffer object has been set up for. <a href="#a7e712a60a6fdc02cd22b8f573ee6af51"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#ad21644f3b739513273faa547d012936e">isBufferObjectSupported</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a1b7790ec9f40268b7e4c51d7577f14f3">isPBOSupported</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">GLuint & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a177125d7a157c2c42ed07d9340935399">buffer</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a65d461f1b706cf86be79076e69e269ee">bindBuffer</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a9dd2a7849ba0f1311b076cdf384f805c">unbindBuffer</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a7380ca8006f4f946e263d4656a0581d4">dirty</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a59a8d9847302bc775a5a75f2ea67ac29">isDirty</a> (unsigned int contextID) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a55e0579b09e724b219bb4492ebaa3583">compileBuffer</a> (<a class="el" href="a00742.html">State</a> &state) const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#ae1619e0f33db7ddc3d1c1474282b8f5c">resizeGLObjectBuffers</a> (unsigned int maxSize)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Resize any per context GLObject buffers to specified size. <a href="#ae1619e0f33db7ddc3d1c1474282b8f5c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a2b97b33e0d46e9662125723e7c88566b">releaseGLObjects</a> (<a class="el" href="a00742.html">State</a> *state=0) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If <a class="el" href="a00742.html" title="Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings, implements lazy state updating and provides accessors for querying the current state.">State</a> is non-zero, this function releases OpenGL objects for the specified graphics context. <a href="#a2b97b33e0d46e9662125723e7c88566b"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a6b20f991fd9fa60613fcbd48a022c6d4">deleteBufferObject</a> (unsigned int contextID, GLuint globj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID. <a href="#a6b20f991fd9fa60613fcbd48a022c6d4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a381e790cdd23b1b13cce575f73ec8a59">flushDeletedBufferObjects</a> (unsigned int contextID, double, double &availableTime)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">flush all the cached display list which need to be deleted in the OpenGL context related to contextID. <a href="#a381e790cdd23b1b13cce575f73ec8a59"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a26fd66d922243012bfced4d78b34e38b">discardDeletedBufferObjects</a> (unsigned int contextID)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">dicard all the cached display list which need to be deleted in the OpenGL context related to contextID. <a href="#a26fd66d922243012bfced4d78b34e38b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00265.html">Extensions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a9f1cf0f16db34ca2b086c7ed55d7f9c7">getExtensions</a> (unsigned int contextID, bool createIfNotInitalized)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function to call to get the extension of a specified context. <a href="#a9f1cf0f16db34ca2b086c7ed55d7f9c7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a72095cac47b91852d14715c6176a9411">setExtensions</a> (unsigned int contextID, <a class="el" href="a00265.html">Extensions</a> *extensions)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">setExtensions allows users to override the extensions across graphics contexts. <a href="#a72095cac47b91852d14715c6176a9411"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-types"></a> Protected Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00078.html">osg::buffered_value</a><br class="typebreak"/> < GLuint > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#ab010bea2a24207680178a401a119c6cd">GLObjectList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00078.html">osg::buffered_value</a><br class="typebreak"/> < unsigned int > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a28ec5aa7b81a1e9160ecb0e4cef5ecbb">CompiledList</a></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a52f9c394771342cec51bdd4055874921">~BufferObject</a> ()</td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00078.html">GLObjectList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a0b3d4d0458e6c0f3655f61d59cd7f3fd">_bufferObjectList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00078.html">CompiledList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#aa0cb6e36e88b2ff75b235cf010371c1a">_compiledList</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GLenum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a68d29919aa9590f88b520ef03a41c9fe">_target</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GLenum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a2a4be1db929837a674f9f54e22dd98bc">_usage</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#a99a423f02b76250742c3e721ed1f173c">_totalSize</a></td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a28ec5aa7b81a1e9160ecb0e4cef5ecbb"></a><!-- doxytag: member="osg::BufferObject::CompiledList" ref="a28ec5aa7b81a1e9160ecb0e4cef5ecbb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="a00078.html">osg::buffered_value</a><unsigned int> <a class="el" href="a00078.html">osg::BufferObject::CompiledList</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ab010bea2a24207680178a401a119c6cd"></a><!-- doxytag: member="osg::BufferObject::GLObjectList" ref="ab010bea2a24207680178a401a119c6cd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="a00078.html">osg::buffered_value</a><GLuint> <a class="el" href="a00078.html">osg::BufferObject::GLObjectList</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="afb073fa642f07b9efa264789a6dbe6b5"></a><!-- doxytag: member="osg::BufferObject::BufferObject" ref="afb073fa642f07b9efa264789a6dbe6b5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osg::BufferObject::BufferObject </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a324eadd2bcf51e45a8431e04befc9d98"></a><!-- doxytag: member="osg::BufferObject::BufferObject" ref="a324eadd2bcf51e45a8431e04befc9d98" args="(const BufferObject &bo, const CopyOp &copyop=CopyOp::SHALLOW_COPY)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osg::BufferObject::BufferObject </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00080.html">BufferObject</a> & </td> <td class="paramname"><em>bo</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00169.html">CopyOp</a> & </td> <td class="paramname"><em>copyop</em> = <code>CopyOp::SHALLOW_COPY</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Copy constructor using <a class="el" href="a00169.html" title="Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...">CopyOp</a> to manage deep vs shallow copy. </p> </div> </div> <a class="anchor" id="a52f9c394771342cec51bdd4055874921"></a><!-- doxytag: member="osg::BufferObject::~BufferObject" ref="a52f9c394771342cec51bdd4055874921" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual osg::BufferObject::~BufferObject </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a65d461f1b706cf86be79076e69e269ee"></a><!-- doxytag: member="osg::BufferObject::bindBuffer" ref="a65d461f1b706cf86be79076e69e269ee" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osg::BufferObject::bindBuffer </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>References <a class="el" href="a00265.html#a6a97bbc254d02fa72896c0afb02ae6c6">osg::BufferObject::Extensions::glBindBuffer()</a>.</p> </div> </div> <a class="anchor" id="a177125d7a157c2c42ed07d9340935399"></a><!-- doxytag: member="osg::BufferObject::buffer" ref="a177125d7a157c2c42ed07d9340935399" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GLuint& osg::BufferObject::buffer </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="a00742.html#a7d99a527594cb8e004fa7e7ea81dda88">osg::State::bindElementBufferObject()</a>, <a class="el" href="a00742.html#a631d844358678b43a0a9279bcbaf0aa0">osg::State::bindPixelBufferObject()</a>, and <a class="el" href="a00742.html#a6d1e9af67eea4f252e78e7e1e3a40b68">osg::State::bindVertexBufferObject()</a>.</p> </div> </div> <a class="anchor" id="a92e5ba322a9022a57c23ed3ff38af015"></a><!-- doxytag: member="osg::BufferObject::className" ref="a92e5ba322a9022a57c23ed3ff38af015" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const char* osg::BufferObject::className </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return the name of the object's class type. </p> <p>Must be defined by derived classes. </p> <p>Implements <a class="el" href="a00500.html#a0a2c199f26fdd9ca9fc60d6c79827187">osg::Object</a>.</p> </div> </div> <a class="anchor" id="a55e0579b09e724b219bb4492ebaa3583"></a><!-- doxytag: member="osg::BufferObject::compileBuffer" ref="a55e0579b09e724b219bb4492ebaa3583" args="(State &state) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void osg::BufferObject::compileBuffer </td> <td>(</td> <td class="paramtype"><a class="el" href="a00742.html">State</a> & </td> <td class="paramname"><em>state</em></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="a01079.html#a3f97c968a209e96cc0eedd687bc2ad8e">osg::VertexBufferObject</a>, <a class="el" href="a00241.html#a0ba244bd18790cf7838afb07eb8e1055">osg::ElementBufferObject</a>, <a class="el" href="a00550.html#a15f54260bd1d56b4beb34f71bef97b6e">osg::PixelBufferObject</a>, and <a class="el" href="a00553.html#a44a59561e75d9451e9d1ad7a21f70047">osg::PixelDataBufferObject</a>.</p> </div> </div> <a class="anchor" id="a6b20f991fd9fa60613fcbd48a022c6d4"></a><!-- doxytag: member="osg::BufferObject::deleteBufferObject" ref="a6b20f991fd9fa60613fcbd48a022c6d4" args="(unsigned int contextID, GLuint globj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void osg::BufferObject::deleteBufferObject </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">GLuint </td> <td class="paramname"><em>globj</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID. </p> </div> </div> <a class="anchor" id="a7380ca8006f4f946e263d4656a0581d4"></a><!-- doxytag: member="osg::BufferObject::dirty" ref="a7380ca8006f4f946e263d4656a0581d4" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osg::BufferObject::dirty </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a26fd66d922243012bfced4d78b34e38b"></a><!-- doxytag: member="osg::BufferObject::discardDeletedBufferObjects" ref="a26fd66d922243012bfced4d78b34e38b" args="(unsigned int contextID)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void osg::BufferObject::discardDeletedBufferObjects </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>dicard all the cached display list which need to be deleted in the OpenGL context related to contextID. </p> <p>Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed. </p> </div> </div> <a class="anchor" id="a381e790cdd23b1b13cce575f73ec8a59"></a><!-- doxytag: member="osg::BufferObject::flushDeletedBufferObjects" ref="a381e790cdd23b1b13cce575f73ec8a59" args="(unsigned int contextID, double, double &availableTime)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void osg::BufferObject::flushDeletedBufferObjects </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double & </td> <td class="paramname"><em>availableTime</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>flush all the cached display list which need to be deleted in the OpenGL context related to contextID. </p> </div> </div> <a class="anchor" id="a9f1cf0f16db34ca2b086c7ed55d7f9c7"></a><!-- doxytag: member="osg::BufferObject::getExtensions" ref="a9f1cf0f16db34ca2b086c7ed55d7f9c7" args="(unsigned int contextID, bool createIfNotInitalized)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00265.html">Extensions</a>* osg::BufferObject::getExtensions </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>createIfNotInitalized</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Function to call to get the extension of a specified context. </p> <p>If the Extension object for that context has not yet been created and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the <a class="el" href="a00265.html" title="Extensions class which encapsulates the querying of extensions and associated function pointers...">Extensions</a> object is automatically created. However, in this case the extension object is only created with the graphics context associated with ContextID.. </p> </div> </div> <a class="anchor" id="a7e712a60a6fdc02cd22b8f573ee6af51"></a><!-- doxytag: member="osg::BufferObject::getUsage" ref="a7e712a60a6fdc02cd22b8f573ee6af51" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GLenum osg::BufferObject::getUsage </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get the type of usage the buffer object has been set up for. </p> </div> </div> <a class="anchor" id="ad21644f3b739513273faa547d012936e"></a><!-- doxytag: member="osg::BufferObject::isBufferObjectSupported" ref="ad21644f3b739513273faa547d012936e" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool osg::BufferObject::isBufferObjectSupported </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a59a8d9847302bc775a5a75f2ea67ac29"></a><!-- doxytag: member="osg::BufferObject::isDirty" ref="a59a8d9847302bc775a5a75f2ea67ac29" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool osg::BufferObject::isDirty </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="a00742.html#a7d99a527594cb8e004fa7e7ea81dda88">osg::State::bindElementBufferObject()</a>, <a class="el" href="a00742.html#a631d844358678b43a0a9279bcbaf0aa0">osg::State::bindPixelBufferObject()</a>, and <a class="el" href="a00742.html#a6d1e9af67eea4f252e78e7e1e3a40b68">osg::State::bindVertexBufferObject()</a>.</p> </div> </div> <a class="anchor" id="a1b7790ec9f40268b7e4c51d7577f14f3"></a><!-- doxytag: member="osg::BufferObject::isPBOSupported" ref="a1b7790ec9f40268b7e4c51d7577f14f3" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool osg::BufferObject::isPBOSupported </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a165450c3e12db8f133b1d702ce154a26"></a><!-- doxytag: member="osg::BufferObject::isSameKindAs" ref="a165450c3e12db8f133b1d702ce154a26" args="(const Object *obj) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool osg::BufferObject::isSameKindAs </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00500.html">Object</a> * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reimplemented from <a class="el" href="a00500.html#ac3b05ac28940dda755014a821b699f3a">osg::Object</a>.</p> <p>References <a class="el" href="a01157.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p> </div> </div> <a class="anchor" id="ab81b6b3f63e6a0954f8055cf2bf5ac82"></a><!-- doxytag: member="osg::BufferObject::libraryName" ref="ab81b6b3f63e6a0954f8055cf2bf5ac82" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const char* osg::BufferObject::libraryName </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return the name of the object's library. </p> <p>Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. </p> <p>Implements <a class="el" href="a00500.html#adac3709b960df44030d682dd1336413e">osg::Object</a>.</p> </div> </div> <a class="anchor" id="a2b97b33e0d46e9662125723e7c88566b"></a><!-- doxytag: member="osg::BufferObject::releaseGLObjects" ref="a2b97b33e0d46e9662125723e7c88566b" args="(State *state=0) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osg::BufferObject::releaseGLObjects </td> <td>(</td> <td class="paramtype"><a class="el" href="a00742.html">State</a> * </td> <td class="paramname"><em>state</em> = <code>0</code></td><td>)</td> <td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If <a class="el" href="a00742.html" title="Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings, implements lazy state updating and provides accessors for querying the current state.">State</a> is non-zero, this function releases OpenGL objects for the specified graphics context. </p> <p>Otherwise, releases OpenGL objects for all graphics contexts. </p> <p>Reimplemented from <a class="el" href="a00500.html#a9a372b2d2ccedae228f526d8409cda66">osg::Object</a>.</p> </div> </div> <a class="anchor" id="ae1619e0f33db7ddc3d1c1474282b8f5c"></a><!-- doxytag: member="osg::BufferObject::resizeGLObjectBuffers" ref="ae1619e0f33db7ddc3d1c1474282b8f5c" args="(unsigned int maxSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void osg::BufferObject::resizeGLObjectBuffers </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>maxSize</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Resize any per context GLObject buffers to specified size. </p> <p>Reimplemented from <a class="el" href="a00500.html#aad5292689187427551b90ae7ef40b9a8">osg::Object</a>.</p> <p>Reimplemented in <a class="el" href="a01079.html#a757727ccc4fb7c676033429009a3bdc2">osg::VertexBufferObject</a>, <a class="el" href="a00241.html#a786d8e76fe2dee6e1b5b8e7c768c123e">osg::ElementBufferObject</a>, <a class="el" href="a00550.html#a4c6307c2322fc4cbb7942556030c7520">osg::PixelBufferObject</a>, and <a class="el" href="a00553.html#a5db4db27e3cba936710cdf9cb14be90a">osg::PixelDataBufferObject</a>.</p> </div> </div> <a class="anchor" id="a72095cac47b91852d14715c6176a9411"></a><!-- doxytag: member="osg::BufferObject::setExtensions" ref="a72095cac47b91852d14715c6176a9411" args="(unsigned int contextID, Extensions *extensions)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void osg::BufferObject::setExtensions </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00265.html">Extensions</a> * </td> <td class="paramname"><em>extensions</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>setExtensions allows users to override the extensions across graphics contexts. </p> <p>typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions. </p> </div> </div> <a class="anchor" id="a17ece486a56a0486d1a8a1937d91481e"></a><!-- doxytag: member="osg::BufferObject::setUsage" ref="a17ece486a56a0486d1a8a1937d91481e" args="(GLenum usage)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void osg::BufferObject::setUsage </td> <td>(</td> <td class="paramtype">GLenum </td> <td class="paramname"><em>usage</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set what type of usage the buffer object will have. </p> <p>Options are: GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY. </p> </div> </div> <a class="anchor" id="a9dd2a7849ba0f1311b076cdf384f805c"></a><!-- doxytag: member="osg::BufferObject::unbindBuffer" ref="a9dd2a7849ba0f1311b076cdf384f805c" args="(unsigned int contextID) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void osg::BufferObject::unbindBuffer </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>contextID</em></td><td>)</td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reimplemented in <a class="el" href="a00553.html#a4c0e31eb47c626be6b0ae355e3998511">osg::PixelDataBufferObject</a>.</p> <p>References <a class="el" href="a00265.html#a6a97bbc254d02fa72896c0afb02ae6c6">osg::BufferObject::Extensions::glBindBuffer()</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a0b3d4d0458e6c0f3655f61d59cd7f3fd"></a><!-- doxytag: member="osg::BufferObject::_bufferObjectList" ref="a0b3d4d0458e6c0f3655f61d59cd7f3fd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00078.html">GLObjectList</a> <a class="el" href="a00080.html#a0b3d4d0458e6c0f3655f61d59cd7f3fd">osg::BufferObject::_bufferObjectList</a><code> [mutable, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aa0cb6e36e88b2ff75b235cf010371c1a"></a><!-- doxytag: member="osg::BufferObject::_compiledList" ref="aa0cb6e36e88b2ff75b235cf010371c1a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00078.html">CompiledList</a> <a class="el" href="a00080.html#aa0cb6e36e88b2ff75b235cf010371c1a">osg::BufferObject::_compiledList</a><code> [mutable, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a68d29919aa9590f88b520ef03a41c9fe"></a><!-- doxytag: member="osg::BufferObject::_target" ref="a68d29919aa9590f88b520ef03a41c9fe" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GLenum <a class="el" href="a00080.html#a68d29919aa9590f88b520ef03a41c9fe">osg::BufferObject::_target</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a99a423f02b76250742c3e721ed1f173c"></a><!-- doxytag: member="osg::BufferObject::_totalSize" ref="a99a423f02b76250742c3e721ed1f173c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="a00080.html#a99a423f02b76250742c3e721ed1f173c">osg::BufferObject::_totalSize</a><code> [mutable, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a2a4be1db929837a674f9f54e22dd98bc"></a><!-- doxytag: member="osg::BufferObject::_usage" ref="a2a4be1db929837a674f9f54e22dd98bc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GLenum <a class="el" href="a00080.html#a2a4be1db929837a674f9f54e22dd98bc">osg::BufferObject::_usage</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>osg/<a class="el" href="a01130.html">BufferObject</a></li> </ul> </div> <hr> <table border="0"><tr><td> <img src="osg32-32.png" alt="osg logo" /> </td><td> <address><small>Generated at Tue May 31 2011 04:19:32 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a> by <a href="http://www.doxygen.org">doxygen</a> 1.7.4.</small></address> <!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph --> </td></tr></table> </body> </html>