blob: 3fb2f59b2dbc8bf4f8ce5a1c5fd6995b1f9b4562 [file] [log] [blame]
<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: GCKernel Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<td style="padding-left: 0.5em;">
<div id="projectname">
&#160;<span id="projectnumber">19.08</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classarm__compute_1_1_g_c_kernel.xhtml','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">GCKernel Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml" title="GCKernel class.">GCKernel</a> class.
<a href="classarm__compute_1_1_g_c_kernel.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4e7b1870ca694b9b2b6c4a0f50e1de3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a4e7b1870ca694b9b2b6c4a0f50e1de3c">GCKernel</a> ()</td></tr>
<tr class="memdesc:a4e7b1870ca694b9b2b6c4a0f50e1de3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor. <a href="#a4e7b1870ca694b9b2b6c4a0f50e1de3c">More...</a><br /></td></tr>
<tr class="separator:a4e7b1870ca694b9b2b6c4a0f50e1de3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c258aec518fbcef82144d787374c0f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a9c258aec518fbcef82144d787374c0f4">GCKernel</a> (const <a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;)=default</td></tr>
<tr class="memdesc:a9c258aec518fbcef82144d787374c0f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Copy Constructor. <a href="#a9c258aec518fbcef82144d787374c0f4">More...</a><br /></td></tr>
<tr class="separator:a9c258aec518fbcef82144d787374c0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e770306c0b7e7d560d73fe1f9330e77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a2e770306c0b7e7d560d73fe1f9330e77">GCKernel</a> (<a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a2e770306c0b7e7d560d73fe1f9330e77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Move Constructor. <a href="#a2e770306c0b7e7d560d73fe1f9330e77">More...</a><br /></td></tr>
<tr class="separator:a2e770306c0b7e7d560d73fe1f9330e77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af29ae815590ed07fc2ce2dc3f77a23a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#af29ae815590ed07fc2ce2dc3f77a23a7">operator=</a> (const <a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;)=default</td></tr>
<tr class="memdesc:af29ae815590ed07fc2ce2dc3f77a23a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default copy assignment operator. <a href="#af29ae815590ed07fc2ce2dc3f77a23a7">More...</a><br /></td></tr>
<tr class="separator:af29ae815590ed07fc2ce2dc3f77a23a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3eebd489d16da5b5f3378781df02052"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#ab3eebd489d16da5b5f3378781df02052">operator=</a> (<a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:ab3eebd489d16da5b5f3378781df02052"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move assignment operator. <a href="#ab3eebd489d16da5b5f3378781df02052">More...</a><br /></td></tr>
<tr class="separator:ab3eebd489d16da5b5f3378781df02052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab344625b341d67d80da2d63854401617"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#ab344625b341d67d80da2d63854401617">GCKernel</a> (std::string <a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a1d89c28bd42ba9a52da008bb69367171">name</a>, GLuint program)</td></tr>
<tr class="memdesc:ab344625b341d67d80da2d63854401617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#ab344625b341d67d80da2d63854401617">More...</a><br /></td></tr>
<tr class="separator:ab344625b341d67d80da2d63854401617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b2e4d932f06eda71c000133bd277688"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a1b2e4d932f06eda71c000133bd277688">~GCKernel</a> ()</td></tr>
<tr class="memdesc:a1b2e4d932f06eda71c000133bd277688"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#a1b2e4d932f06eda71c000133bd277688">More...</a><br /></td></tr>
<tr class="separator:a1b2e4d932f06eda71c000133bd277688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d89c28bd42ba9a52da008bb69367171"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a1d89c28bd42ba9a52da008bb69367171">name</a> () const</td></tr>
<tr class="memdesc:a1d89c28bd42ba9a52da008bb69367171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns kernel name. <a href="#a1d89c28bd42ba9a52da008bb69367171">More...</a><br /></td></tr>
<tr class="separator:a1d89c28bd42ba9a52da008bb69367171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af88e933209c9201dfdafa052d3181aac"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#af88e933209c9201dfdafa052d3181aac">get_program</a> () const</td></tr>
<tr class="memdesc:af88e933209c9201dfdafa052d3181aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get program id. <a href="#af88e933209c9201dfdafa052d3181aac">More...</a><br /></td></tr>
<tr class="separator:af88e933209c9201dfdafa052d3181aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a05de24712939691a7cf8934d9e5c5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a8a05de24712939691a7cf8934d9e5c5f">use</a> ()</td></tr>
<tr class="memdesc:a8a05de24712939691a7cf8934d9e5c5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use current program. <a href="#a8a05de24712939691a7cf8934d9e5c5f">More...</a><br /></td></tr>
<tr class="separator:a8a05de24712939691a7cf8934d9e5c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae02bc07b18ddc44c29318c100a063d3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#ae02bc07b18ddc44c29318c100a063d3a">unuse</a> ()</td></tr>
<tr class="memdesc:ae02bc07b18ddc44c29318c100a063d3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unuse current program. <a href="#ae02bc07b18ddc44c29318c100a063d3a">More...</a><br /></td></tr>
<tr class="separator:ae02bc07b18ddc44c29318c100a063d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5cfd50c152f0aa984f53bb034d1461b"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ad5cfd50c152f0aa984f53bb034d1461b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#ad5cfd50c152f0aa984f53bb034d1461b">set_argument</a> (unsigned int idx, T value)</td></tr>
<tr class="memdesc:ad5cfd50c152f0aa984f53bb034d1461b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set argument value at index of shader params. <a href="#ad5cfd50c152f0aa984f53bb034d1461b">More...</a><br /></td></tr>
<tr class="separator:ad5cfd50c152f0aa984f53bb034d1461b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ff24cc62df8324f57dcc2f3c9e533a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a2ff24cc62df8324f57dcc2f3c9e533a9">clear_arguments</a> ()</td></tr>
<tr class="memdesc:a2ff24cc62df8324f57dcc2f3c9e533a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear shader arguments. <a href="#a2ff24cc62df8324f57dcc2f3c9e533a9">More...</a><br /></td></tr>
<tr class="separator:a2ff24cc62df8324f57dcc2f3c9e533a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae722344eb4eb8a404d600561914859ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#ae722344eb4eb8a404d600561914859ab">set_shader_params_binding_point</a> (unsigned int binding)</td></tr>
<tr class="memdesc:ae722344eb4eb8a404d600561914859ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set shader params binding point. <a href="#ae722344eb4eb8a404d600561914859ab">More...</a><br /></td></tr>
<tr class="separator:ae722344eb4eb8a404d600561914859ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c2752de95fae1daedbae97fa9b031e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a7c2752de95fae1daedbae97fa9b031e4">update_shader_params</a> ()</td></tr>
<tr class="memdesc:a7c2752de95fae1daedbae97fa9b031e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update shader params. <a href="#a7c2752de95fae1daedbae97fa9b031e4">More...</a><br /></td></tr>
<tr class="separator:a7c2752de95fae1daedbae97fa9b031e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b66d5e31b5dc18b314c8a68163263bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml#a4b66d5e31b5dc18b314c8a68163263bd">cleanup</a> ()</td></tr>
<tr class="memdesc:a4b66d5e31b5dc18b314c8a68163263bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up program and ubo. <a href="#a4b66d5e31b5dc18b314c8a68163263bd">More...</a><br /></td></tr>
<tr class="separator:a4b66d5e31b5dc18b314c8a68163263bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml" title="GCKernel class.">GCKernel</a> class. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00087">87</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4e7b1870ca694b9b2b6c4a0f50e1de3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e7b1870ca694b9b2b6c4a0f50e1de3c">&#9670;&nbsp;</a></span>GCKernel() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default Constructor. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00131">131</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; : _name(), _program(), _shader_arguments(), _shader_params_ubo_name(), _shader_params_binding_point(), _shader_params_index(), _shader_params_size()</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a9c258aec518fbcef82144d787374c0f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c258aec518fbcef82144d787374c0f4">&#9670;&nbsp;</a></span>GCKernel() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default Copy Constructor. </p>
</div>
</div>
<a id="a2e770306c0b7e7d560d73fe1f9330e77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e770306c0b7e7d560d73fe1f9330e77">&#9670;&nbsp;</a></span>GCKernel() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default Move Constructor. </p>
</div>
</div>
<a id="ab344625b341d67d80da2d63854401617"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab344625b341d67d80da2d63854401617">&#9670;&nbsp;</a></span>GCKernel() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">GLuint&#160;</td>
<td class="paramname"><em>program</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class.">Kernel</a> name. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">program</td><td>Built program. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00141">141</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; : _name(std::move(<a class="code" href="classarm__compute_1_1_g_c_kernel.xhtml#a1d89c28bd42ba9a52da008bb69367171">name</a>)),</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; _program(program),</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; _shader_arguments(),</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _shader_params_ubo_name(0),</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; _shader_params_binding_point(0),</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; _shader_params_index(0),</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; _shader_params_size(0)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; _shader_arguments.clear();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a68154b66955d77ae9c5192218e02ebdc">glGenBuffers</a>(1, &amp;_shader_params_ubo_name));</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; _shader_params_index = <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a81b3135fe4b76436b0e901032fc4df1b">glGetUniformBlockIndex</a>(_program, _shader_params_name));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(_shader_params_index == GL_INVALID_INDEX, <span class="stringliteral">&quot;Failed to get index of %s&quot;</span>, _shader_params_name);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a21827516ba1b8b4c12c6238b3fd67200">glGetActiveUniformBlockiv</a>(_program, _shader_params_index, GL_UNIFORM_BLOCK_DATA_SIZE, &amp;_shader_params_size));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(_shader_params_size == 0, <span class="stringliteral">&quot;Failed to get size of %s&quot;</span>, _shader_params_name);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="ttc" id="_open_g_l_e_s_8h_xhtml_a496c7b08ac063d996956854207366913"><div class="ttname"><a href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a></div><div class="ttdeci">#define ARM_COMPUTE_GL_CHECK(x)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8h_source.xhtml#l00045">OpenGLES.h:45</a></div></div>
<div class="ttc" id="classarm__compute_1_1_g_c_kernel_xhtml_a1d89c28bd42ba9a52da008bb69367171"><div class="ttname"><a href="classarm__compute_1_1_g_c_kernel.xhtml#a1d89c28bd42ba9a52da008bb69367171">arm_compute::GCKernel::name</a></div><div class="ttdeci">std::string name() const</div><div class="ttdoc">Returns kernel name.</div><div class="ttdef"><b>Definition:</b> <a href="_g_c_kernel_library_8h_source.xhtml#l00113">GCKernelLibrary.h:113</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a81b3135fe4b76436b0e901032fc4df1b"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a81b3135fe4b76436b0e901032fc4df1b">glGetUniformBlockIndex</a></div><div class="ttdeci">GLuint GL_APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00711">OpenGLES.cpp:711</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a68154b66955d77ae9c5192218e02ebdc"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a68154b66955d77ae9c5192218e02ebdc">glGenBuffers</a></div><div class="ttdeci">void GL_APIENTRY glGenBuffers(GLsizei n, GLuint *buffers)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00568">OpenGLES.cpp:568</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a21827516ba1b8b4c12c6238b3fd67200"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a21827516ba1b8b4c12c6238b3fd67200">glGetActiveUniformBlockiv</a></div><div class="ttdeci">void GL_APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00685">OpenGLES.cpp:685</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00045">ARM_COMPUTE_GL_CHECK</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00568">glGenBuffers()</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00685">glGetActiveUniformBlockiv()</a>, and <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00711">glGetUniformBlockIndex()</a>.</p>
</div>
</div>
<a id="a1b2e4d932f06eda71c000133bd277688"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b2e4d932f06eda71c000133bd277688">&#9670;&nbsp;</a></span>~GCKernel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00137">137</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4b66d5e31b5dc18b314c8a68163263bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b66d5e31b5dc18b314c8a68163263bd">&#9670;&nbsp;</a></span>cleanup()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void cleanup </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clean up program and ubo. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00160">160</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a528e76a977061a313bad3ab6fe7747fe">glDeleteBuffers</a>(1, &amp;_shader_params_ubo_name));</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ad9528d3fb71b7ee1e23fab6aed1cba83">glBindBuffer</a>(GL_UNIFORM_BUFFER, 0));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a334ce7125cfb54a811b748f23f228417">glDeleteProgram</a>(_program));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a>(0));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="_open_g_l_e_s_8h_xhtml_a496c7b08ac063d996956854207366913"><div class="ttname"><a href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a></div><div class="ttdeci">#define ARM_COMPUTE_GL_CHECK(x)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8h_source.xhtml#l00045">OpenGLES.h:45</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a528e76a977061a313bad3ab6fe7747fe"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a528e76a977061a313bad3ab6fe7747fe">glDeleteBuffers</a></div><div class="ttdeci">void GL_APIENTRY glDeleteBuffers(GLsizei n, const GLuint *buffers)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00529">OpenGLES.cpp:529</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_ad9528d3fb71b7ee1e23fab6aed1cba83"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#ad9528d3fb71b7ee1e23fab6aed1cba83">glBindBuffer</a></div><div class="ttdeci">void GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00490">OpenGLES.cpp:490</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a334ce7125cfb54a811b748f23f228417"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a334ce7125cfb54a811b748f23f228417">glDeleteProgram</a></div><div class="ttdeci">void GL_APIENTRY glDeleteProgram(GLuint program)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00360">OpenGLES.cpp:360</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_ab685deb85a327c7a4c22285619c3f26a"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a></div><div class="ttdeci">void GL_APIENTRY glUseProgram(GLuint program)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00477">OpenGLES.cpp:477</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00045">ARM_COMPUTE_GL_CHECK</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00490">glBindBuffer()</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00529">glDeleteBuffers()</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00360">glDeleteProgram()</a>, and <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00477">glUseProgram()</a>.</p>
</div>
</div>
<a id="a2ff24cc62df8324f57dcc2f3c9e533a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ff24cc62df8324f57dcc2f3c9e533a9">&#9670;&nbsp;</a></span>clear_arguments()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void clear_arguments </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear shader arguments. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00154">154</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; _shader_arguments.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00340">GCKernelLibrary::create_kernel()</a>.</p>
</div>
</div>
<a id="af88e933209c9201dfdafa052d3181aac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af88e933209c9201dfdafa052d3181aac">&#9670;&nbsp;</a></span>get_program()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">GLuint get_program </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get program id. </p>
<dl class="section return"><dt>Returns</dt><dd>program id. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00121">121</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> _program;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_i_g_c_kernel_8cpp_source.xhtml#l00041">arm_compute::enqueue()</a>.</p>
</div>
</div>
<a id="a1d89c28bd42ba9a52da008bb69367171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d89c28bd42ba9a52da008bb69367171">&#9670;&nbsp;</a></span>name()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string name </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns kernel name. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class.">Kernel</a>'s name. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00113">113</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> _name;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div></div><!-- fragment -->
</div>
</div>
<a id="af29ae815590ed07fc2ce2dc3f77a23a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af29ae815590ed07fc2ce2dc3f77a23a7">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a>&amp; operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default copy assignment operator. </p>
</div>
</div>
<a id="ab3eebd489d16da5b5f3378781df02052"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3eebd489d16da5b5f3378781df02052">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a>&amp; operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move assignment operator. </p>
</div>
</div>
<a id="ad5cfd50c152f0aa984f53bb034d1461b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5cfd50c152f0aa984f53bb034d1461b">&#9670;&nbsp;</a></span>set_argument()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void set_argument </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set argument value at index of shader params. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>Index in shader params. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Argument value to be set. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00141">141</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(idx &gt;= _shader_arguments.size())</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _shader_arguments.resize(idx + 1, 0);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p = reinterpret_cast&lt;unsigned int *&gt;(&amp;value);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; _shader_arguments[idx] = *p;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div></div><!-- fragment -->
</div>
</div>
<a id="ae722344eb4eb8a404d600561914859ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae722344eb4eb8a404d600561914859ab">&#9670;&nbsp;</a></span>set_shader_params_binding_point()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void set_shader_params_binding_point </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>binding</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set shader params binding point. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">binding</td><td>Shader params binding point. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00162">162</a> of file <a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; _shader_params_binding_point = binding;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00340">GCKernelLibrary::create_kernel()</a>.</p>
</div>
</div>
<a id="ae02bc07b18ddc44c29318c100a063d3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae02bc07b18ddc44c29318c100a063d3a">&#9670;&nbsp;</a></span>unuse()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void unuse </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Unuse current program. </p>
<dl class="section return"><dt>Returns</dt><dd>program id. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00173">173</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a>(0));</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div><div class="ttc" id="_open_g_l_e_s_8h_xhtml_a496c7b08ac063d996956854207366913"><div class="ttname"><a href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a></div><div class="ttdeci">#define ARM_COMPUTE_GL_CHECK(x)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8h_source.xhtml#l00045">OpenGLES.h:45</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_ab685deb85a327c7a4c22285619c3f26a"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a></div><div class="ttdeci">void GL_APIENTRY glUseProgram(GLuint program)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00477">OpenGLES.cpp:477</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00045">ARM_COMPUTE_GL_CHECK</a>, and <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00477">glUseProgram()</a>.</p>
</div>
</div>
<a id="a7c2752de95fae1daedbae97fa9b031e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c2752de95fae1daedbae97fa9b031e4">&#9670;&nbsp;</a></span>update_shader_params()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void update_shader_params </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update shader params. </p>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00178">178</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>((_shader_params_size != (<span class="keywordtype">int</span>)(_shader_arguments.size() * <span class="keyword">sizeof</span>(_shader_arguments[0]))), <span class="stringliteral">&quot;Arguments size (%d) is not equal to shader params block size (%d)&quot;</span>,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; _shader_arguments.size() * <span class="keyword">sizeof</span>(_shader_arguments[0]), _shader_params_size);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a5943aadf8a3d988af82624d19cbd1c0a">glUniformBlockBinding</a>(_program, _shader_params_index, _shader_params_binding_point));</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a377c2f368dc6d8961943363077581dbd">glBindBufferBase</a>(GL_UNIFORM_BUFFER, _shader_params_binding_point, _shader_params_ubo_name));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ad9528d3fb71b7ee1e23fab6aed1cba83">glBindBuffer</a>(GL_UNIFORM_BUFFER, _shader_params_ubo_name));</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#a4991c46050f5040b9fc85fc35f8297ed">glBufferData</a>(GL_UNIFORM_BUFFER, _shader_params_size, _shader_arguments.data(), GL_DYNAMIC_DRAW));</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ad9528d3fb71b7ee1e23fab6aed1cba83">glBindBuffer</a>(GL_UNIFORM_BUFFER, 0));</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="ttc" id="_open_g_l_e_s_8h_xhtml_a496c7b08ac063d996956854207366913"><div class="ttname"><a href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a></div><div class="ttdeci">#define ARM_COMPUTE_GL_CHECK(x)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8h_source.xhtml#l00045">OpenGLES.h:45</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a5943aadf8a3d988af82624d19cbd1c0a"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a5943aadf8a3d988af82624d19cbd1c0a">glUniformBlockBinding</a></div><div class="ttdeci">void GL_APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00698">OpenGLES.cpp:698</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_ad9528d3fb71b7ee1e23fab6aed1cba83"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#ad9528d3fb71b7ee1e23fab6aed1cba83">glBindBuffer</a></div><div class="ttdeci">void GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00490">OpenGLES.cpp:490</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a377c2f368dc6d8961943363077581dbd"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a377c2f368dc6d8961943363077581dbd">glBindBufferBase</a></div><div class="ttdeci">void GL_APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00503">OpenGLES.cpp:503</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_a4991c46050f5040b9fc85fc35f8297ed"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#a4991c46050f5040b9fc85fc35f8297ed">glBufferData</a></div><div class="ttdeci">void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00516">OpenGLES.cpp:516</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00045">ARM_COMPUTE_GL_CHECK</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00490">glBindBuffer()</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00503">glBindBufferBase()</a>, <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00516">glBufferData()</a>, and <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00698">glUniformBlockBinding()</a>.</p>
</div>
</div>
<a id="a8a05de24712939691a7cf8934d9e5c5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a05de24712939691a7cf8934d9e5c5f">&#9670;&nbsp;</a></span>use()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void use </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use current program. </p>
<dl class="section return"><dt>Returns</dt><dd>program id. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00168">168</a> of file <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a>(<a class="code" href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a>(_program));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="_open_g_l_e_s_8h_xhtml_a496c7b08ac063d996956854207366913"><div class="ttname"><a href="_open_g_l_e_s_8h.xhtml#a496c7b08ac063d996956854207366913">ARM_COMPUTE_GL_CHECK</a></div><div class="ttdeci">#define ARM_COMPUTE_GL_CHECK(x)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8h_source.xhtml#l00045">OpenGLES.h:45</a></div></div>
<div class="ttc" id="_open_g_l_e_s_8cpp_xhtml_ab685deb85a327c7a4c22285619c3f26a"><div class="ttname"><a href="_open_g_l_e_s_8cpp.xhtml#ab685deb85a327c7a4c22285619c3f26a">glUseProgram</a></div><div class="ttdeci">void GL_APIENTRY glUseProgram(GLuint program)</div><div class="ttdef"><b>Definition:</b> <a href="_open_g_l_e_s_8cpp_source.xhtml#l00477">OpenGLES.cpp:477</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00045">ARM_COMPUTE_GL_CHECK</a>, and <a class="el" href="_open_g_l_e_s_8cpp_source.xhtml#l00477">glUseProgram()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_g_c_kernel_library_8cpp_source.xhtml#l00340">GCKernelLibrary::create_kernel()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>arm_compute/core/GLES_COMPUTE/<a class="el" href="_g_c_kernel_library_8h_source.xhtml">GCKernelLibrary.h</a></li>
<li>src/core/GLES_COMPUTE/<a class="el" href="_g_c_kernel_library_8cpp_source.xhtml">GCKernelLibrary.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a></li>
<li class="footer">Generated on Mon Sep 2 2019 11:47:35 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>