libctru/gx_8h_source.html
2024-11-03 20:36:34 +00:00

330 lines
60 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libctru: include/3ds/gpu/gx.h Source File</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="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>
<link href="doxygen.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;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libctru
&#160;<span id="projectnumber">v2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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','.html');
/* @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>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li><li class="navelem"><a class="el" href="dir_0f128149b5f0edcc1e84fa1d13781a04.html">gpu</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">gx.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="gx_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * @file gx.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * @brief GX commands.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * @brief Creates a buffer dimension parameter from width and height values.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * @param w buffer width for GX_DisplayTransfer, linesize for GX_TextureCopy</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * @param h buffer height for GX_DisplayTransfer, gap for GX_TextureCopy</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="gx_8h.html#ad34237bd30a2a96a6074e8967840d4fc"> 12</a></span>&#160;<span class="preprocessor">#define GX_BUFFER_DIM(w, h) (((h)&lt;&lt;16)|((w)&amp;0xFFFF))</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * @brief Supported transfer pixel formats.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * @sa GSPGPU_FramebufferFormat</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3"> 18</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3af7d586734e0807a190bf75602fea93fd"> 20</a></span>&#160; <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3af7d586734e0807a190bf75602fea93fd">GX_TRANSFER_FMT_RGBA8</a> = 0, <span class="comment">///&lt; 8-bit Red + 8-bit Green + 8-bit Blue + 8-bit Alpha</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3accbc07083d7f644b5b162170bafe1dec"> 21</a></span>&#160; <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3accbc07083d7f644b5b162170bafe1dec">GX_TRANSFER_FMT_RGB8</a> = 1, <span class="comment">///&lt; 8-bit Red + 8-bit Green + 8-bit Blue</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3a257646681fb4c1dd4b4f0efbc42a6969"> 22</a></span>&#160; <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3a257646681fb4c1dd4b4f0efbc42a6969">GX_TRANSFER_FMT_RGB565</a> = 2, <span class="comment">///&lt; 5-bit Red + 6-bit Green + 5-bit Blue</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3ac52c38b6270090935348440f97113aae"> 23</a></span>&#160; <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3ac52c38b6270090935348440f97113aae">GX_TRANSFER_FMT_RGB5A1</a> = 3, <span class="comment">///&lt; 5-bit Red + 5-bit Green + 5-bit Blue + 1-bit Alpha</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3aeb91dd279d4b69a708cd1cb335981d85">GX_TRANSFER_FMT_RGBA4</a> = 4 <span class="comment">///&lt; 4-bit Red + 4-bit Green + 4-bit Blue + 4-bit Alpha</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3aeb91dd279d4b69a708cd1cb335981d85"> 25</a></span>&#160;} <a class="code" href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3">GX_TRANSFER_FORMAT</a>;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * @brief Anti-aliasing modes</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * Please remember that the framebuffer is sideways.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * Hence if you activate 2x1 anti-aliasing the destination dimensions are w = 240*2 and h = 400</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="gx_8h.html#a248b09e90905d8c0622fdfee77880aba"> 33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa2fe64f5849a1d5806575a9379f81dfff"> 35</a></span>&#160; <a class="code" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa2fe64f5849a1d5806575a9379f81dfff">GX_TRANSFER_SCALE_NO</a> = 0, <span class="comment">///&lt; No anti-aliasing</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa332fea39c9f9533f8ab5780a9543ba30"> 36</a></span>&#160; <a class="code" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa332fea39c9f9533f8ab5780a9543ba30">GX_TRANSFER_SCALE_X</a> = 1, <span class="comment">///&lt; 2x1 anti-aliasing</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa23da8dd0a0ff54432347bf36e9bf4c5f"> 37</a></span>&#160; <a class="code" href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa23da8dd0a0ff54432347bf36e9bf4c5f">GX_TRANSFER_SCALE_XY</a> = 2, <span class="comment">///&lt; 2x2 anti-aliasing</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;} <a class="code" href="gx_8h.html#a248b09e90905d8c0622fdfee77880aba">GX_TRANSFER_SCALE</a>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/// GX transfer control flags</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273"> 41</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2b6413914fd7889d0ad0610ed4bb5efd"> 43</a></span>&#160; <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2b6413914fd7889d0ad0610ed4bb5efd">GX_FILL_TRIGGER</a> = 0x001, <span class="comment">///&lt; Trigger the PPF event</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273ae4dea50c92ea821ef9d147b53b5815bf"> 44</a></span>&#160; <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273ae4dea50c92ea821ef9d147b53b5815bf">GX_FILL_FINISHED</a> = 0x002, <span class="comment">///&lt; Indicates if the memory fill is complete. You should not use it when requesting a transfer.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2bc635a0bd73fdcc6aea5c25c1e2430c"> 45</a></span>&#160; <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2bc635a0bd73fdcc6aea5c25c1e2430c">GX_FILL_16BIT_DEPTH</a> = 0x000, <span class="comment">///&lt; The buffer has a 16 bit per pixel depth</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273aee8f4636ba155f050ccc5028f1c8a46e"> 46</a></span>&#160; <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273aee8f4636ba155f050ccc5028f1c8a46e">GX_FILL_24BIT_DEPTH</a> = 0x100, <span class="comment">///&lt; The buffer has a 24 bit per pixel depth</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2642ecb73c80fe5272c041350c08134d"> 47</a></span>&#160; <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2642ecb73c80fe5272c041350c08134d">GX_FILL_32BIT_DEPTH</a> = 0x200, <span class="comment">///&lt; The buffer has a 32 bit per pixel depth</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;} <a class="code" href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273">GX_FILL_CONTROL</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">/// Creates a transfer vertical flip flag.</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="gx_8h.html#a19b4c4ad91299256a7c285e9ba7673b9"> 51</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_FLIP_VERT(x) ((x)&lt;&lt;0)</span><span class="comment"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">/// Creates a transfer tiled output flag.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="gx_8h.html#af921823b2f2e0cfcd521bea00a2b07b5"> 53</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_OUT_TILED(x) ((x)&lt;&lt;1)</span><span class="comment"></span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">/// Creates a transfer raw copy flag.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="gx_8h.html#a60e17ab935c82208ef88ef28b4e397fe"> 55</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_RAW_COPY(x) ((x)&lt;&lt;3)</span><span class="comment"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">/// Creates a transfer input format flag.</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="gx_8h.html#ae325a34e9b8fb5288de35ee469dfe214"> 57</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_IN_FORMAT(x) ((x)&lt;&lt;8)</span><span class="comment"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">/// Creates a transfer output format flag.</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="gx_8h.html#ab80b0d3eac6026af376128823e1ef8b6"> 59</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_OUT_FORMAT(x) ((x)&lt;&lt;12)</span><span class="comment"></span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">/// Creates a transfer scaling flag.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="gx_8h.html#aa5306b6b3789ce892d24d43fe9207534"> 61</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_TRANSFER_SCALING(x) ((x)&lt;&lt;24)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">/// Updates gas additive blend results.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="gx_8h.html#a9c6c9d17fff0a2ec233a3d0120a0f142"> 64</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_CMDLIST_UPDATE_GAS_ACC BIT(0)</span><span class="comment"></span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">/// Flushes the command list.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="gx_8h.html#addcc38194ba3a4bf1322b698d19936bc"> 66</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define GX_CMDLIST_FLUSH BIT(1)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">/// GX command entry</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="uniongxCmdEntry__s.html"> 69</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">union</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="uniongxCmdEntry__s.html#acf2ee2685f8ed84154bf22af3968aa50"> 71</a></span>&#160; <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> data[8]; <span class="comment">///&lt; Raw command data</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">struct</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="uniongxCmdEntry__s.html#a7cd818aaa8cb2ae252ac02ee2041f07a"> 74</a></span>&#160; <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> <a class="code" href="uniongxCmdEntry__s.html#a7cd818aaa8cb2ae252ac02ee2041f07a">type</a>; <span class="comment">///&lt; Command type</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> unk1;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> unk2;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> unk3;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="uniongxCmdEntry__s.html#a8c9479cc49d2a68b3c24b13c1c65723a"> 78</a></span>&#160; <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> args[7]; <span class="comment">///&lt; Command arguments</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; };</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <a class="code" href="uniongxCmdEntry__s.html">gxCmdEntry_s</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">/// GX command queue structure</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html"> 83</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>tag_gxCmdQueue_s</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#ade3ab748b4aeb24a5b21e9351ae487e1"> 85</a></span>&#160; <a class="code" href="uniongxCmdEntry__s.html">gxCmdEntry_s</a>* <a class="code" href="structgxCmdQueue__s.html#ade3ab748b4aeb24a5b21e9351ae487e1">entries</a>; <span class="comment">///&lt; Pointer to array of GX command entries</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#abbd998741caf292f1808e0f7fa56de77"> 86</a></span>&#160; <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code" href="structgxCmdQueue__s.html#abbd998741caf292f1808e0f7fa56de77">maxEntries</a>; <span class="comment">///&lt; Capacity of the command array</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#a2d96579b5e31f3cd9377f5b41e0fe659"> 87</a></span>&#160; <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code" href="structgxCmdQueue__s.html#a2d96579b5e31f3cd9377f5b41e0fe659">numEntries</a>; <span class="comment">///&lt; Number of commands in the queue</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#a509d41b1d690e93ae5738f886a34c725"> 88</a></span>&#160; <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code" href="structgxCmdQueue__s.html#a509d41b1d690e93ae5738f886a34c725">curEntry</a>; <span class="comment">///&lt; Index of the first pending command to be submitted to GX</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#a8bf3daf45d08546c0162d754ab66ad96"> 89</a></span>&#160; <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code" href="structgxCmdQueue__s.html#a8bf3daf45d08546c0162d754ab66ad96">lastEntry</a>; <span class="comment">///&lt; Number of commands completed by GX</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#a23308ac2a00cdfd0dc5056111d32e2bd"> 90</a></span>&#160; void (* callback)(<span class="keyword">struct </span>tag_gxCmdQueue_s*); <span class="comment">///&lt; User callback</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structgxCmdQueue__s.html#a304d299bfa58e79c08f6a3321b12591d"> 91</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgxCmdQueue__s.html#a304d299bfa58e79c08f6a3321b12591d">user</a>; <span class="comment">///&lt; Data for user callback</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;} <a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> * @brief Clears a GX command queue.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="gx_8h.html#aa40b6e85bbb30d85c5e1c7b298868a90"> 98</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="gx_8h.html#aa40b6e85bbb30d85c5e1c7b298868a90">gxCmdQueueClear</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> * @brief Adds a command to a GX command queue.</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> * @param entry The GX command to add.</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="gx_8h.html#a49f4260c00c2517a50a6967fc2335e28"> 105</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="gx_8h.html#a49f4260c00c2517a50a6967fc2335e28">gxCmdQueueAdd</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue, <span class="keyword">const</span> <a class="code" href="uniongxCmdEntry__s.html">gxCmdEntry_s</a>* entry);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> * @brief Runs a GX command queue, causing it to begin processing incoming commands as they arrive.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="gx_8h.html#aaec48f0e503a76a62827305917445d11"> 111</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="gx_8h.html#aaec48f0e503a76a62827305917445d11">gxCmdQueueRun</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> * @brief Stops a GX command queue from processing incoming commands.</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="gx_8h.html#aee8d9de4784ce0864c776780c3bd45fe"> 117</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="gx_8h.html#aee8d9de4784ce0864c776780c3bd45fe">gxCmdQueueStop</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> * @brief Waits for a GX command queue to finish executing pending commands.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * @param timeout Optional timeout (in nanoseconds) to wait (specify -1 for no timeout).</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> * @return false if timeout expired, true otherwise.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="gx_8h.html#ac00678a0216e7279bef18d9b7b41fbd9"> 125</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="gx_8h.html#ac00678a0216e7279bef18d9b7b41fbd9">gxCmdQueueWait</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> timeout);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> * @brief Sets the completion callback for a GX command queue.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> * @param queue The GX command queue.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> * @param callback The completion callback.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> * @param user User data.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="gx_8h.html#a72c4009dfc0fb8a6e43b7e8e0126a366"> 133</a></span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="gx_8h.html#a72c4009dfc0fb8a6e43b7e8e0126a366">gxCmdQueueSetCallback</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue, <span class="keywordtype">void</span> (* callback)(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>*), <span class="keywordtype">void</span>* user)</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; queue-&gt;<a class="code" href="structgxCmdQueue__s.html#a23308ac2a00cdfd0dc5056111d32e2bd">callback</a> = callback;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; queue-&gt;<a class="code" href="structgxCmdQueue__s.html#a304d299bfa58e79c08f6a3321b12591d">user</a> = user;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> * @brief Selects a command queue to which GX_* functions will add commands instead of immediately submitting them to GX.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> * @param queue The GX command queue. (Pass NULL to remove the bound command queue)</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="gx_8h.html#a119c56e2949ac765e14a315e43d761d9"> 143</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="gx_8h.html#a119c56e2949ac765e14a315e43d761d9">GX_BindQueue</a>(<a class="code" href="structgxCmdQueue__s.html">gxCmdQueue_s</a>* queue);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> * @brief Requests a DMA.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> * @param src Source to DMA from.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> * @param dst Destination to DMA to.</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> * @param length Length of data to transfer.</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="gx_8h.html#a7020531dad937eb0d9dc0e22a557285e"> 151</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#a7020531dad937eb0d9dc0e22a557285e">GX_RequestDma</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* src, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* dst, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> length);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> * @brief Processes a GPU command list.</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> * @param buf0a Command list address.</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> * @param buf0s Command list size.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> * @param flags Flags to process with.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="gx_8h.html#a2346e838070d5029faf7e57a9fdf69bf"> 159</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#a2346e838070d5029faf7e57a9fdf69bf">GX_ProcessCommandList</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf0a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf0s, <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> flags);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> * @brief Fills the memory of two buffers with the given values.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> * @param buf0a Start address of the first buffer.</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> * @param buf0v Dimensions of the first buffer.</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> * @param buf0e End address of the first buffer.</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> * @param control0 Value to fill the first buffer with.</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> * @param buf1a Start address of the second buffer.</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> * @param buf1v Dimensions of the second buffer.</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> * @param buf1e End address of the second buffer.</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"> * @param control1 Value to fill the second buffer with.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="gx_8h.html#aa6e39b328383930b64eaa230bc9bc6a0"> 172</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#aa6e39b328383930b64eaa230bc9bc6a0">GX_MemoryFill</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf0a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf0v, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf0e, <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> control0, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf1a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf1v, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf1e, <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> control1);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"> * @brief Initiates a display transfer.</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> * @note The PPF event will be signaled on completion.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> * @param inadr Address of the input.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> * @param indim Dimensions of the input.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> * @param outadr Address of the output.</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> * @param outdim Dimensions of the output.</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> * @param flags Flags to transfer with.</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="gx_8h.html#a4de1f2c27d7984b8cf5b93c8913a499b"> 183</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#a4de1f2c27d7984b8cf5b93c8913a499b">GX_DisplayTransfer</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* inadr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> indim, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* outadr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> outdim, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> flags);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> * @brief Initiates a texture copy.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> * @note The PPF event will be signaled on completion.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> * @param inadr Address of the input.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> * @param indim Dimensions of the input.</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> * @param outadr Address of the output.</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"> * @param outdim Dimensions of the output.</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> * @param size Size of the data to transfer.</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> * @param flags Flags to transfer with.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="gx_8h.html#a2c1286f84675137eeeadc589654976a2"> 195</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#a2c1286f84675137eeeadc589654976a2">GX_TextureCopy</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* inadr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> indim, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* outadr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> outdim, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> flags);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> * @brief Flushes the cache regions of three buffers. (This command cannot be queued in a GX command queue)</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> * @param buf0a Address of the first buffer.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> * @param buf0s Size of the first buffer.</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> * @param buf1a Address of the second buffer.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> * @param buf1s Size of the second buffer.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> * @param buf2a Address of the third buffer.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> * @param buf2s Size of the third buffer.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="gx_8h.html#ae5b03c7f32e45b00293e7150a1bc9810"> 206</a></span>&#160;<a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="gx_8h.html#ae5b03c7f32e45b00293e7150a1bc9810">GX_FlushCacheRegions</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf0a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf0s, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf1a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf1s, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* buf2a, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> buf2s);</div>
<div class="ttc" id="agx_8h_html_a119c56e2949ac765e14a315e43d761d9"><div class="ttname"><a href="gx_8h.html#a119c56e2949ac765e14a315e43d761d9">GX_BindQueue</a></div><div class="ttdeci">void GX_BindQueue(gxCmdQueue_s *queue)</div><div class="ttdoc">Selects a command queue to which GX_* functions will add commands instead of immediately submitting t...</div></div>
<div class="ttc" id="agx_8h_html_a2346e838070d5029faf7e57a9fdf69bf"><div class="ttname"><a href="gx_8h.html#a2346e838070d5029faf7e57a9fdf69bf">GX_ProcessCommandList</a></div><div class="ttdeci">Result GX_ProcessCommandList(u32 *buf0a, u32 buf0s, u8 flags)</div><div class="ttdoc">Processes a GPU command list.</div></div>
<div class="ttc" id="agx_8h_html_a248b09e90905d8c0622fdfee77880aba"><div class="ttname"><a href="gx_8h.html#a248b09e90905d8c0622fdfee77880aba">GX_TRANSFER_SCALE</a></div><div class="ttdeci">GX_TRANSFER_SCALE</div><div class="ttdoc">Anti-aliasing modes.</div><div class="ttdef"><b>Definition:</b> gx.h:34</div></div>
<div class="ttc" id="agx_8h_html_a248b09e90905d8c0622fdfee77880abaa23da8dd0a0ff54432347bf36e9bf4c5f"><div class="ttname"><a href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa23da8dd0a0ff54432347bf36e9bf4c5f">GX_TRANSFER_SCALE_XY</a></div><div class="ttdeci">@ GX_TRANSFER_SCALE_XY</div><div class="ttdoc">2x2 anti-aliasing</div><div class="ttdef"><b>Definition:</b> gx.h:37</div></div>
<div class="ttc" id="agx_8h_html_a248b09e90905d8c0622fdfee77880abaa2fe64f5849a1d5806575a9379f81dfff"><div class="ttname"><a href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa2fe64f5849a1d5806575a9379f81dfff">GX_TRANSFER_SCALE_NO</a></div><div class="ttdeci">@ GX_TRANSFER_SCALE_NO</div><div class="ttdoc">No anti-aliasing.</div><div class="ttdef"><b>Definition:</b> gx.h:35</div></div>
<div class="ttc" id="agx_8h_html_a248b09e90905d8c0622fdfee77880abaa332fea39c9f9533f8ab5780a9543ba30"><div class="ttname"><a href="gx_8h.html#a248b09e90905d8c0622fdfee77880abaa332fea39c9f9533f8ab5780a9543ba30">GX_TRANSFER_SCALE_X</a></div><div class="ttdeci">@ GX_TRANSFER_SCALE_X</div><div class="ttdoc">2x1 anti-aliasing</div><div class="ttdef"><b>Definition:</b> gx.h:36</div></div>
<div class="ttc" id="agx_8h_html_a2c1286f84675137eeeadc589654976a2"><div class="ttname"><a href="gx_8h.html#a2c1286f84675137eeeadc589654976a2">GX_TextureCopy</a></div><div class="ttdeci">Result GX_TextureCopy(u32 *inadr, u32 indim, u32 *outadr, u32 outdim, u32 size, u32 flags)</div><div class="ttdoc">Initiates a texture copy.</div></div>
<div class="ttc" id="agx_8h_html_a49f4260c00c2517a50a6967fc2335e28"><div class="ttname"><a href="gx_8h.html#a49f4260c00c2517a50a6967fc2335e28">gxCmdQueueAdd</a></div><div class="ttdeci">void gxCmdQueueAdd(gxCmdQueue_s *queue, const gxCmdEntry_s *entry)</div><div class="ttdoc">Adds a command to a GX command queue.</div></div>
<div class="ttc" id="agx_8h_html_a4de1f2c27d7984b8cf5b93c8913a499b"><div class="ttname"><a href="gx_8h.html#a4de1f2c27d7984b8cf5b93c8913a499b">GX_DisplayTransfer</a></div><div class="ttdeci">Result GX_DisplayTransfer(u32 *inadr, u32 indim, u32 *outadr, u32 outdim, u32 flags)</div><div class="ttdoc">Initiates a display transfer.</div></div>
<div class="ttc" id="agx_8h_html_a7020531dad937eb0d9dc0e22a557285e"><div class="ttname"><a href="gx_8h.html#a7020531dad937eb0d9dc0e22a557285e">GX_RequestDma</a></div><div class="ttdeci">Result GX_RequestDma(u32 *src, u32 *dst, u32 length)</div><div class="ttdoc">Requests a DMA.</div></div>
<div class="ttc" id="agx_8h_html_a72c4009dfc0fb8a6e43b7e8e0126a366"><div class="ttname"><a href="gx_8h.html#a72c4009dfc0fb8a6e43b7e8e0126a366">gxCmdQueueSetCallback</a></div><div class="ttdeci">static void gxCmdQueueSetCallback(gxCmdQueue_s *queue, void(*callback)(gxCmdQueue_s *), void *user)</div><div class="ttdoc">Sets the completion callback for a GX command queue.</div><div class="ttdef"><b>Definition:</b> gx.h:133</div></div>
<div class="ttc" id="agx_8h_html_aa40b6e85bbb30d85c5e1c7b298868a90"><div class="ttname"><a href="gx_8h.html#aa40b6e85bbb30d85c5e1c7b298868a90">gxCmdQueueClear</a></div><div class="ttdeci">void gxCmdQueueClear(gxCmdQueue_s *queue)</div><div class="ttdoc">Clears a GX command queue.</div></div>
<div class="ttc" id="agx_8h_html_aa6e39b328383930b64eaa230bc9bc6a0"><div class="ttname"><a href="gx_8h.html#aa6e39b328383930b64eaa230bc9bc6a0">GX_MemoryFill</a></div><div class="ttdeci">Result GX_MemoryFill(u32 *buf0a, u32 buf0v, u32 *buf0e, u16 control0, u32 *buf1a, u32 buf1v, u32 *buf1e, u16 control1)</div><div class="ttdoc">Fills the memory of two buffers with the given values.</div></div>
<div class="ttc" id="agx_8h_html_aaec48f0e503a76a62827305917445d11"><div class="ttname"><a href="gx_8h.html#aaec48f0e503a76a62827305917445d11">gxCmdQueueRun</a></div><div class="ttdeci">void gxCmdQueueRun(gxCmdQueue_s *queue)</div><div class="ttdoc">Runs a GX command queue, causing it to begin processing incoming commands as they arrive.</div></div>
<div class="ttc" id="agx_8h_html_ac00678a0216e7279bef18d9b7b41fbd9"><div class="ttname"><a href="gx_8h.html#ac00678a0216e7279bef18d9b7b41fbd9">gxCmdQueueWait</a></div><div class="ttdeci">bool gxCmdQueueWait(gxCmdQueue_s *queue, s64 timeout)</div><div class="ttdoc">Waits for a GX command queue to finish executing pending commands.</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3">GX_TRANSFER_FORMAT</a></div><div class="ttdeci">GX_TRANSFER_FORMAT</div><div class="ttdoc">Supported transfer pixel formats.</div><div class="ttdef"><b>Definition:</b> gx.h:19</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3a257646681fb4c1dd4b4f0efbc42a6969"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3a257646681fb4c1dd4b4f0efbc42a6969">GX_TRANSFER_FMT_RGB565</a></div><div class="ttdeci">@ GX_TRANSFER_FMT_RGB565</div><div class="ttdoc">5-bit Red + 6-bit Green + 5-bit Blue</div><div class="ttdef"><b>Definition:</b> gx.h:22</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3ac52c38b6270090935348440f97113aae"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3ac52c38b6270090935348440f97113aae">GX_TRANSFER_FMT_RGB5A1</a></div><div class="ttdeci">@ GX_TRANSFER_FMT_RGB5A1</div><div class="ttdoc">5-bit Red + 5-bit Green + 5-bit Blue + 1-bit Alpha</div><div class="ttdef"><b>Definition:</b> gx.h:23</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3accbc07083d7f644b5b162170bafe1dec"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3accbc07083d7f644b5b162170bafe1dec">GX_TRANSFER_FMT_RGB8</a></div><div class="ttdeci">@ GX_TRANSFER_FMT_RGB8</div><div class="ttdoc">8-bit Red + 8-bit Green + 8-bit Blue</div><div class="ttdef"><b>Definition:</b> gx.h:21</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3aeb91dd279d4b69a708cd1cb335981d85"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3aeb91dd279d4b69a708cd1cb335981d85">GX_TRANSFER_FMT_RGBA4</a></div><div class="ttdeci">@ GX_TRANSFER_FMT_RGBA4</div><div class="ttdoc">4-bit Red + 4-bit Green + 4-bit Blue + 4-bit Alpha</div><div class="ttdef"><b>Definition:</b> gx.h:24</div></div>
<div class="ttc" id="agx_8h_html_aca790f0cdfea04833518556b8a1682f3af7d586734e0807a190bf75602fea93fd"><div class="ttname"><a href="gx_8h.html#aca790f0cdfea04833518556b8a1682f3af7d586734e0807a190bf75602fea93fd">GX_TRANSFER_FMT_RGBA8</a></div><div class="ttdeci">@ GX_TRANSFER_FMT_RGBA8</div><div class="ttdoc">8-bit Red + 8-bit Green + 8-bit Blue + 8-bit Alpha</div><div class="ttdef"><b>Definition:</b> gx.h:20</div></div>
<div class="ttc" id="agx_8h_html_ae5b03c7f32e45b00293e7150a1bc9810"><div class="ttname"><a href="gx_8h.html#ae5b03c7f32e45b00293e7150a1bc9810">GX_FlushCacheRegions</a></div><div class="ttdeci">Result GX_FlushCacheRegions(u32 *buf0a, u32 buf0s, u32 *buf1a, u32 buf1s, u32 *buf2a, u32 buf2s)</div><div class="ttdoc">Flushes the cache regions of three buffers.</div></div>
<div class="ttc" id="agx_8h_html_aee8d9de4784ce0864c776780c3bd45fe"><div class="ttname"><a href="gx_8h.html#aee8d9de4784ce0864c776780c3bd45fe">gxCmdQueueStop</a></div><div class="ttdeci">void gxCmdQueueStop(gxCmdQueue_s *queue)</div><div class="ttdoc">Stops a GX command queue from processing incoming commands.</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273">GX_FILL_CONTROL</a></div><div class="ttdeci">GX_FILL_CONTROL</div><div class="ttdoc">GX transfer control flags.</div><div class="ttdef"><b>Definition:</b> gx.h:42</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273a2642ecb73c80fe5272c041350c08134d"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2642ecb73c80fe5272c041350c08134d">GX_FILL_32BIT_DEPTH</a></div><div class="ttdeci">@ GX_FILL_32BIT_DEPTH</div><div class="ttdoc">The buffer has a 32 bit per pixel depth.</div><div class="ttdef"><b>Definition:</b> gx.h:47</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273a2b6413914fd7889d0ad0610ed4bb5efd"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2b6413914fd7889d0ad0610ed4bb5efd">GX_FILL_TRIGGER</a></div><div class="ttdeci">@ GX_FILL_TRIGGER</div><div class="ttdoc">Trigger the PPF event.</div><div class="ttdef"><b>Definition:</b> gx.h:43</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273a2bc635a0bd73fdcc6aea5c25c1e2430c"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273a2bc635a0bd73fdcc6aea5c25c1e2430c">GX_FILL_16BIT_DEPTH</a></div><div class="ttdeci">@ GX_FILL_16BIT_DEPTH</div><div class="ttdoc">The buffer has a 16 bit per pixel depth.</div><div class="ttdef"><b>Definition:</b> gx.h:45</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273ae4dea50c92ea821ef9d147b53b5815bf"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273ae4dea50c92ea821ef9d147b53b5815bf">GX_FILL_FINISHED</a></div><div class="ttdeci">@ GX_FILL_FINISHED</div><div class="ttdoc">Indicates if the memory fill is complete. You should not use it when requesting a transfer.</div><div class="ttdef"><b>Definition:</b> gx.h:44</div></div>
<div class="ttc" id="agx_8h_html_af2a0de60baddb7fc1528a62e4e555273aee8f4636ba155f050ccc5028f1c8a46e"><div class="ttname"><a href="gx_8h.html#af2a0de60baddb7fc1528a62e4e555273aee8f4636ba155f050ccc5028f1c8a46e">GX_FILL_24BIT_DEPTH</a></div><div class="ttdeci">@ GX_FILL_24BIT_DEPTH</div><div class="ttdoc">The buffer has a 24 bit per pixel depth.</div><div class="ttdef"><b>Definition:</b> gx.h:46</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html"><div class="ttname"><a href="structgxCmdQueue__s.html">gxCmdQueue_s</a></div><div class="ttdoc">GX command queue structure.</div><div class="ttdef"><b>Definition:</b> gx.h:84</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_a23308ac2a00cdfd0dc5056111d32e2bd"><div class="ttname"><a href="structgxCmdQueue__s.html#a23308ac2a00cdfd0dc5056111d32e2bd">gxCmdQueue_s::callback</a></div><div class="ttdeci">void(* callback)(struct tag_gxCmdQueue_s *)</div><div class="ttdoc">User callback.</div><div class="ttdef"><b>Definition:</b> gx.h:90</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_a2d96579b5e31f3cd9377f5b41e0fe659"><div class="ttname"><a href="structgxCmdQueue__s.html#a2d96579b5e31f3cd9377f5b41e0fe659">gxCmdQueue_s::numEntries</a></div><div class="ttdeci">u16 numEntries</div><div class="ttdoc">Number of commands in the queue.</div><div class="ttdef"><b>Definition:</b> gx.h:87</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_a304d299bfa58e79c08f6a3321b12591d"><div class="ttname"><a href="structgxCmdQueue__s.html#a304d299bfa58e79c08f6a3321b12591d">gxCmdQueue_s::user</a></div><div class="ttdeci">void * user</div><div class="ttdoc">Data for user callback.</div><div class="ttdef"><b>Definition:</b> gx.h:91</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_a509d41b1d690e93ae5738f886a34c725"><div class="ttname"><a href="structgxCmdQueue__s.html#a509d41b1d690e93ae5738f886a34c725">gxCmdQueue_s::curEntry</a></div><div class="ttdeci">u16 curEntry</div><div class="ttdoc">Index of the first pending command to be submitted to GX.</div><div class="ttdef"><b>Definition:</b> gx.h:88</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_a8bf3daf45d08546c0162d754ab66ad96"><div class="ttname"><a href="structgxCmdQueue__s.html#a8bf3daf45d08546c0162d754ab66ad96">gxCmdQueue_s::lastEntry</a></div><div class="ttdeci">u16 lastEntry</div><div class="ttdoc">Number of commands completed by GX.</div><div class="ttdef"><b>Definition:</b> gx.h:89</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_abbd998741caf292f1808e0f7fa56de77"><div class="ttname"><a href="structgxCmdQueue__s.html#abbd998741caf292f1808e0f7fa56de77">gxCmdQueue_s::maxEntries</a></div><div class="ttdeci">u16 maxEntries</div><div class="ttdoc">Capacity of the command array.</div><div class="ttdef"><b>Definition:</b> gx.h:86</div></div>
<div class="ttc" id="astructgxCmdQueue__s_html_ade3ab748b4aeb24a5b21e9351ae487e1"><div class="ttname"><a href="structgxCmdQueue__s.html#ade3ab748b4aeb24a5b21e9351ae487e1">gxCmdQueue_s::entries</a></div><div class="ttdeci">gxCmdEntry_s * entries</div><div class="ttdoc">Pointer to array of GX command entries.</div><div class="ttdef"><b>Definition:</b> gx.h:85</div></div>
<div class="ttc" id="atypes_8h_html_a350c6fc928e3bdc6c6486268ac8fb269"><div class="ttname"><a href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a></div><div class="ttdeci">int64_t s64</div><div class="ttdoc">64-bit signed integer</div><div class="ttdef"><b>Definition:</b> types.h:29</div></div>
<div class="ttc" id="atypes_8h_html_a92c50087ca0e64fa93fc59402c55f8ca"><div class="ttname"><a href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a></div><div class="ttdeci">uint8_t u8</div><div class="ttdoc">would be nice if newlib had this already</div><div class="ttdef"><b>Definition:</b> types.h:21</div></div>
<div class="ttc" id="atypes_8h_html_ac830bf5a4f2cf8273f61ab99a46cf163"><div class="ttname"><a href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a></div><div class="ttdeci">s32 Result</div><div class="ttdoc">Function result.</div><div class="ttdef"><b>Definition:</b> types.h:42</div></div>
<div class="ttc" id="atypes_8h_html_ace9d960e74685e2cd84b36132dbbf8aa"><div class="ttname"><a href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a></div><div class="ttdeci">uint16_t u16</div><div class="ttdoc">16-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> types.h:22</div></div>
<div class="ttc" id="atypes_8h_html_afaa62991928fb9fb18ff0db62a040aba"><div class="ttname"><a href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a></div><div class="ttdeci">uint32_t u32</div><div class="ttdoc">32-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> types.h:23</div></div>
<div class="ttc" id="auniongxCmdEntry__s_html"><div class="ttname"><a href="uniongxCmdEntry__s.html">gxCmdEntry_s</a></div><div class="ttdoc">GX command entry.</div><div class="ttdef"><b>Definition:</b> gx.h:70</div></div>
<div class="ttc" id="auniongxCmdEntry__s_html_a7cd818aaa8cb2ae252ac02ee2041f07a"><div class="ttname"><a href="uniongxCmdEntry__s.html#a7cd818aaa8cb2ae252ac02ee2041f07a">gxCmdEntry_s::type</a></div><div class="ttdeci">u8 type</div><div class="ttdoc">Command type.</div><div class="ttdef"><b>Definition:</b> gx.h:74</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>