ewol/doc/ewol__Program.html

695 lines
51 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::Program</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>+ <span class="code-type">int32_t</span> <a class="code-function" href="#getAttribute">getAttribute</a> (<a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> <span class="code-argument">_elementName</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#sendAttribute">sendAttribute</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-type">void</span> * <span class="code-argument">_pointer</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_jumpBetweenSample</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#sendAttributePointer">sendAttributePointer</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * <span class="code-argument">_vbo</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_index</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_jumpBetweenSample</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_offset</span>);<br>+ <span class="code-type">int32_t</span> <a class="code-function" href="#getUniform">getUniform</a> (<a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> <span class="code-argument">_elementName</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniformMatrix4fv">uniformMatrix4fv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> mat4 <span class="code-argument">_pointer</span>,<br/> <span class="code-type">bool</span> <span class="code-argument">_transpose</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform1f">uniform1f</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value1</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2f">uniform2f</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value2</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3f">uniform3f</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value2</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value3</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4f">uniform4f</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value2</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value3</span>,<br/> <span class="code-type">float</span> <span class="code-argument">_value4</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform1i">uniform1i</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value1</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2i">uniform2i</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value2</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3i">uniform3i</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value2</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value3</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4i">uniform4i</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value2</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value3</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_value4</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform1fv">uniform1fv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2fv">uniform2fv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3fv">uniform3fv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4fv">uniform4fv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform1iv">uniform1iv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2iv">uniform2iv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3iv">uniform3iv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4iv">uniform4iv</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,<br/> <span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2">uniform2</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> vec2 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3">uniform3</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> vec3 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4">uniform4</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> vec4 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform2">uniform2</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> ivec2 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform3">uniform3</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> ivec3 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#uniform4">uniform4</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> <span class="code-storage-keyword">const</span> ivec4 & <span class="code-argument">_value</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#use">use</a> (<span class="code-type">void</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#setTexture0">setTexture0</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> GL<span class="code-type">int</span> <span class="code-argument">_textureOpenGlID</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#setTexture1">setTexture1</a> (<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,<br/> GL<span class="code-type">int</span> <span class="code-argument">_textureOpenGlID</span>);<br>+ <span class="code-type">void</span> <a class="code-function" href="#unUse">unUse</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__Program.html" class="code-type">ewol::Program</a> * <a class="code-function" href="#keep">keep</a> (<span class="code-storage-keyword">const</span> <a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> & <span class="code-argument">_filename</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__Program.html" class="code-type">ewol::Program</a> * & <span class="code-argument">_object</span>);<br># <a class="code-function" href="#Program">Program</a> (<span class="code-storage-keyword">const</span> <a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> & <span class="code-argument">filename</span>);<br># ~<a class="code-function" href="#Program">Program</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::Program</b>
</pre>
<br/>
<h2>Description:</h2>
//!< if this element does not exist this is false/**
* @brief Program is a compilation of some fragment Shader and vertex Shader. This construct automaticly this assiciation
* The input file must have the form : "myFile.prog"
* The data is simple :
* <pre>
* # Comment line ... paid attention at the space at the end of lines, they are considered like a part of the file ...
* # The folder is automaticly get from the program file basic folder
* filename1.vert
* filename2.frag
* filename3.vert
* filename4.frag
* </pre>
*/<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="getAttribute">getAttribute</a> ()</h3>
<pre>
<span class="code-type">int32_t</span> <span class="code-function">getAttribute</span>(<a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> <span class="code-argument">_elementName</span>);</pre>
<br/>
User request an attribute on this program.
<br/><b>Notes:</b> The attribute is send to the fragment shaders
<br/> <ul>
<b>Parameter [input]:</b> <span class="code-argument">_elementName</span> Name of the requested attribute.
<br/><b>Return:</b> An abstract ID of the current attribute (this value is all time availlable, even if the program will be reloaded)
<br/></ul>
<br/>
<hr/>
<h3><a id="sendAttribute">sendAttribute</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">sendAttribute</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-type">void</span> * <span class="code-argument">_pointer</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_jumpBetweenSample</span>);</pre>
<br/>
Send attribute table to the spefified ID attribure (not send if does not really exist in the openGL program).
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the Attribute that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Specifies the number of elements that are to be modified.
<br/><b>Parameter [input]:</b> <span class="code-argument">_pointer</span> Pointer on the data that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_jumpBetweenSample</span> Number of byte to jump between 2 vertex (this permit to enterlace informations)
<br/></ul>
<br/>
<hr/>
<h3><a id="sendAttributePointer">sendAttributePointer</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">sendAttributePointer</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<a href="ewol__VirtualBufferObject.html" class="code-type">ewol::VirtualBufferObject</a> * <span class="code-argument">_vbo</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_index</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_jumpBetweenSample</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_offset</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="getUniform">getUniform</a> ()</h3>
<pre>
<span class="code-type">int32_t</span> <span class="code-function">getUniform</span>(<a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> <span class="code-argument">_elementName</span>);</pre>
<br/>
User request an Uniform on this program.
<br/><b>Notes:</b> uniform value is availlable for all the fragment shader in the program (only one value for all)
<br/> <ul>
<b>Parameter [input]:</b> <span class="code-argument">_elementName</span> Name of the requested uniform.
<br/><b>Return:</b> An abstract ID of the current uniform (this value is all time availlable, even if the program will be reloaded)
<br/></ul>
<br/>
<hr/>
<h3><a id="uniformMatrix4fv">uniformMatrix4fv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniformMatrix4fv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
mat4 <span class="code-argument">_pointer</span>,
<span class="code-type">bool</span> <span class="code-argument">_transpose</span>);</pre>
<br/>
Send a uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Specifies the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array.
<br/><b>Parameter [input]:</b> <span class="code-argument">_pointer</span> Pointer on the data that might be sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_transpose</span> Transpose the matrix (needed all the taime in the normal openGl access (only not done in the openGL-ES2 due to the fact we must done it ourself)
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform1f">uniform1f</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform1f</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">float</span> <span class="code-argument">_value1</span>);</pre>
<br/>
Send 1 float uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform2f">uniform2f</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2f</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">float</span> <span class="code-argument">_value1</span>,
<span class="code-type">float</span> <span class="code-argument">_value2</span>);</pre>
<br/>
Send 2 float uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform3f">uniform3f</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3f</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">float</span> <span class="code-argument">_value1</span>,
<span class="code-type">float</span> <span class="code-argument">_value2</span>,
<span class="code-type">float</span> <span class="code-argument">_value3</span>);</pre>
<br/>
Send 3 float uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value3</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform4f">uniform4f</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4f</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">float</span> <span class="code-argument">_value1</span>,
<span class="code-type">float</span> <span class="code-argument">_value2</span>,
<span class="code-type">float</span> <span class="code-argument">_value3</span>,
<span class="code-type">float</span> <span class="code-argument">_value4</span>);</pre>
<br/>
Send 4 float uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value3</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value4</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform1i">uniform1i</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform1i</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value1</span>);</pre>
<br/>
Send 1 signed integer uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform2i">uniform2i</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2i</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value2</span>);</pre>
<br/>
Send 2 signed integer uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform3i">uniform3i</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3i</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value2</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value3</span>);</pre>
<br/>
Send 3 signed integer uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value3</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform4i">uniform4i</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4i</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value1</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value2</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value3</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_value4</span>);</pre>
<br/>
Send 4 signed integer uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_value1</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value2</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value3</span> Value to send at the Uniform
<br/><b>Parameter [input]:</b> <span class="code-argument">_value4</span> Value to send at the Uniform
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform1fv">uniform1fv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform1fv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "vec1" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform2fv">uniform2fv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2fv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "vec2" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform3fv">uniform3fv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3fv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "vec3" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform4fv">uniform4fv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4fv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">float</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "vec4" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform1iv">uniform1iv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform1iv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "ivec1" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform2iv">uniform2iv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2iv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "ivec2" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the Attribute that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform3iv">uniform3iv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3iv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "ivec3" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform4iv">uniform4iv</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4iv</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-type">int32_t</span> <span class="code-argument">_nbElement</span>,
<span class="code-storage-keyword">const</span> <span class="code-type">int32_t</span> * <span class="code-argument">_value</span>);</pre>
<br/>
Send "ivec4" uniform element to the spefified ID (not send if does not really exist in the openGL program)
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_nbElement</span> Number of element sended
<br/><b>Parameter [input]:</b> <span class="code-argument">_value</span> Pointer on the data
<br/></ul>
<br/>
<hr/>
<h3><a id="uniform2">uniform2</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> vec2 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="uniform3">uniform3</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> vec3 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="uniform4">uniform4</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> vec4 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="uniform2">uniform2</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform2</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> ivec2 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="uniform3">uniform3</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform3</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> ivec3 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="uniform4">uniform4</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">uniform4</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
<span class="code-storage-keyword">const</span> ivec4 & <span class="code-argument">_value</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="use">use</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">use</span>(<span class="code-type">void</span>);</pre>
<br/>
Request the processing of this program
<br/><br/>
<hr/>
<h3><a id="setTexture0">setTexture0</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">setTexture0</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
GL<span class="code-type">int</span> <span class="code-argument">_textureOpenGlID</span>);</pre>
<br/>
set the testure Id on the specify uniform element.
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">_idElem</span> Id of the uniform that might be sended.
<br/><b>Parameter [input]:</b> <span class="code-argument">_textureOpenGlID</span> Real openGL texture ID
<br/></ul>
<br/>
<hr/>
<h3><a id="setTexture1">setTexture1</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">setTexture1</span>(<span class="code-type">int32_t</span> <span class="code-argument">_idElem</span>,
GL<span class="code-type">int</span> <span class="code-argument">_textureOpenGlID</span>);</pre>
<br/>
<br/>
<hr/>
<h3><a id="unUse">unUse</a> ()</h3>
<pre>
<span class="code-type">void</span> <span class="code-function">unUse</span>(<span class="code-type">void</span>);</pre>
<br/>
Stop the processing of this program
<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__Program.html" class="code-type">ewol::Program</a> * <span class="code-function">keep</span>(<span class="code-storage-keyword">const</span> <a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> & <span class="code-argument">_filename</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">_filename</span> Name of the openGL program.
<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__Program.html" class="code-type">ewol::Program</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="Program">Program</a> ()</h3>
<pre>
<span class="code-function">Program</span>(<span class="code-storage-keyword">const</span> <a href="http://www.cplusplus.com/reference/string/string/" class="code-type">std::string</a> & <span class="code-argument">filename</span>);</pre>
<br/>
Contructor of an opengl Program.
<br/><ul>
<b>Parameter [input]:</b> <span class="code-argument">filename</span> Standard file name format. see <br/></ul>
<br/>
<hr/>
<h3>ewol::~<a id="Program">Program</a> ()</h3>
<pre>
~<span class="code-function">Program</span>(<span class="code-type">void</span>);</pre>
<br/>
Destructor, remove the current Program.
<br/><br/>
<hr/>
</div>
</body>
</html>