diff options
Diffstat (limited to 'libghack/CSFML-2.1-windows-32bits/CSFML-2.1/doc/html/Shader_8h.htm')
1 files changed, 805 insertions, 0 deletions
diff --git a/libghack/CSFML-2.1-windows-32bits/CSFML-2.1/doc/html/Shader_8h.htm b/libghack/CSFML-2.1-windows-32bits/CSFML-2.1/doc/html/Shader_8h.htm new file mode 100755 index 0000000..4b3f244 --- /dev/null +++ b/libghack/CSFML-2.1-windows-32bits/CSFML-2.1/doc/html/Shader_8h.htm @@ -0,0 +1,805 @@ +<!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> + <title>CSFML - C binding of the Simple and Fast Multimedia Library</title> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> + <!--<link rel='stylesheet' type='text/css' href="http://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>--> + <link rel="stylesheet" type="text/css" href="doxygen.css" title="default" media="screen,print" /> + </head> + <body> + <div id="banner-container"> + <div id="banner"> + <span id="sfml">CSFML</span> + </div> + </div> + <div id="content"> +<!-- Generated by Doxygen 1.8.2 --> + <div id="navrow1" class="tabs"> + <ul class="tablist"> + <li><a href="index.htm"><span>Main Page</span></a></li> + <li><a href="annotated.htm"><span>Data Structures</span></a></li> + <li class="current"><a href="files.htm"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.htm"><span>File List</span></a></li> + <li><a href="globals.htm"><span>Globals</span></a></li> + </ul> + </div> +<div id="nav-path" class="navpath"> + <ul> +<li class="navelem"><a class="el" href="dir_6a66b7969672f1da69f458a57d2c97f9.htm">include</a></li><li class="navelem"><a class="el" href="dir_8cc999c03ab8fdf40558b1f21f869c3e.htm">SFML</a></li><li class="navelem"><a class="el" href="dir_513183d162d70e825c1ac102f07bf6df.htm">Graphics</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">Shader.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <<a class="el" href="Graphics_2Export_8h_source.htm">SFML/Graphics/Export.h</a>></code><br/> +<code>#include <<a class="el" href="Color_8h_source.htm">SFML/Graphics/Color.h</a>></code><br/> +<code>#include <<a class="el" href="Transform_8h_source.htm">SFML/Graphics/Transform.h</a>></code><br/> +<code>#include <<a class="el" href="Graphics_2Types_8h_source.htm">SFML/Graphics/Types.h</a>></code><br/> +<code>#include <<a class="el" href="InputStream_8h_source.htm">SFML/System/InputStream.h</a>></code><br/> +<code>#include <<a class="el" href="Vector2_8h_source.htm">SFML/System/Vector2.h</a>></code><br/> +<code>#include <<a class="el" href="Vector3_8h_source.htm">SFML/System/Vector3.h</a>></code><br/> +</div> +<p><a href="Shader_8h_source.htm">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a10bdc71be35779eae268a47f82641ef2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a10bdc71be35779eae268a47f82641ef2">sfShader_createFromFile</a> (const char *vertexShaderFilename, const char *fragmentShaderFilename)</td></tr> +<tr class="memdesc:a10bdc71be35779eae268a47f82641ef2"><td class="mdescLeft"> </td><td class="mdescRight">Load both the vertex and fragment shaders from files. <a href="#a10bdc71be35779eae268a47f82641ef2"></a><br/></td></tr> +<tr class="separator:a10bdc71be35779eae268a47f82641ef2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5b50ffaf819e672dcf93bf09a981bdc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a5b50ffaf819e672dcf93bf09a981bdc3">sfShader_createFromMemory</a> (const char *vertexShader, const char *fragmentShader)</td></tr> +<tr class="memdesc:a5b50ffaf819e672dcf93bf09a981bdc3"><td class="mdescLeft"> </td><td class="mdescRight">Load both the vertex and fragment shaders from source codes in memory. <a href="#a5b50ffaf819e672dcf93bf09a981bdc3"></a><br/></td></tr> +<tr class="separator:a5b50ffaf819e672dcf93bf09a981bdc3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aae391e3bb2c315458fb03052b29496c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#aae391e3bb2c315458fb03052b29496c0">sfShader_createFromStream</a> (<a class="el" href="structsfInputStream.htm">sfInputStream</a> *vertexShaderStream, <a class="el" href="structsfInputStream.htm">sfInputStream</a> *fragmentShaderStream)</td></tr> +<tr class="memdesc:aae391e3bb2c315458fb03052b29496c0"><td class="mdescLeft"> </td><td class="mdescRight">Load both the vertex and fragment shaders from custom streams. <a href="#aae391e3bb2c315458fb03052b29496c0"></a><br/></td></tr> +<tr class="separator:aae391e3bb2c315458fb03052b29496c0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a52b589679d49020c4119d90d16128e00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a52b589679d49020c4119d90d16128e00">sfShader_destroy</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader)</td></tr> +<tr class="memdesc:a52b589679d49020c4119d90d16128e00"><td class="mdescLeft"> </td><td class="mdescRight">Destroy an existing shader. <a href="#a52b589679d49020c4119d90d16128e00"></a><br/></td></tr> +<tr class="separator:a52b589679d49020c4119d90d16128e00"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aed732f598ff18f1c4064a182b8f85606"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#aed732f598ff18f1c4064a182b8f85606">sfShader_setFloatParameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, float x)</td></tr> +<tr class="memdesc:aed732f598ff18f1c4064a182b8f85606"><td class="mdescLeft"> </td><td class="mdescRight">Change a float parameter of a shader. <a href="#aed732f598ff18f1c4064a182b8f85606"></a><br/></td></tr> +<tr class="separator:aed732f598ff18f1c4064a182b8f85606"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aead3624797fa1d203fe26b830d00c78c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#aead3624797fa1d203fe26b830d00c78c">sfShader_setFloat2Parameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, float x, float y)</td></tr> +<tr class="memdesc:aead3624797fa1d203fe26b830d00c78c"><td class="mdescLeft"> </td><td class="mdescRight">Change a 2-components vector parameter of a shader. <a href="#aead3624797fa1d203fe26b830d00c78c"></a><br/></td></tr> +<tr class="separator:aead3624797fa1d203fe26b830d00c78c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a06bcfbe44258e5b7492d9f0cb17ea48c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a06bcfbe44258e5b7492d9f0cb17ea48c">sfShader_setFloat3Parameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, float x, float y, float z)</td></tr> +<tr class="memdesc:a06bcfbe44258e5b7492d9f0cb17ea48c"><td class="mdescLeft"> </td><td class="mdescRight">Change a 3-components vector parameter of a shader. <a href="#a06bcfbe44258e5b7492d9f0cb17ea48c"></a><br/></td></tr> +<tr class="separator:a06bcfbe44258e5b7492d9f0cb17ea48c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a92a5e1f0fecef1e5f130f6364cfa90d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a92a5e1f0fecef1e5f130f6364cfa90d9">sfShader_setFloat4Parameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, float x, float y, float z, float w)</td></tr> +<tr class="memdesc:a92a5e1f0fecef1e5f130f6364cfa90d9"><td class="mdescLeft"> </td><td class="mdescRight">Change a 4-components vector parameter of a shader. <a href="#a92a5e1f0fecef1e5f130f6364cfa90d9"></a><br/></td></tr> +<tr class="separator:a92a5e1f0fecef1e5f130f6364cfa90d9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46786b0c9f2b5e2486058521f3f11075"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a46786b0c9f2b5e2486058521f3f11075">sfShader_setVector2Parameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, <a class="el" href="structsfVector2f.htm">sfVector2f</a> vector)</td></tr> +<tr class="memdesc:a46786b0c9f2b5e2486058521f3f11075"><td class="mdescLeft"> </td><td class="mdescRight">Change a 2-components vector parameter of a shader. <a href="#a46786b0c9f2b5e2486058521f3f11075"></a><br/></td></tr> +<tr class="separator:a46786b0c9f2b5e2486058521f3f11075"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a04029e0ce58c0ba60df21083a3fcd6b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a04029e0ce58c0ba60df21083a3fcd6b3">sfShader_setVector3Parameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, <a class="el" href="structsfVector3f.htm">sfVector3f</a> vector)</td></tr> +<tr class="memdesc:a04029e0ce58c0ba60df21083a3fcd6b3"><td class="mdescLeft"> </td><td class="mdescRight">Change a 3-components vector parameter of a shader. <a href="#a04029e0ce58c0ba60df21083a3fcd6b3"></a><br/></td></tr> +<tr class="separator:a04029e0ce58c0ba60df21083a3fcd6b3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0963517d8815f0948e476abca60a190f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a0963517d8815f0948e476abca60a190f">sfShader_setColorParameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, <a class="el" href="structsfColor.htm">sfColor</a> color)</td></tr> +<tr class="memdesc:a0963517d8815f0948e476abca60a190f"><td class="mdescLeft"> </td><td class="mdescRight">Change a color parameter of a shader. <a href="#a0963517d8815f0948e476abca60a190f"></a><br/></td></tr> +<tr class="separator:a0963517d8815f0948e476abca60a190f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a677b43325bf4c94bcc57ea6a4f38b40f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#a677b43325bf4c94bcc57ea6a4f38b40f">sfShader_setTransformParameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, <a class="el" href="structsfTransform.htm">sfTransform</a> transform)</td></tr> +<tr class="memdesc:a677b43325bf4c94bcc57ea6a4f38b40f"><td class="mdescLeft"> </td><td class="mdescRight">Change a matrix parameter of a shader. <a href="#a677b43325bf4c94bcc57ea6a4f38b40f"></a><br/></td></tr> +<tr class="separator:a677b43325bf4c94bcc57ea6a4f38b40f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab2cc74edc4d481029482a75f59016a52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#ab2cc74edc4d481029482a75f59016a52">sfShader_setTextureParameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name, const <a class="el" href="Graphics_2Types_8h.htm#a6d67907b5f2240f6ab5efc062aca61b0">sfTexture</a> *texture)</td></tr> +<tr class="memdesc:ab2cc74edc4d481029482a75f59016a52"><td class="mdescLeft"> </td><td class="mdescRight">Change a texture parameter of a shader. <a href="#ab2cc74edc4d481029482a75f59016a52"></a><br/></td></tr> +<tr class="separator:ab2cc74edc4d481029482a75f59016a52"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae52805b872438a6d78b30197e934207b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#ae52805b872438a6d78b30197e934207b">sfShader_setCurrentTextureParameter</a> (<a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader, const char *name)</td></tr> +<tr class="memdesc:ae52805b872438a6d78b30197e934207b"><td class="mdescLeft"> </td><td class="mdescRight">Change a texture parameter of a shader. <a href="#ae52805b872438a6d78b30197e934207b"></a><br/></td></tr> +<tr class="separator:ae52805b872438a6d78b30197e934207b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa6d8d66413429e558d78386ab3fa0c6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#aa6d8d66413429e558d78386ab3fa0c6f">sfShader_bind</a> (const <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *shader)</td></tr> +<tr class="memdesc:aa6d8d66413429e558d78386ab3fa0c6f"><td class="mdescLeft"> </td><td class="mdescRight">Bind a shader for rendering (activate it) <a href="#aa6d8d66413429e558d78386ab3fa0c6f"></a><br/></td></tr> +<tr class="separator:aa6d8d66413429e558d78386ab3fa0c6f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aafdd81d0cd4b5587a948136e83469805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Config_8h.htm#a7559f07a31bb3a4a3d865178ce4dc70b">sfBool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Shader_8h.htm#aafdd81d0cd4b5587a948136e83469805">sfShader_isAvailable</a> (void)</td></tr> +<tr class="memdesc:aafdd81d0cd4b5587a948136e83469805"><td class="mdescLeft"> </td><td class="mdescRight">Tell whether or not the system supports shaders. <a href="#aafdd81d0cd4b5587a948136e83469805"></a><br/></td></tr> +<tr class="separator:aafdd81d0cd4b5587a948136e83469805"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="aa6d8d66413429e558d78386ab3fa0c6f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_bind </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Bind a shader for rendering (activate it) </p> +<p>This function is not part of the graphics API, it mustn't be used when drawing SFML entities. It must be used only if you mix sfShader with OpenGL code.</p> +<div class="fragment"><div class="line"><a class="code" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> *s1, *s2;</div> +<div class="line">...</div> +<div class="line">sfShader_bind(s1);</div> +<div class="line"><span class="comment">// draw OpenGL stuff that use s1...</span></div> +<div class="line"><a class="code" href="Shader_8h.htm#aa6d8d66413429e558d78386ab3fa0c6f" title="Bind a shader for rendering (activate it)">sfShader_bind</a>(s2);</div> +<div class="line"><span class="comment">// draw OpenGL stuff that use s2...</span></div> +<div class="line"><a class="code" href="Shader_8h.htm#aa6d8d66413429e558d78386ab3fa0c6f" title="Bind a shader for rendering (activate it)">sfShader_bind</a>(0);</div> +<div class="line"><span class="comment">// draw OpenGL stuff that use no shader...</span></div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader to bind, can be null to use no shader </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a10bdc71be35779eae268a47f82641ef2"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a>* sfShader_createFromFile </td> + <td>(</td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>vertexShaderFilename</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>fragmentShaderFilename</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Load both the vertex and fragment shaders from files. </p> +<p>This function can load both the vertex and the fragment shaders, or only one of them: pass NULL if you don't want to load either the vertex shader or the fragment shader. The sources must be text files containing valid shaders in GLSL language. GLSL is a C-like language dedicated to OpenGL shaders; you'll probably need to read a good documentation for it before writing your own shaders.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">vertexShaderFilename</td><td>Path of the vertex shader file to load, or NULL to skip this shader </td></tr> + <tr><td class="paramname">fragmentShaderFilename</td><td>Path of the fragment shader file to load, or NULL to skip this shader</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>A new sfShader object, or NULL if it failed </dd></dl> + +</div> +</div> +<a class="anchor" id="a5b50ffaf819e672dcf93bf09a981bdc3"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a>* sfShader_createFromMemory </td> + <td>(</td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>vertexShader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>fragmentShader</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Load both the vertex and fragment shaders from source codes in memory. </p> +<p>This function can load both the vertex and the fragment shaders, or only one of them: pass NULL if you don't want to load either the vertex shader or the fragment shader. The sources must be valid shaders in GLSL language. GLSL is a C-like language dedicated to OpenGL shaders; you'll probably need to read a good documentation for it before writing your own shaders.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">vertexShader</td><td>String containing the source code of the vertex shader, or NULL to skip this shader </td></tr> + <tr><td class="paramname">fragmentShader</td><td>String containing the source code of the fragment shader, or NULL to skip this shader</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>A new sfShader object, or NULL if it failed </dd></dl> + +</div> +</div> +<a class="anchor" id="aae391e3bb2c315458fb03052b29496c0"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a>* sfShader_createFromStream </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structsfInputStream.htm">sfInputStream</a> * </td> + <td class="paramname"><em>vertexShaderStream</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structsfInputStream.htm">sfInputStream</a> * </td> + <td class="paramname"><em>fragmentShaderStream</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Load both the vertex and fragment shaders from custom streams. </p> +<p>This function can load both the vertex and the fragment shaders, or only one of them: pass NULL if you don't want to load either the vertex shader or the fragment shader. The source codes must be valid shaders in GLSL language. GLSL is a C-like language dedicated to OpenGL shaders; you'll probably need to read a good documentation for it before writing your own shaders.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">vertexShaderStream</td><td>Source stream to read the vertex shader from, or NULL to skip this shader </td></tr> + <tr><td class="paramname">fragmentShaderStream</td><td>Source stream to read the fragment shader from, or NULL to skip this shader</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>A new sfShader object, or NULL if it failed </dd></dl> + +</div> +</div> +<a class="anchor" id="a52b589679d49020c4119d90d16128e00"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_destroy </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Destroy an existing shader. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader to delete </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="aafdd81d0cd4b5587a948136e83469805"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> <a class="el" href="Config_8h.htm#a7559f07a31bb3a4a3d865178ce4dc70b">sfBool</a> sfShader_isAvailable </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Tell whether or not the system supports shaders. </p> +<p>This function should always be called before using the shader features. If it returns false, then any attempt to use sfShader will fail.</p> +<dl class="section return"><dt>Returns</dt><dd>sfTrue if the system can use shaders, sfFalse otherwise </dd></dl> + +</div> +</div> +<a class="anchor" id="a0963517d8815f0948e476abca60a190f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setColorParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structsfColor.htm">sfColor</a> </td> + <td class="paramname"><em>color</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a color parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 4x1 vector (vec4 GLSL type).</p> +<p>It is important to note that the components of the color are normalized before being passed to the shader. Therefore, they are converted from range [0 .. 255] to range [0 .. 1]. For example, a sf::Color(255, 125, 0, 255) will be transformed to a vec4(1.0, 0.5, 0.0, 1.0) in the shader.</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec4 color; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#a0963517d8815f0948e476abca60a190f" title="Change a color parameter of a shader.">sfShader_setColorParameter</a>(shader, <span class="stringliteral">"color"</span>, <a class="code" href="Color_8h.htm#af2b3b1e686236c2ec4608cd69c5dec77" title="Construct a color from its 3 RGB components.">sfColor_fromRGB</a>(255, 128, 0));</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">color</td><td>Color to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="ae52805b872438a6d78b30197e934207b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setCurrentTextureParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a texture parameter of a shader. </p> +<p>This function maps a shader texture variable to the texture of the object being drawn, which cannot be known in advance. The corresponding parameter in the shader must be a 2D texture (sampler2D GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform sampler2D current; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#ae52805b872438a6d78b30197e934207b" title="Change a texture parameter of a shader.">sfShader_setCurrentTextureParameter</a>(shader, <span class="stringliteral">"current"</span>);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the texture in the shader </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="aead3624797fa1d203fe26b830d00c78c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setFloat2Parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>y</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a 2-components vector parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 2x1 vector (vec2 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec2 myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#aead3624797fa1d203fe26b830d00c78c" title="Change a 2-components vector parameter of a shader.">sfShader_setFloat2Parameter</a>(shader, <span class="stringliteral">"myparam"</span>, 5.2f, 6.0f);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">x</td><td>First component of the value to assign </td></tr> + <tr><td class="paramname">y</td><td>Second component of the value to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a06bcfbe44258e5b7492d9f0cb17ea48c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setFloat3Parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>y</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>z</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a 3-components vector parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 3x1 vector (vec3 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec3 myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#a06bcfbe44258e5b7492d9f0cb17ea48c" title="Change a 3-components vector parameter of a shader.">sfShader_setFloat3Parameter</a>(shader, <span class="stringliteral">"myparam"</span>, 5.2f, 6.0f, -8.1f);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">x</td><td>First component of the value to assign </td></tr> + <tr><td class="paramname">y</td><td>Second component of the value to assign </td></tr> + <tr><td class="paramname">z</td><td>Third component of the value to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a92a5e1f0fecef1e5f130f6364cfa90d9"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setFloat4Parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>y</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>z</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>w</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a 4-components vector parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 4x1 vector (vec4 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec4 myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#a92a5e1f0fecef1e5f130f6364cfa90d9" title="Change a 4-components vector parameter of a shader.">sfShader_setFloat4Parameter</a>(shader, <span class="stringliteral">"myparam"</span>, 5.2f, 6.0f, -8.1f, 0.4f);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">x</td><td>First component of the value to assign </td></tr> + <tr><td class="paramname">y</td><td>Second component of the value to assign </td></tr> + <tr><td class="paramname">z</td><td>Third component of the value to assign </td></tr> + <tr><td class="paramname">w</td><td>Fourth component of the value to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="aed732f598ff18f1c4064a182b8f85606"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setFloatParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"><em>x</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a float parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a float (float GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform <span class="keywordtype">float</span> myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#aed732f598ff18f1c4064a182b8f85606" title="Change a float parameter of a shader.">sfShader_setFloatParameter</a>(shader, <span class="stringliteral">"myparam"</span>, 5.2f);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">x</td><td>Value to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="ab2cc74edc4d481029482a75f59016a52"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setTextureParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const <a class="el" href="Graphics_2Types_8h.htm#a6d67907b5f2240f6ab5efc062aca61b0">sfTexture</a> * </td> + <td class="paramname"><em>texture</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a texture parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 2D texture (sampler2D GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform sampler2D the_texture; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line">sf::Texture texture;</div> +<div class="line">...</div> +<div class="line">sfShader_setTextureParameter(shader, <span class="stringliteral">"the_texture"</span>, texture);</div> +</div><!-- fragment --><p> It is important to note that <em>texture</em> must remain alive as long as the shader uses it, no copy is made internally.</p> +<p>To use the texture of the object being draw, which cannot be known in advance, you can use the special function sfShader_setCurrentTextureParameter: </p> +<div class="fragment"><div class="line"><a class="code" href="Shader_8h.htm#ae52805b872438a6d78b30197e934207b" title="Change a texture parameter of a shader.">sfShader_setCurrentTextureParameter</a>(shader, <span class="stringliteral">"the_texture"</span>).</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the texture in the shader </td></tr> + <tr><td class="paramname">texture</td><td>Texture to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a677b43325bf4c94bcc57ea6a4f38b40f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setTransformParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structsfTransform.htm">sfTransform</a> </td> + <td class="paramname"><em>transform</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a matrix parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 4x4 matrix (mat4 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform mat4 matrix; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line">@todo</div> +<div class="line"><a class="code" href="Shader_8h.htm#a677b43325bf4c94bcc57ea6a4f38b40f" title="Change a matrix parameter of a shader.">sfShader_setTransformParameter</a>(shader, <span class="stringliteral">"matrix"</span>, transform);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">transform</td><td>Transform to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a46786b0c9f2b5e2486058521f3f11075"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setVector2Parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structsfVector2f.htm">sfVector2f</a> </td> + <td class="paramname"><em>vector</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a 2-components vector parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 2x1 vector (vec2 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec2 myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="structsfVector2f.htm" title="2-component vector of floats">sfVector2f</a> vec = {5.2f, 6.0f};</div> +<div class="line"><a class="code" href="Shader_8h.htm#a46786b0c9f2b5e2486058521f3f11075" title="Change a 2-components vector parameter of a shader.">sfShader_setVector2Parameter</a>(shader, <span class="stringliteral">"myparam"</span>, vec);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">vector</td><td>Vector to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a class="anchor" id="a04029e0ce58c0ba60df21083a3fcd6b3"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="Graphics_2Export_8h.htm#afe51e93179eaff14e83568c716e633c0">CSFML_GRAPHICS_API</a> void sfShader_setVector3Parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="Graphics_2Types_8h.htm#a17c995cd2518f49125563e0e32c75fd0">sfShader</a> * </td> + <td class="paramname"><em>shader</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const char * </td> + <td class="paramname"><em>name</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structsfVector3f.htm">sfVector3f</a> </td> + <td class="paramname"><em>vector</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Change a 3-components vector parameter of a shader. </p> +<p><em>name</em> is the name of the variable to change in the shader. The corresponding parameter in the shader must be a 3x1 vector (vec3 GLSL type).</p> +<p>Example: </p> +<div class="fragment"><div class="line">uniform vec3 myparam; <span class="comment">// this is the variable in the shader</span></div> +</div><!-- fragment --> <div class="fragment"><div class="line"><a class="code" href="structsfVector3f.htm" title="3-component vector of floats">sfVector3f</a> vec = {5.2f, 6.0f, -8.1f};</div> +<div class="line"><a class="code" href="Shader_8h.htm#a04029e0ce58c0ba60df21083a3fcd6b3" title="Change a 3-components vector parameter of a shader.">sfShader_setVector3Parameter</a>(shader, <span class="stringliteral">"myparam"</span>, vec);</div> +</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">shader</td><td>Shader object </td></tr> + <tr><td class="paramname">name</td><td>Name of the parameter in the shader </td></tr> + <tr><td class="paramname">vector</td><td>Vector to assign </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +</div><!-- contents --> + </div> + <div id="footer-container"> + <div id="footer"> + Copyright � Laurent Gomila :: + Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen</a> :: + </div> + </div> + </body> +</html> |