ewol/doc/ewol__VirtualBufferObject.html

355 lines
19 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>ewol Library</title>
<link rel="stylesheet" href="base.css">
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="container">
<h1>ewol Library</h1>
<li><a href="eSystemMessage.html">eSystemMessage</a></li>
<li>ewol</li>
<ul>
<li><a href="ewol__Area.html">Area</a></li>
<li><a href="ewol__Colored3DObject.html">Colored3DObject</a></li>
<li><a href="ewol__CommandLine.html">CommandLine</a></li>
<li><a href="ewol__Compositing.html">Compositing</a></li>
<li><a href="ewol__ConfigFile.html">ConfigFile</a></li>
<li><a href="ewol__ConfigFont.html">ConfigFont</a></li>
<li><a href="ewol__Dimension.html">Dimension</a></li>
<li><a href="ewol__DrawProperty.html">DrawProperty</a></li>
<li><a href="ewol__Drawing.html">Drawing</a></li>
<li><a href="ewol__EConfig.html">EConfig</a></li>
<li><a href="ewol__EConfigElement.html">EConfigElement</a></li>
<li><a href="ewol__EMessage.html">EMessage</a></li>
<li><a href="ewol__EMultiCast.html">EMultiCast</a></li>
<li><a href="ewol__EMultiCast__MessageList.html">EMultiCast::MessageList</a></li>
<li><a href="ewol__EObject.html">EObject</a></li>
<li><a href="ewol__EObjectManager.html">EObjectManager</a></li>
<li><a href="ewol__EventEntry.html">EventEntry</a></li>
<li><a href="ewol__EventEntrySystem.html">EventEntrySystem</a></li>
<li><a href="ewol__EventExtGen.html">EventExtGen</a></li>
<li><a href="ewol__EventInput.html">EventInput</a></li>
<li><a href="ewol__EventInputSystem.html">EventInputSystem</a></li>
<li><a href="ewol__EventShortCut.html">EventShortCut</a></li>
<li><a href="ewol__EventTime.html">EventTime</a></li>
<li><a href="ewol__Face.html">Face</a></li>
<li><a href="ewol__FaceIndexing.html">FaceIndexing</a></li>
<li><a href="ewol__FontBase.html">FontBase</a></li>
<li><a href="ewol__FontFreeType.html">FontFreeType</a></li>
<li><a href="ewol__Fps.html">Fps</a></li>
<li><a href="ewol__GlyphProperty.html">GlyphProperty</a></li>
<li><a href="ewol__Image.html">Image</a></li>
<li><a href="ewol__Kerning.html">Kerning</a></li>
<li><a href="ewol__Light.html">Light</a></li>
<li><a href="ewol__Material.html">Material</a></li>
<li><a href="ewol__MaterialGlId.html">MaterialGlId</a></li>
<li><a href="ewol__Mesh.html">Mesh</a></li>
<li><a href="ewol__PhysicsBox.html">PhysicsBox</a></li>
<li><a href="ewol__PhysicsCapsule.html">PhysicsCapsule</a></li>
<li><a href="ewol__PhysicsCone.html">PhysicsCone</a></li>
<li><a href="ewol__PhysicsConvexHull.html">PhysicsConvexHull</a></li>
<li><a href="ewol__PhysicsCylinder.html">PhysicsCylinder</a></li>
<li><a href="ewol__PhysicsShape.html">PhysicsShape</a></li>
<li><a href="ewol__PhysicsSphere.html">PhysicsSphere</a></li>
<li><a href="ewol__Program.html">Program</a></li>
<li><a href="ewol__Resource.html">Resource</a></li>
<li><a href="ewol__ResourceManager.html">ResourceManager</a></li>
<li><a href="ewol__Shader.html">Shader</a></li>
<li><a href="ewol__Shaper.html">Shaper</a></li>
<li><a href="ewol__SimpleConfigElement.html">SimpleConfigElement</a></li>
<li><a href="ewol__SpecialKey.html">SpecialKey</a></li>
<li><a href="ewol__SpecialKey__SpecialKey__union__.html">SpecialKey::SpecialKey::union ::</a></li>
<li><a href="ewol__SpecialKey__union.html">SpecialKey::union </a></li>
<li><a href="ewol__Sprite.html">Sprite</a></li>
<li><a href="ewol__Text.html">Text</a></li>
<li><a href="ewol__TextDecoration.html">TextDecoration</a></li>
<li><a href="ewol__Texture.html">Texture</a></li>
<li><a href="ewol__TextureFile.html">TextureFile</a></li>
<li><a href="ewol__TexturedFont.html">TexturedFont</a></li>
<li><a href="ewol__VirtualBufferObject.html">VirtualBufferObject</a></li>
<li><a href="ewol__Widget.html">Widget</a></li>
<li><a href="ewol__WidgetManager.html">WidgetManager</a></li>
<li><a href="ewol__Windows.html">Windows</a></li>
<li><a href="ewol__eContext.html">eContext</a></li>
<li><a href="ewol__eInput.html">eInput</a></li>
<li><a href="ewol__progAttributeElement.html">progAttributeElement</a></li>
</ul>
<li>widget</li>
<ul>
<li><a href="widget__Button.html">Button</a></li>
<li><a href="widget__ButtonColor.html">ButtonColor</a></li>
<li><a href="widget__CheckBox.html">CheckBox</a></li>
<li><a href="widget__ColorBar.html">ColorBar</a></li>
<li><a href="widget__ColorChooser.html">ColorChooser</a></li>
<li><a href="widget__Composer.html">Composer</a></li>
<li><a href="widget__Container.html">Container</a></li>
<li><a href="widget__ContainerN.html">ContainerN</a></li>
<li><a href="widget__ContextMenu.html">ContextMenu</a></li>
<li><a href="widget__Entry.html">Entry</a></li>
<li><a href="widget__FileChooser.html">FileChooser</a></li>
<li><a href="widget__Gird.html">Gird</a></li>
<li><a href="widget__Gird__GirdProperties.html">Gird::GirdProperties</a></li>
<li><a href="widget__Image.html">Image</a></li>
<li><a href="widget__Joystick.html">Joystick</a></li>
<li><a href="widget__Label.html">Label</a></li>
<li><a href="widget__Layer.html">Layer</a></li>
<li><a href="widget__List.html">List</a></li>
<li><a href="widget__ListFileSystem.html">ListFileSystem</a></li>
<li><a href="widget__Menu.html">Menu</a></li>
<li><a href="widget__MenuElement.html">MenuElement</a></li>
<li><a href="widget__Mesh.html">Mesh</a></li>
<li><a href="widget__Parameter.html">Parameter</a></li>
<li><a href="widget__ParameterList.html">ParameterList</a></li>
<li><a href="widget__PopUp.html">PopUp</a></li>
<li><a href="widget__ProgressBar.html">ProgressBar</a></li>
<li><a href="widget__Scroll.html">Scroll</a></li>
<li><a href="widget__Sizer.html">Sizer</a></li>
<li><a href="widget__Slider.html">Slider</a></li>
<li><a href="widget__Spacer.html">Spacer</a></li>
<li><a href="widget__StdPopUp.html">StdPopUp</a></li>
<li><a href="widget__WSlider.html">WSlider</a></li>
<li><a href="widget__WidgetScrooled.html">WidgetScrooled</a></li>
<li><a href="widget__elementPL.html">elementPL</a></li>
</ul>
</ul>
<li>ewol</li>
<ul>
<li><a href="ewol__clipBoard__clipboardListe.html">clipBoard::clipboardListe</a></li>
<li><a href="ewol__cursorDisplay.html">cursorDisplay</a></li>
<li><a href="ewol__font__mode.html">font::mode</a></li>
<li><a href="ewol__gravity.html">gravity</a></li>
<li><a href="ewol__keyEvent__keyboard.html">keyEvent::keyboard</a></li>
<li><a href="ewol__keyEvent__status.html">keyEvent::status</a></li>
<li><a href="ewol__keyEvent__type.html">keyEvent::type</a></li>
<li><a href="ewol__openGL__openGlFlags.html">openGL::openGlFlags</a></li>
<li><a href="ewol__orientation.html">orientation</a></li>
</ul>
</div>
</div>
<div class="container" id="content">
<h1>Class: ewol::VirtualBufferObject</h1>
<br/>
<h2>Synopsis:</h2>
<pre>
+ <span class="code-storage-keyword">const</span> <span class="code-type">char</span> * <a class="code-function" href="#getType">getType</a> (<span class="code-type">void</span>);<br>+ GL<span class="code-type">uint</span> <a class="code-function" href="#getGL_ID">getGL_ID</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>);<br>+ std::vector<<span class="code-type">float</span>> & <a class="code-function" href="#getRefBuffer">getRefBuffer</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#pushOnBuffer">pushOnBuffer</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>,<br/> <span class="code-storage-keyword">const</span> vec3 & <span class="code-argument">data</span>);<br>+ vec3 <a class="code-function" href="#getOnBufferVec3">getOnBufferVec3</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">elementID</span>);<br>+ <span class="code-type">int32_t</span> <a class="code-function" href="#sizeOnBufferVec3">sizeOnBufferVec3</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#pushOnBuffer">pushOnBuffer</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>,<br/> <span class="code-storage-keyword">const</span> vec2 & <span class="code-argument">data</span>);<br>+ vec2 <a class="code-function" href="#getOnBufferVec2">getOnBufferVec2</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">elementID</span>);<br>+ <span class="code-type">int32_t</span> <a class="code-function" href="#sizeOnBufferVec2">sizeOnBufferVec2</a> (<span class="code-type">int32_t</span> <span class="code-argument">id</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#retreiveData">retreiveData</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#flush">flush</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#updateContext">updateContext</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#removeContext">removeContext</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#removeContextToLate">removeContextToLate</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#reload">reload</a> (<span class="code-type">void</span>);<br>+ <span class="code-storage-keyword">static</span> <a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * <a class="code-function" href="#keep">keep</a> (<span class="code-type">int32_t</span> <span class="code-argument">_number</span>);<br>+ <span class="code-storage-keyword">static</span> <span class="code-type">void</span> <a class="code-function" href="#release">release</a> (<a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * & <span class="code-argument">_object</span>);<br># <a class="code-function" href="#VirtualBufferObject">VirtualBufferObject</a> (<span class="code-type">int32_t</span> <span class="code-argument">_number</span>);<br># ~<a class="code-function" href="#VirtualBufferObject">VirtualBufferObject</a> (<span class="code-type">void</span>);<br></pre>
<h2>Object Hierarchy:</h2>
<pre>
<a href="ewol__EObject.html">ewol::EObject</a>
+--> <a href="ewol__Resource.html">ewol::Resource</a>
+--> <b>ewol::VirtualBufferObject</b>
</pre>
<br/>
<h2>Description:</h2>
/**
* @brief VirtualBufferObject is a specific resources for opengl, this load the data directly in the graphic card ad keep these inside
*/<h2>Detail:<h2>
<h3><a id="getType">getType</a> ()</h3>
<pre>
<span class="code-storage-keyword">const</span> <span class="code-type">char</span> * <span class="code-function">getType</span>(<span class="code-type">void</span>);</pre>
<br/>
Generic function that get the resouces name of his type.
<br/><ul>
<b>Return:</b> The define char of his name.
<br/></ul>
<br/>
<hr/>
<h3><a id="getGL_ID">getGL_ID</a> ()</h3>
<pre>
GL<span class="code-type">uint</span> <span class="code-function">getGL_ID</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>);</pre>
<br/>
get the real openGL ID.
<br/><ul>
<b>Return:</b> the Ogl id reference of this VBO.
<br/></ul>
<br/>
<hr/>
<h3><a id="getRefBuffer">getRefBuffer</a> ()</h3>
<pre>
std::vector<<span class="code-type">float</span>> & <span class="code-function">getRefBuffer</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>);</pre>
<br/>
get a reference on hte buffer data for this VBO.
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">id</span> Id of the buffer requested
<br/><b>Return:</b> A reference on the data.
<br/></ul>
<br/>
<hr/>
<h3><a id="pushOnBuffer">pushOnBuffer</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">pushOnBuffer</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>,
<span class="code-storage-keyword">const</span> vec3 & <span class="code-argument">data</span>);</pre>
<br/>
push data on a buffer with a custum type :
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">id</span> Id of the buffer requested.
<br/><b>Parameter [input]:</b> <span class="code-argument">data</span> Direct data that might be set.
<br/></ul>
<br/>
<hr/>
<h3><a id="getOnBufferVec3">getOnBufferVec3</a> ()</h3>
<pre>
vec3 <span class="code-function">getOnBufferVec3</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>,
<span class="code-type">int32_t</span> <span class="code-argument">elementID</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="sizeOnBufferVec3">sizeOnBufferVec3</a> ()</h3>
<pre>
<span class="code-type">int32_t</span> <span class="code-function">sizeOnBufferVec3</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="pushOnBuffer">pushOnBuffer</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">pushOnBuffer</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>,
<span class="code-storage-keyword">const</span> vec2 & <span class="code-argument">data</span>);</pre>
<br/>
push data on a buffer with a custum type :
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">id</span> Id of the buffer requested.
<br/><b>Parameter [input]:</b> <span class="code-argument">data</span> Direct data that might be set.
<br/></ul>
<br/>
<hr/>
<h3><a id="getOnBufferVec2">getOnBufferVec2</a> ()</h3>
<pre>
vec2 <span class="code-function">getOnBufferVec2</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>,
<span class="code-type">int32_t</span> <span class="code-argument">elementID</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="sizeOnBufferVec2">sizeOnBufferVec2</a> ()</h3>
<pre>
<span class="code-type">int32_t</span> <span class="code-function">sizeOnBufferVec2</span>(<span class="code-type">int32_t</span> <span class="code-argument">id</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="retreiveData">retreiveData</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">retreiveData</span>(<span class="code-type">void</span>);</pre>
<br/>
get the data from the graphic card.
<br/><br/>
<hr/>
<h3><a id="flush">flush</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">flush</span>(<span class="code-type">void</span>);</pre>
<br/>
Send the data to the graphic card.
<br/><br/>
<hr/>
<h3><a id="updateContext">updateContext</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">updateContext</span>(<span class="code-type">void</span>);</pre>
<br/>
This load/reload the data in the opengl context, needed when removed previously.
<br/><br/>
<hr/>
<h3><a id="removeContext">removeContext</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">removeContext</span>(<span class="code-type">void</span>);</pre>
<br/>
remove the data from the opengl context.
<br/><br/>
<hr/>
<h3><a id="removeContextToLate">removeContextToLate</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">removeContextToLate</span>(<span class="code-type">void</span>);</pre>
<br/>
Special android spec! It inform us that all context is removed and after notify us...
<br/><br/>
<hr/>
<h3><a id="reload">reload</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">reload</span>(<span class="code-type">void</span>);</pre>
<br/>
Relode the shader from the file. used when a request of resouces reload is done.
<br/><b>Notes:</b> this is really usefull when we tested the new themes or shader developpements.
<br/> <br/>
<hr/>
<h3>ewol::<a id="keep">keep</a> ()</h3>
<pre>
<span class="code-storage-keyword">static</span> <a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * <span class="code-function">keep</span>(<span class="code-type">int32_t</span> <span class="code-argument">_number</span>);</pre>
<br/>
keep the resource pointer.
<br/><b>Notes:</b> Never free this pointer by your own...
<br/> <ul>
<b>Parameter [input]:</b> <span class="code-argument">_number</span> Number of VBO needed
<br/><b>Return:</b> pointer on the resource or NULL if an error occured.
<br/></ul>
<br/>
<hr/>
<h3>ewol::<a id="release">release</a> ()</h3>
<pre>
<span class="code-storage-keyword">static</span> <span class="code-type">void</span> <span class="code-function">release</span>(<a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * & <span class="code-argument">_object</span>);</pre>
<br/>
release the keeped resources
<br/><ul>
<b>Parameter [input] [output]:</b> <span class="code-argument">reference</span> on the object pointer
<br/></ul>
<br/>
<hr/>
<h3>ewol::<a id="VirtualBufferObject">VirtualBufferObject</a> ()</h3>
<pre>
<span class="code-function">VirtualBufferObject</span>(<span class="code-type">int32_t</span> <span class="code-argument">_number</span>);</pre>
<br/>
Constructor of this VBO.
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">accesMode</span> Acces mode : ???
<br/></ul>
<br/>
<hr/>
<h3>ewol::~<a id="VirtualBufferObject">VirtualBufferObject</a> ()</h3>
<pre>
~<span class="code-function">VirtualBufferObject</span>(<span class="code-type">void</span>);</pre>
<br/>
Destructor of this VBO.
<br/><br/>
<hr/>
</div>
</body>
</html>