archeus/doc/doxygen/html/dd/d56/engine_8c.html

350 lines
40 KiB
HTML

<!-- HTML header for doxygen 1.9.2-->
<!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" class="dark-mode">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Archeus: /home/herbglitch/programs/archeus/arc/src/engine/engine.c File 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="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.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" />
<link href="../../doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="../../doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="../../doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../doxygen-awesome-darkmode-toggle.js"></script>
</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">Archeus<span id="projectnumber">&#160;0.0.0</span>
</div>
<div id="projectbrief">A C library and game engine that focuses on documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('dd/d56/engine_8c.html','../../'); initResizable(true); });
/* @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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">engine.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="../../d1/d55/engine_8h_source.html">arc/engine/engine.h</a>&quot;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &quot;<a class="el" href="../../db/d3b/state_8h_source.html">arc/engine/state.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d5/d03/include_2arc_2graphics_2window_8h_source.html">arc/graphics/window.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d1/dc6/include_2arc_2graphics_2renderer_8h_source.html">arc/graphics/renderer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d4/d4c/include_2arc_2input_2mouse_8h_source.html">arc/input/mouse.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d2/d78/include_2arc_2input_2keyboard_8h_source.html">arc/input/keyboard.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d8/d77/bool_8h_source.html">arc/std/bool.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d8/dc2/errno_8h_source.html">arc/std/errno.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../dd/dee/handler_8h_source.html">arc/std/handler.h</a>&quot;</code><br />
</div>
<p><a href="../../dd/d56/engine_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad3bfb475a0e9264c87a7423e84778959" id="r_ad3bfb475a0e9264c87a7423e84778959"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3bfb475a0e9264c87a7423e84778959">ARC_EngineData_Create</a> (<a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> **data, <a class="el" href="../../dd/dee/handler_8h.html#a97613b0958fc34c00446d4dc669737a1">ARC_Handler_CleanDataFn</a> cleanFn, <a class="el" href="../../d2/d9d/structARC__Point.html">ARC_Point</a> windowSize)</td></tr>
<tr class="separator:ad3bfb475a0e9264c87a7423e84778959"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7a41810e95706dad5c6881879339aa2" id="r_ad7a41810e95706dad5c6881879339aa2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad7a41810e95706dad5c6881879339aa2">ARC_EngineData_Destroy</a> (<a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> *data)</td></tr>
<tr class="separator:ad7a41810e95706dad5c6881879339aa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1318b7466d14187d6648abc7474c1ac7" id="r_a1318b7466d14187d6648abc7474c1ac7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1318b7466d14187d6648abc7474c1ac7">ARC_Engine_RunUncapped</a> (<a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> *data)</td></tr>
<tr class="memdesc:a1318b7466d14187d6648abc7474c1ac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">runs ARC_Engine with an uncapped framerate <br /></td></tr>
<tr class="separator:a1318b7466d14187d6648abc7474c1ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a1318b7466d14187d6648abc7474c1ac7" name="a1318b7466d14187d6648abc7474c1ac7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1318b7466d14187d6648abc7474c1ac7">&#9670;&#160;</a></span>ARC_Engine_RunUncapped()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ARC_Engine_RunUncapped </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> *</td> <td class="paramname"><span class="paramname"><em>data</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>runs ARC_Engine with an uncapped framerate </p>
<dl class="section note"><dt>Note</dt><dd>data must be created before this function </dd>
<dd>
data should be destroyed after this function</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>engine data that will be used </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="../../dd/d56/engine_8c_source.html#l00059">59</a> of file <a class="el" href="../../dd/d56/engine_8c_source.html">engine.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 59</span> {</div>
<div class="line"><span class="lineno"> 60</span> <span class="keywordflow">if</span>(<a class="code hl_variable" href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a>){</div>
<div class="line"><span class="lineno"> 61</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 62</span> }</div>
<div class="line"><span class="lineno"> 63</span> </div>
<div class="line"><span class="lineno"> 64</span> <span class="comment">//double lastTime = 0, currentTime;</span></div>
<div class="line"><span class="lineno"> 65</span> </div>
<div class="line"><span class="lineno"> 66</span> data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a524135263c2d2905bf0bf4e4a40380d5">running</a> = <a class="code hl_define" href="../../d8/d77/bool_8h.html#aacf339cb8c71b994249ae02c662006cb">ARC_True</a>;</div>
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">while</span>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a524135263c2d2905bf0bf4e4a40380d5">running</a>){</div>
<div class="line"><span class="lineno"> 68</span> <span class="comment">//currentTime = SDL_GetTicks();</span></div>
<div class="line"><span class="lineno"> 69</span> <span class="comment">//data-&gt;dt = currentTime - lastTime;</span></div>
<div class="line"><span class="lineno"> 70</span> <span class="comment">//lastTime = currentTime;</span></div>
<div class="line"><span class="lineno"> 71</span> </div>
<div class="line"><span class="lineno"> 72</span> data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a524135263c2d2905bf0bf4e4a40380d5">running</a> = <a class="code hl_function" href="../../d3/d3e/include_2arc_2input_2input_8h.html#afb3fa56528406720283b62b2b713e118">ARC_Input_Update</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a382729bc9e0bdd577fce3b1a204636ec">input</a>);</div>
<div class="line"><span class="lineno"> 73</span> </div>
<div class="line"><span class="lineno"> 74</span> <a class="code hl_function" href="../../dd/dee/handler_8h.html#af36b878567ea73a90f826af9af64c989">ARC_Handler_Clean</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a5f96f851824e024e8b59919a2195b36e">state</a>);</div>
<div class="line"><span class="lineno"> 75</span> </div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="../../dd/dee/handler_8h.html#adaa4103a1879a0e0acc595d3e1c2b911">ARC_Handler_Iterate</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a5f96f851824e024e8b59919a2195b36e">state</a>, <a class="code hl_function" href="../../db/d3b/state_8h.html#a7fff169abbb4aaa5bb3f3b0e8b6f3785">ARC_State_Update</a>);</div>
<div class="line"><span class="lineno"> 77</span> </div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_function" href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#a658b3d0b45be17d35a4ba6f58c6c410d">ARC_Renderer_Clear</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#acd1e5bdf06bfd91ce66c8ce6a46006a2">renderer</a>);</div>
<div class="line"><span class="lineno"> 79</span> </div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_function" href="../../dd/dee/handler_8h.html#adaa4103a1879a0e0acc595d3e1c2b911">ARC_Handler_Iterate</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a5f96f851824e024e8b59919a2195b36e">state</a>, <a class="code hl_function" href="../../db/d3b/state_8h.html#a1b23e5fee1f209b7e65f78fac82dd238">ARC_State_Render</a>);</div>
<div class="line"><span class="lineno"> 81</span> </div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#ac44af02eacceb9af14f87e8a7f62aad5">ARC_Renderer_Render</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#acd1e5bdf06bfd91ce66c8ce6a46006a2">renderer</a>);</div>
<div class="line"><span class="lineno"> 83</span> }</div>
<div class="line"><span class="lineno"> 84</span>}</div>
<div class="ttc" id="abool_8h_html_aacf339cb8c71b994249ae02c662006cb"><div class="ttname"><a href="../../d8/d77/bool_8h.html#aacf339cb8c71b994249ae02c662006cb">ARC_True</a></div><div class="ttdeci">#define ARC_True</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d77/bool_8h_source.html#l00011">bool.h:11</a></div></div>
<div class="ttc" id="aerrno_8h_html_a5884aa8cc9b4e733345e49f93b54f75a"><div class="ttname"><a href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a></div><div class="ttdeci">int32_t arc_errno</div><div class="ttdef"><b>Definition</b> <a href="../../d0/d90/errno_8c_source.html#l00005">errno.c:5</a></div></div>
<div class="ttc" id="ahandler_8h_html_adaa4103a1879a0e0acc595d3e1c2b911"><div class="ttname"><a href="../../dd/dee/handler_8h.html#adaa4103a1879a0e0acc595d3e1c2b911">ARC_Handler_Iterate</a></div><div class="ttdeci">void ARC_Handler_Iterate(ARC_Handler *handler, ARC_Handler_DataFn datafn)</div><div class="ttdoc">calls provided function on each element in handler</div><div class="ttdef"><b>Definition</b> <a href="../../db/dd1/handler_8c_source.html#l00050">handler.c:50</a></div></div>
<div class="ttc" id="ahandler_8h_html_af36b878567ea73a90f826af9af64c989"><div class="ttname"><a href="../../dd/dee/handler_8h.html#af36b878567ea73a90f826af9af64c989">ARC_Handler_Clean</a></div><div class="ttdeci">void ARC_Handler_Clean(ARC_Handler *handler)</div><div class="ttdoc">clears trash from handler</div><div class="ttdef"><b>Definition</b> <a href="../../db/dd1/handler_8c_source.html#l00063">handler.c:63</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2renderer_8h_html_a658b3d0b45be17d35a4ba6f58c6c410d"><div class="ttname"><a href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#a658b3d0b45be17d35a4ba6f58c6c410d">ARC_Renderer_Clear</a></div><div class="ttdeci">void ARC_Renderer_Clear(ARC_Renderer *renderer)</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00032">renderer.c:32</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2renderer_8h_html_ac44af02eacceb9af14f87e8a7f62aad5"><div class="ttname"><a href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#ac44af02eacceb9af14f87e8a7f62aad5">ARC_Renderer_Render</a></div><div class="ttdeci">void ARC_Renderer_Render(ARC_Renderer *renderer)</div><div class="ttdoc">renders the renderer</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00039">renderer.c:39</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2input_8h_html_afb3fa56528406720283b62b2b713e118"><div class="ttname"><a href="../../d3/d3e/include_2arc_2input_2input_8h.html#afb3fa56528406720283b62b2b713e118">ARC_Input_Update</a></div><div class="ttdeci">ARC_Bool ARC_Input_Update(ARC_Input *input)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00027">input.c:27</a></div></div>
<div class="ttc" id="astate_8h_html_a1b23e5fee1f209b7e65f78fac82dd238"><div class="ttname"><a href="../../db/d3b/state_8h.html#a1b23e5fee1f209b7e65f78fac82dd238">ARC_State_Render</a></div><div class="ttdeci">void ARC_State_Render(void *data)</div><div class="ttdef"><b>Definition</b> <a href="../../d0/dc9/state_8c_source.html#l00008">state.c:8</a></div></div>
<div class="ttc" id="astate_8h_html_a7fff169abbb4aaa5bb3f3b0e8b6f3785"><div class="ttname"><a href="../../db/d3b/state_8h.html#a7fff169abbb4aaa5bb3f3b0e8b6f3785">ARC_State_Update</a></div><div class="ttdeci">void ARC_State_Update(void *data)</div><div class="ttdef"><b>Definition</b> <a href="../../d0/dc9/state_8c_source.html#l00004">state.c:4</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_a382729bc9e0bdd577fce3b1a204636ec"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#a382729bc9e0bdd577fce3b1a204636ec">ARC_EngineData::input</a></div><div class="ttdeci">ARC_Input * input</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00021">engine.h:21</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_a524135263c2d2905bf0bf4e4a40380d5"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#a524135263c2d2905bf0bf4e4a40380d5">ARC_EngineData::running</a></div><div class="ttdeci">ARC_Bool running</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00026">engine.h:26</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_a5f96f851824e024e8b59919a2195b36e"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#a5f96f851824e024e8b59919a2195b36e">ARC_EngineData::state</a></div><div class="ttdeci">ARC_Handler * state</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00020">engine.h:20</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_acd1e5bdf06bfd91ce66c8ce6a46006a2"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#acd1e5bdf06bfd91ce66c8ce6a46006a2">ARC_EngineData::renderer</a></div><div class="ttdeci">ARC_Renderer * renderer</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00019">engine.h:19</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="../../d0/d90/errno_8c_source.html#l00005">arc_errno</a>, <a class="el" href="../../db/dd1/handler_8c_source.html#l00063">ARC_Handler_Clean()</a>, <a class="el" href="../../db/dd1/handler_8c_source.html#l00050">ARC_Handler_Iterate()</a>, <a class="el" href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00027">ARC_Input_Update()</a>, <a class="el" href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00032">ARC_Renderer_Clear()</a>, <a class="el" href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00039">ARC_Renderer_Render()</a>, <a class="el" href="../../d0/dc9/state_8c_source.html#l00008">ARC_State_Render()</a>, <a class="el" href="../../d0/dc9/state_8c_source.html#l00004">ARC_State_Update()</a>, <a class="el" href="../../d8/d77/bool_8h_source.html#l00011">ARC_True</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00021">ARC_EngineData::input</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00019">ARC_EngineData::renderer</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00026">ARC_EngineData::running</a>, and <a class="el" href="../../d1/d55/engine_8h_source.html#l00020">ARC_EngineData::state</a>.</p>
</div>
</div>
<a id="ad3bfb475a0e9264c87a7423e84778959" name="ad3bfb475a0e9264c87a7423e84778959"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3bfb475a0e9264c87a7423e84778959">&#9670;&#160;</a></span>ARC_EngineData_Create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ARC_EngineData_Create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> **</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dd/dee/handler_8h.html#a97613b0958fc34c00446d4dc669737a1">ARC_Handler_CleanDataFn</a></td> <td class="paramname"><span class="paramname"><em>cleanFn</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d2/d9d/structARC__Point.html">ARC_Point</a></td> <td class="paramname"><span class="paramname"><em>windowSize</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>@breif creates an <a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> type to be used when running an ARC_Engine</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>the <a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> to create </td></tr>
<tr><td class="paramname">cleanFn</td><td>the state cleanup function </td></tr>
<tr><td class="paramname">windowSIze</td><td>the size of window to create passed as an <a class="el" href="../../d2/d9d/structARC__Point.html">ARC_Point</a> </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="../../dd/d56/engine_8c_source.html#l00017">17</a> of file <a class="el" href="../../dd/d56/engine_8c_source.html">engine.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 17</span> {</div>
<div class="line"><span class="lineno"> 18</span> *data = (<a class="code hl_struct" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a>));</div>
<div class="line"><span class="lineno"> 19</span> (*data)-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#abcdb1fc080bcd9ad137bc3ac8ae69432">window</a> = NULL;</div>
<div class="line"><span class="lineno"> 20</span> (*data)-&gt;renderer = NULL;</div>
<div class="line"><span class="lineno"> 21</span> (*data)-&gt;input = NULL;</div>
<div class="line"><span class="lineno"> 22</span> (*data)-&gt;keyboard = NULL;</div>
<div class="line"><span class="lineno"> 23</span> (*data)-&gt;mouse = NULL;</div>
<div class="line"><span class="lineno"> 24</span> </div>
<div class="line"><span class="lineno"> 25</span> <span class="comment">//TODO: set the destroy callback</span></div>
<div class="line"><span class="lineno"> 26</span> <a class="code hl_function" href="../../dd/dee/handler_8h.html#a5642adc667af392d4e81ed9266992cf2">ARC_Handler_Create</a>(&amp;((*data)-&gt;state), NULL, cleanFn);</div>
<div class="line"><span class="lineno"> 27</span> </div>
<div class="line"><span class="lineno"> 28</span> (*data)-&gt;dt = 0.0;</div>
<div class="line"><span class="lineno"> 29</span> (*data)-&gt;running = <a class="code hl_define" href="../../d8/d77/bool_8h.html#aa63660d755fd84cd9f4b01bbf87b36fd">ARC_False</a>;</div>
<div class="line"><span class="lineno"> 30</span> (*data)-&gt;windowSize = windowSize;</div>
<div class="line"><span class="lineno"> 31</span> </div>
<div class="line"><span class="lineno"> 32</span> <a class="code hl_struct" href="../../d1/d1a/structARC__WindowInfo.html">ARC_WindowInfo</a> windowInfo = (<a class="code hl_typedef" href="../../d5/d03/include_2arc_2graphics_2window_8h.html#ad9c970ff3c2c05f887c89e5f112e997f">ARC_WindowInfo</a>){ <span class="stringliteral">&quot;title&quot;</span>, (*data)-&gt;windowSize.x, (*data)-&gt;windowSize.y };</div>
<div class="line"><span class="lineno"> 33</span> <a class="code hl_function" href="../../d5/d03/include_2arc_2graphics_2window_8h.html#ac2943b39d2140ae27cd98d362053f27c">ARC_Window_Create</a>(&amp;((*data)-&gt;window), &amp;windowInfo);</div>
<div class="line"><span class="lineno"> 34</span> <span class="keywordflow">if</span>(<a class="code hl_variable" href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a>){</div>
<div class="line"><span class="lineno"> 35</span> free(data);</div>
<div class="line"><span class="lineno"> 36</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 37</span> }</div>
<div class="line"><span class="lineno"> 38</span> </div>
<div class="line"><span class="lineno"> 39</span> <a class="code hl_function" href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#a498204d28a753ae15b67962960ddca04">ARC_Renderer_CreateWithEngineData</a>(&amp;((*data)-&gt;renderer), *data);</div>
<div class="line"><span class="lineno"> 40</span> <span class="keywordflow">if</span>(<a class="code hl_variable" href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a>){</div>
<div class="line"><span class="lineno"> 41</span> <a class="code hl_function" href="../../d5/d03/include_2arc_2graphics_2window_8h.html#afb68d49b50117b8cec312c7a5999c1a6">ARC_Window_Destroy</a>((*data)-&gt;window);</div>
<div class="line"><span class="lineno"> 42</span> free(data);</div>
<div class="line"><span class="lineno"> 43</span> }</div>
<div class="line"><span class="lineno"> 44</span> </div>
<div class="line"><span class="lineno"> 45</span> <a class="code hl_function" href="../../d3/d3e/include_2arc_2input_2input_8h.html#ab067b02367e78494a930fcccdd930c0c">ARC_Input_CreateWithEngineData</a>(&amp;((*data)-&gt;input), *data);</div>
<div class="line"><span class="lineno"> 46</span> </div>
<div class="line"><span class="lineno"> 47</span> (*data)-&gt;keyboard = <a class="code hl_function" href="../../d3/d3e/include_2arc_2input_2input_8h.html#a33b395c2b23fb459904fef05df97ae5d">ARC_Input_GetKeyboard</a>((*data)-&gt;input);</div>
<div class="line"><span class="lineno"> 48</span> (*data)-&gt;mouse = <a class="code hl_function" href="../../d3/d3e/include_2arc_2input_2input_8h.html#a5de153e8f7dd3212cb998ea2ad29c4f6">ARC_Input_GetMouse</a>((*data)-&gt;input);</div>
<div class="line"><span class="lineno"> 49</span>}</div>
<div class="ttc" id="abool_8h_html_aa63660d755fd84cd9f4b01bbf87b36fd"><div class="ttname"><a href="../../d8/d77/bool_8h.html#aa63660d755fd84cd9f4b01bbf87b36fd">ARC_False</a></div><div class="ttdeci">#define ARC_False</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d77/bool_8h_source.html#l00012">bool.h:12</a></div></div>
<div class="ttc" id="ahandler_8h_html_a5642adc667af392d4e81ed9266992cf2"><div class="ttname"><a href="../../dd/dee/handler_8h.html#a5642adc667af392d4e81ed9266992cf2">ARC_Handler_Create</a></div><div class="ttdeci">void ARC_Handler_Create(ARC_Handler **handler, ARC_Handler_CompareDataFn *compareFn, ARC_Handler_CleanDataFn cleanFn)</div><div class="ttdoc">creates ARC_Handler type</div><div class="ttdef"><b>Definition</b> <a href="../../db/dd1/handler_8c_source.html#l00014">handler.c:14</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2renderer_8h_html_a498204d28a753ae15b67962960ddca04"><div class="ttname"><a href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#a498204d28a753ae15b67962960ddca04">ARC_Renderer_CreateWithEngineData</a></div><div class="ttdeci">void ARC_Renderer_CreateWithEngineData(ARC_Renderer **renderer, ARC_EngineData *data)</div><div class="ttdoc">creates ARC_Renderer type with ARC_EngineData</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00010">renderer.c:10</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2window_8h_html_ac2943b39d2140ae27cd98d362053f27c"><div class="ttname"><a href="../../d5/d03/include_2arc_2graphics_2window_8h.html#ac2943b39d2140ae27cd98d362053f27c">ARC_Window_Create</a></div><div class="ttdeci">void ARC_Window_Create(ARC_Window **window, ARC_WindowInfo *info)</div><div class="ttdoc">creates ARC_Window type</div><div class="ttdef"><b>Definition</b> <a href="../../d6/d83/packages_2graphics_2sdl_2window_8c_source.html#l00007">window.c:7</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2window_8h_html_ad9c970ff3c2c05f887c89e5f112e997f"><div class="ttname"><a href="../../d5/d03/include_2arc_2graphics_2window_8h.html#ad9c970ff3c2c05f887c89e5f112e997f">ARC_WindowInfo</a></div><div class="ttdeci">struct ARC_WindowInfo ARC_WindowInfo</div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2window_8h_html_afb68d49b50117b8cec312c7a5999c1a6"><div class="ttname"><a href="../../d5/d03/include_2arc_2graphics_2window_8h.html#afb68d49b50117b8cec312c7a5999c1a6">ARC_Window_Destroy</a></div><div class="ttdeci">void ARC_Window_Destroy(ARC_Window *window)</div><div class="ttdoc">destroys ARC_Window type</div><div class="ttdef"><b>Definition</b> <a href="../../d6/d83/packages_2graphics_2sdl_2window_8c_source.html#l00029">window.c:29</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2input_8h_html_a33b395c2b23fb459904fef05df97ae5d"><div class="ttname"><a href="../../d3/d3e/include_2arc_2input_2input_8h.html#a33b395c2b23fb459904fef05df97ae5d">ARC_Input_GetKeyboard</a></div><div class="ttdeci">ARC_Keyboard * ARC_Input_GetKeyboard(ARC_Input *input)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00039">input.c:39</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2input_8h_html_a5de153e8f7dd3212cb998ea2ad29c4f6"><div class="ttname"><a href="../../d3/d3e/include_2arc_2input_2input_8h.html#a5de153e8f7dd3212cb998ea2ad29c4f6">ARC_Input_GetMouse</a></div><div class="ttdeci">ARC_Mouse * ARC_Input_GetMouse(ARC_Input *input)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00043">input.c:43</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2input_8h_html_ab067b02367e78494a930fcccdd930c0c"><div class="ttname"><a href="../../d3/d3e/include_2arc_2input_2input_8h.html#ab067b02367e78494a930fcccdd930c0c">ARC_Input_CreateWithEngineData</a></div><div class="ttdeci">void ARC_Input_CreateWithEngineData(ARC_Input **input, ARC_EngineData *data)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00010">input.c:10</a></div></div>
<div class="ttc" id="astructARC__EngineData_html"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a></div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00017">engine.h:17</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_abcdb1fc080bcd9ad137bc3ac8ae69432"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#abcdb1fc080bcd9ad137bc3ac8ae69432">ARC_EngineData::window</a></div><div class="ttdeci">ARC_Window * window</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00018">engine.h:18</a></div></div>
<div class="ttc" id="astructARC__WindowInfo_html"><div class="ttname"><a href="../../d1/d1a/structARC__WindowInfo.html">ARC_WindowInfo</a></div><div class="ttdef"><b>Definition</b> <a href="../../d5/d03/include_2arc_2graphics_2window_8h_source.html#l00018">window.h:18</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="../../d0/d90/errno_8c_source.html#l00005">arc_errno</a>, <a class="el" href="../../d8/d77/bool_8h_source.html#l00012">ARC_False</a>, <a class="el" href="../../db/dd1/handler_8c_source.html#l00014">ARC_Handler_Create()</a>, <a class="el" href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00010">ARC_Input_CreateWithEngineData()</a>, <a class="el" href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00039">ARC_Input_GetKeyboard()</a>, <a class="el" href="../../d5/d6e/packages_2input_2sdl_2input_8c_source.html#l00043">ARC_Input_GetMouse()</a>, <a class="el" href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00010">ARC_Renderer_CreateWithEngineData()</a>, <a class="el" href="../../d6/d83/packages_2graphics_2sdl_2window_8c_source.html#l00007">ARC_Window_Create()</a>, <a class="el" href="../../d6/d83/packages_2graphics_2sdl_2window_8c_source.html#l00029">ARC_Window_Destroy()</a>, and <a class="el" href="../../d1/d55/engine_8h_source.html#l00018">ARC_EngineData::window</a>.</p>
</div>
</div>
<a id="ad7a41810e95706dad5c6881879339aa2" name="ad7a41810e95706dad5c6881879339aa2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7a41810e95706dad5c6881879339aa2">&#9670;&#160;</a></span>ARC_EngineData_Destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ARC_EngineData_Destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> *</td> <td class="paramname"><span class="paramname"><em>data</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>@breif destroys an <a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> type</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>the <a class="el" href="../../d5/df0/structARC__EngineData.html">ARC_EngineData</a> to destroy </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="../../dd/d56/engine_8c_source.html#l00051">51</a> of file <a class="el" href="../../dd/d56/engine_8c_source.html">engine.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 51</span> {</div>
<div class="line"><span class="lineno"> 52</span> <a class="code hl_function" href="../../d4/d4c/include_2arc_2input_2mouse_8h.html#a80f3e8881fa82ed61884bd0c54718377">ARC_Mouse_Destroy</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#adbcb8ddc2797b28998ec34540bc1e85c">mouse</a>);</div>
<div class="line"><span class="lineno"> 53</span> <a class="code hl_function" href="../../d2/d78/include_2arc_2input_2keyboard_8h.html#aaeaa42ad6e69566dfee40058003a053b">ARC_Keyboard_Destroy</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a4b27ffc245ac5a29fdcb6ae2e1351752">keyboard</a>);</div>
<div class="line"><span class="lineno"> 54</span> <a class="code hl_function" href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#abc868b155fe4429b0569cf07fec57a76">ARC_Renderer_Destroy</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#acd1e5bdf06bfd91ce66c8ce6a46006a2">renderer</a>);</div>
<div class="line"><span class="lineno"> 55</span> <a class="code hl_function" href="../../d5/d03/include_2arc_2graphics_2window_8h.html#afb68d49b50117b8cec312c7a5999c1a6">ARC_Window_Destroy</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#abcdb1fc080bcd9ad137bc3ac8ae69432">window</a>);</div>
<div class="line"><span class="lineno"> 56</span> <a class="code hl_function" href="../../dd/dee/handler_8h.html#a504e83100f5bc3b257f81fb27c7850d9">ARC_Handler_Destroy</a>(data-&gt;<a class="code hl_variable" href="../../d5/df0/structARC__EngineData.html#a5f96f851824e024e8b59919a2195b36e">state</a>);</div>
<div class="line"><span class="lineno"> 57</span>}</div>
<div class="ttc" id="ahandler_8h_html_a504e83100f5bc3b257f81fb27c7850d9"><div class="ttname"><a href="../../dd/dee/handler_8h.html#a504e83100f5bc3b257f81fb27c7850d9">ARC_Handler_Destroy</a></div><div class="ttdeci">void ARC_Handler_Destroy(ARC_Handler *handler)</div><div class="ttdoc">destroyes ARC_Handler type</div><div class="ttdef"><b>Definition</b> <a href="../../db/dd1/handler_8c_source.html#l00021">handler.c:21</a></div></div>
<div class="ttc" id="ainclude_2arc_2graphics_2renderer_8h_html_abc868b155fe4429b0569cf07fec57a76"><div class="ttname"><a href="../../d1/dc6/include_2arc_2graphics_2renderer_8h.html#abc868b155fe4429b0569cf07fec57a76">ARC_Renderer_Destroy</a></div><div class="ttdeci">void ARC_Renderer_Destroy(ARC_Renderer *renderer)</div><div class="ttdoc">destroys ARC_Renderer type</div><div class="ttdef"><b>Definition</b> <a href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00028">renderer.c:28</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2keyboard_8h_html_aaeaa42ad6e69566dfee40058003a053b"><div class="ttname"><a href="../../d2/d78/include_2arc_2input_2keyboard_8h.html#aaeaa42ad6e69566dfee40058003a053b">ARC_Keyboard_Destroy</a></div><div class="ttdeci">void ARC_Keyboard_Destroy(ARC_Keyboard *keyboard)</div><div class="ttdef"><b>Definition</b> <a href="../../d7/d37/packages_2input_2sdl_2keyboard_8c_source.html#l00023">keyboard.c:23</a></div></div>
<div class="ttc" id="ainclude_2arc_2input_2mouse_8h_html_a80f3e8881fa82ed61884bd0c54718377"><div class="ttname"><a href="../../d4/d4c/include_2arc_2input_2mouse_8h.html#a80f3e8881fa82ed61884bd0c54718377">ARC_Mouse_Destroy</a></div><div class="ttdeci">void ARC_Mouse_Destroy(ARC_Mouse *mouse)</div><div class="ttdef"><b>Definition</b> <a href="../../d1/de1/packages_2input_2sdl_2mouse_8c_source.html#l00031">mouse.c:31</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_a4b27ffc245ac5a29fdcb6ae2e1351752"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#a4b27ffc245ac5a29fdcb6ae2e1351752">ARC_EngineData::keyboard</a></div><div class="ttdeci">ARC_Keyboard * keyboard</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00023">engine.h:23</a></div></div>
<div class="ttc" id="astructARC__EngineData_html_adbcb8ddc2797b28998ec34540bc1e85c"><div class="ttname"><a href="../../d5/df0/structARC__EngineData.html#adbcb8ddc2797b28998ec34540bc1e85c">ARC_EngineData::mouse</a></div><div class="ttdeci">ARC_Mouse * mouse</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d55/engine_8h_source.html#l00022">engine.h:22</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="../../db/dd1/handler_8c_source.html#l00021">ARC_Handler_Destroy()</a>, <a class="el" href="../../d7/d37/packages_2input_2sdl_2keyboard_8c_source.html#l00023">ARC_Keyboard_Destroy()</a>, <a class="el" href="../../d1/de1/packages_2input_2sdl_2mouse_8c_source.html#l00031">ARC_Mouse_Destroy()</a>, <a class="el" href="../../d8/d04/packages_2graphics_2sdl_2renderer_8c_source.html#l00028">ARC_Renderer_Destroy()</a>, <a class="el" href="../../d6/d83/packages_2graphics_2sdl_2window_8c_source.html#l00029">ARC_Window_Destroy()</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00023">ARC_EngineData::keyboard</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00022">ARC_EngineData::mouse</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00019">ARC_EngineData::renderer</a>, <a class="el" href="../../d1/d55/engine_8h_source.html#l00020">ARC_EngineData::state</a>, and <a class="el" href="../../d1/d55/engine_8h_source.html#l00018">ARC_EngineData::window</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.9.2-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul><li class="navelem"><a class="el" href="../../dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="../../dir_2052808828190f934b76e979ee65af8a.html">engine</a></li><li class="navelem"><a class="el" href="../../dd/d56/engine_8c.html">engine.c</a></li></ul>
</div>
<script type="text/javascript">
// script for doxygen 1.9.1
$(function() {
toggleButton = document.createElement('doxygen-awesome-dark-mode-toggle')
toggleButton.title = "Toggle Light/Dark Mode"
$(document).ready(function(){
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
})
$(window).resize(function(){
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
})
})
</script>
</body>
</html>