khaotic-engine-Reborn/doxygen_docs/html/classimgui_manager.html

1813 lines
170 KiB
HTML
Raw Blame History

<!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" lang="en-US">
<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>Khaotic Engine Reborn: imguiManager Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.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" />
</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 id="projectrow">
<td id="projectalign">
<div id="projectname">Khaotic Engine Reborn
</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(0); });
/* @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('classimgui_manager.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="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classimgui_manager-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">imguiManager Class Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab323084ef02c7df421977b9342edfd5f" id="r_ab323084ef02c7df421977b9342edfd5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab323084ef02c7df421977b9342edfd5f">imguiManager</a> ()</td></tr>
<tr class="separator:ab323084ef02c7df421977b9342edfd5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a282c73b89df97bffb545dfa618f354ef" id="r_a282c73b89df97bffb545dfa618f354ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a282c73b89df97bffb545dfa618f354ef">Initialize</a> (HWND hwnd, ID3D11Device *device, ID3D11DeviceContext *deviceContext)</td></tr>
<tr class="separator:a282c73b89df97bffb545dfa618f354ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6a2337e560cfd2fa52605f52e4e2d25" id="r_af6a2337e560cfd2fa52605f52e4e2d25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af6a2337e560cfd2fa52605f52e4e2d25">Shutdown</a> ()</td></tr>
<tr class="separator:af6a2337e560cfd2fa52605f52e4e2d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec282a32a74a9153697b66e47d683b3d" id="r_aec282a32a74a9153697b66e47d683b3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aec282a32a74a9153697b66e47d683b3d">Render</a> ()</td></tr>
<tr class="separator:aec282a32a74a9153697b66e47d683b3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3d0eda2efd0dadc1aab2384083c941c" id="r_ae3d0eda2efd0dadc1aab2384083c941c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae3d0eda2efd0dadc1aab2384083c941c">NewFrame</a> ()</td></tr>
<tr class="separator:ae3d0eda2efd0dadc1aab2384083c941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1496a85b51414a2d6fdbfa6bd53414ea" id="r_a1496a85b51414a2d6fdbfa6bd53414ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1496a85b51414a2d6fdbfa6bd53414ea">SetupDockspace</a> ()</td></tr>
<tr class="separator:a1496a85b51414a2d6fdbfa6bd53414ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af69a453ffe53d8db207fd7d4d76f20ab" id="r_af69a453ffe53d8db207fd7d4d76f20ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af69a453ffe53d8db207fd7d4d76f20ab">WidgetSpeedSlider</a> (float *speed)</td></tr>
<tr class="separator:af69a453ffe53d8db207fd7d4d76f20ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50050d9440111762dcaac05555994175" id="r_a50050d9440111762dcaac05555994175"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a50050d9440111762dcaac05555994175">WidgetButton</a> ()</td></tr>
<tr class="separator:a50050d9440111762dcaac05555994175"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3b3c6844e2616b5a4b230d0f223cb74" id="r_aa3b3c6844e2616b5a4b230d0f223cb74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa3b3c6844e2616b5a4b230d0f223cb74">WidgetFPS</a> ()</td></tr>
<tr class="separator:aa3b3c6844e2616b5a4b230d0f223cb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59142ebf31199eabc0e95fb4e03f0dcc" id="r_a59142ebf31199eabc0e95fb4e03f0dcc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a59142ebf31199eabc0e95fb4e03f0dcc">WidgetAddObject</a> ()</td></tr>
<tr class="separator:a59142ebf31199eabc0e95fb4e03f0dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0933378a4a5bea9a7f0eefc9631ac369" id="r_a0933378a4a5bea9a7f0eefc9631ac369"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0933378a4a5bea9a7f0eefc9631ac369">WidgetObjectWindow</a> ()</td></tr>
<tr class="separator:a0933378a4a5bea9a7f0eefc9631ac369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5bc0ab6cfd9369bdadb72d589716e0d" id="r_ab5bc0ab6cfd9369bdadb72d589716e0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab5bc0ab6cfd9369bdadb72d589716e0d">WidgetTerrainWindow</a> ()</td></tr>
<tr class="separator:ab5bc0ab6cfd9369bdadb72d589716e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16bf45ab2eca6c63053b9ce52d84a245" id="r_a16bf45ab2eca6c63053b9ce52d84a245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a16bf45ab2eca6c63053b9ce52d84a245">WidgetLightWindow</a> ()</td></tr>
<tr class="separator:a16bf45ab2eca6c63053b9ce52d84a245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a343ac602d7ef491b66bdb0d22b4cca54" id="r_a343ac602d7ef491b66bdb0d22b4cca54"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a343ac602d7ef491b66bdb0d22b4cca54">WidgetEngineSettingsWindow</a> ()</td></tr>
<tr class="separator:a343ac602d7ef491b66bdb0d22b4cca54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8dfce7344b08009a6e4343f66418cbf" id="r_ab8dfce7344b08009a6e4343f66418cbf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab8dfce7344b08009a6e4343f66418cbf">WidgetRenderWindow</a> (ImVec2 availableSize)</td></tr>
<tr class="separator:ab8dfce7344b08009a6e4343f66418cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc1037d25c4c832d469867cfda2ece8d" id="r_acc1037d25c4c832d469867cfda2ece8d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acc1037d25c4c832d469867cfda2ece8d">WidgetLogWindow</a> ()</td></tr>
<tr class="separator:acc1037d25c4c832d469867cfda2ece8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef824217cf1d2248b63eba6f577dbed6" id="r_aef824217cf1d2248b63eba6f577dbed6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aef824217cf1d2248b63eba6f577dbed6">WidgetRenderStats</a> ()</td></tr>
<tr class="separator:aef824217cf1d2248b63eba6f577dbed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5b5109acef17047334dba7e7aebf3aa" id="r_ad5b5109acef17047334dba7e7aebf3aa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad5b5109acef17047334dba7e7aebf3aa">ImGuiWidgetRenderer</a> ()</td></tr>
<tr class="separator:ad5b5109acef17047334dba7e7aebf3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7342adf62f12e139de6fbe6399ff7129" id="r_a7342adf62f12e139de6fbe6399ff7129"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7342adf62f12e139de6fbe6399ff7129">SetWindowSize</a> (ImVec2 size)</td></tr>
<tr class="separator:a7342adf62f12e139de6fbe6399ff7129"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8422f5e3790983a2c878d61968c6a657" id="r_a8422f5e3790983a2c878d61968c6a657"><td class="memItemLeft" align="right" valign="top">ImVec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8422f5e3790983a2c878d61968c6a657">GetWindowSize</a> () const</td></tr>
<tr class="separator:a8422f5e3790983a2c878d61968c6a657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a958907b5ec5b0a928a98198af01a4c46" id="r_a958907b5ec5b0a928a98198af01a4c46"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a958907b5ec5b0a928a98198af01a4c46">SetApp</a> (std::shared_ptr&lt; <a class="el" href="classapplication__class.html">application_class</a> &gt; app)</td></tr>
<tr class="separator:a958907b5ec5b0a928a98198af01a4c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a1715bb75f2b7b1987da8ca4e66f87091" id="r_a1715bb75f2b7b1987da8ca4e66f87091"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1715bb75f2b7b1987da8ca4e66f87091">m_EnableCelShading</a></td></tr>
<tr class="separator:a1715bb75f2b7b1987da8ca4e66f87091"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="imgui_manager_8h_source.html#l00033">33</a> of file <a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab323084ef02c7df421977b9342edfd5f" name="ab323084ef02c7df421977b9342edfd5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab323084ef02c7df421977b9342edfd5f">&#9670;&#160;</a></span>imguiManager()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">imguiManager::imguiManager </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="classimgui_manager.html">imguiManager</a> class. Initializes the ImGui manager with default values. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00007">7</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 8</span>{</div>
<div class="line"><span class="lineno"> 9</span> io = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 10</span> m_frameTimeHistoryIndex = 0;</div>
<div class="line"><span class="lineno"> 11</span> </div>
<div class="line"><span class="lineno"> 12</span> current_fps_ = 0;</div>
<div class="line"><span class="lineno"> 13</span> min_fps_ = 0;</div>
<div class="line"><span class="lineno"> 14</span> max_fps_ = 0;</div>
<div class="line"><span class="lineno"> 15</span> draw_calls_ = 0;</div>
<div class="line"><span class="lineno"> 16</span> total_vertex_count_ = 0;</div>
<div class="line"><span class="lineno"> 17</span> total_triangle_count_ = 0;</div>
<div class="line"><span class="lineno"> 18</span> visible_triangle_count_ = 0;</div>
<div class="line"><span class="lineno"> 19</span> current_frame_time_ = 0;</div>
<div class="line"><span class="lineno"> 20</span> </div>
<div class="line"><span class="lineno"> 21</span> showObjectWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 22</span> showTerrainWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 23</span> showLightWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 24</span> showOldSceneWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 25</span> showEngineSettingsWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 26</span> showLogWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 27</span> showStatsWindow = <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 28</span> </div>
<div class="line"><span class="lineno"> 29</span> <span class="comment">// Initialiser l&#39;historique des frametimes <20> z<>ro</span></div>
<div class="line"><span class="lineno"> 30</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; FRAME_HISTORY_COUNT; i++)</div>
<div class="line"><span class="lineno"> 31</span> {</div>
<div class="line"><span class="lineno"> 32</span> m_frameTimeHistory[i] = 0.0f;</div>
<div class="line"><span class="lineno"> 33</span> }</div>
<div class="line"><span class="lineno"> 34</span> </div>
<div class="line"><span class="lineno"> 35</span> widgets_ = {</div>
<div class="line"><span class="lineno"> 36</span> {&amp;showObjectWindow, [&amp;](){<a class="code hl_function" href="#a0933378a4a5bea9a7f0eefc9631ac369">WidgetObjectWindow</a>();}},</div>
<div class="line"><span class="lineno"> 37</span> {&amp;showEngineSettingsWindow, [&amp;](){<a class="code hl_function" href="#a343ac602d7ef491b66bdb0d22b4cca54">WidgetEngineSettingsWindow</a>();}},</div>
<div class="line"><span class="lineno"> 38</span> {&amp;showTerrainWindow, [&amp;](){<a class="code hl_function" href="#ab5bc0ab6cfd9369bdadb72d589716e0d">WidgetTerrainWindow</a>();}},</div>
<div class="line"><span class="lineno"> 39</span> {&amp;showLightWindow, [&amp;](){<a class="code hl_function" href="#a16bf45ab2eca6c63053b9ce52d84a245">WidgetLightWindow</a>();}},</div>
<div class="line"><span class="lineno"> 40</span> {&amp;showLogWindow, [&amp;](){<a class="code hl_function" href="#acc1037d25c4c832d469867cfda2ece8d">WidgetLogWindow</a>();}},</div>
<div class="line"><span class="lineno"> 41</span> {&amp;showOldSceneWindow, [&amp;](){<a class="code hl_function" href="#ab8dfce7344b08009a6e4343f66418cbf">WidgetRenderWindow</a>(ImVec2(800, 600));}},</div>
<div class="line"><span class="lineno"> 42</span> {&amp;showStatsWindow, [&amp;](){<a class="code hl_function" href="#aef824217cf1d2248b63eba6f577dbed6">WidgetRenderStats</a>();}}</div>
<div class="line"><span class="lineno"> 43</span> };</div>
<div class="line"><span class="lineno"> 44</span>}</div>
<div class="ttc" id="aclassimgui_manager_html_a0933378a4a5bea9a7f0eefc9631ac369"><div class="ttname"><a href="#a0933378a4a5bea9a7f0eefc9631ac369">imguiManager::WidgetObjectWindow</a></div><div class="ttdeci">void WidgetObjectWindow()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00393">imguiManager.cpp:393</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_a16bf45ab2eca6c63053b9ce52d84a245"><div class="ttname"><a href="#a16bf45ab2eca6c63053b9ce52d84a245">imguiManager::WidgetLightWindow</a></div><div class="ttdeci">void WidgetLightWindow()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00776">imguiManager.cpp:776</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_a343ac602d7ef491b66bdb0d22b4cca54"><div class="ttname"><a href="#a343ac602d7ef491b66bdb0d22b4cca54">imguiManager::WidgetEngineSettingsWindow</a></div><div class="ttdeci">void WidgetEngineSettingsWindow()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00841">imguiManager.cpp:841</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_ab5bc0ab6cfd9369bdadb72d589716e0d"><div class="ttname"><a href="#ab5bc0ab6cfd9369bdadb72d589716e0d">imguiManager::WidgetTerrainWindow</a></div><div class="ttdeci">void WidgetTerrainWindow()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00701">imguiManager.cpp:701</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_ab8dfce7344b08009a6e4343f66418cbf"><div class="ttname"><a href="#ab8dfce7344b08009a6e4343f66418cbf">imguiManager::WidgetRenderWindow</a></div><div class="ttdeci">void WidgetRenderWindow(ImVec2 availableSize)</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00972">imguiManager.cpp:972</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_acc1037d25c4c832d469867cfda2ece8d"><div class="ttname"><a href="#acc1037d25c4c832d469867cfda2ece8d">imguiManager::WidgetLogWindow</a></div><div class="ttdeci">void WidgetLogWindow()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00891">imguiManager.cpp:891</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_aef824217cf1d2248b63eba6f577dbed6"><div class="ttname"><a href="#aef824217cf1d2248b63eba6f577dbed6">imguiManager::WidgetRenderStats</a></div><div class="ttdeci">void WidgetRenderStats()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l01018">imguiManager.cpp:1018</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2511485a1a86030aa50cd56f0e152e29" name="a2511485a1a86030aa50cd56f0e152e29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2511485a1a86030aa50cd56f0e152e29">&#9670;&#160;</a></span>~imguiManager()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">imguiManager::~imguiManager </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00046">46</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 47</span>{</div>
<div class="line"><span class="lineno"> 48</span>}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8422f5e3790983a2c878d61968c6a657" name="a8422f5e3790983a2c878d61968c6a657"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8422f5e3790983a2c878d61968c6a657">&#9670;&#160;</a></span>GetWindowSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ImVec2 imguiManager::GetWindowSize </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current window size. </p><dl class="section return"><dt>Returns</dt><dd>The current window size as an ImVec2. </dd></dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8h_source.html#l00136">136</a> of file <a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 136</span>{ <span class="keywordflow">return</span> windowSize; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad5b5109acef17047334dba7e7aebf3aa" name="ad5b5109acef17047334dba7e7aebf3aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5b5109acef17047334dba7e7aebf3aa">&#9670;&#160;</a></span>ImGuiWidgetRenderer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool imguiManager::ImGuiWidgetRenderer </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Function to render the ImGui widgets. This function use the struct <a class="el" href="structwidget__entry.html">widget_entry</a> to render the widgets that are registered. </p><dl class="section return"><dt>Returns</dt><dd>True if the ImGui widgets were rendered successfully, otherwise false. </dd></dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00744">744</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 745</span>{</div>
<div class="line"><span class="lineno"> 746</span> <span class="comment">// Start the Dear ImGui frame</span></div>
<div class="line"><span class="lineno"> 747</span> <a class="code hl_function" href="#ae3d0eda2efd0dadc1aab2384083c941c">NewFrame</a>();</div>
<div class="line"><span class="lineno"> 748</span> </div>
<div class="line"><span class="lineno"> 749</span> <span class="comment">// Setup the dockspace</span></div>
<div class="line"><span class="lineno"> 750</span> <a class="code hl_function" href="#a1496a85b51414a2d6fdbfa6bd53414ea">SetupDockspace</a>();</div>
<div class="line"><span class="lineno"> 751</span> </div>
<div class="line"><span class="lineno"> 752</span> <span class="comment">//ImGui Widget</span></div>
<div class="line"><span class="lineno"> 753</span> ImGui::Begin(<span class="stringliteral">&quot;Khaotic Engine&quot;</span>, NULL);</div>
<div class="line"><span class="lineno"> 754</span> </div>
<div class="line"><span class="lineno"> 755</span> <span class="keywordtype">float</span> speed = app_-&gt;get_speed();</div>
<div class="line"><span class="lineno"> 756</span> </div>
<div class="line"><span class="lineno"> 757</span> <a class="code hl_function" href="#af69a453ffe53d8db207fd7d4d76f20ab">WidgetSpeedSlider</a>(&amp;speed);</div>
<div class="line"><span class="lineno"> 758</span> app_-&gt;set_speed(speed);</div>
<div class="line"><span class="lineno"> 759</span> <a class="code hl_function" href="#a50050d9440111762dcaac05555994175">WidgetButton</a>();</div>
<div class="line"><span class="lineno"> 760</span> <a class="code hl_function" href="#a59142ebf31199eabc0e95fb4e03f0dcc">WidgetAddObject</a>();</div>
<div class="line"><span class="lineno"> 761</span> </div>
<div class="line"><span class="lineno"> 762</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 763</span> </div>
<div class="line"><span class="lineno"> 764</span> <span class="comment">// Read the widget list and call the function if the show variable is true</span></div>
<div class="line"><span class="lineno"> 765</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; entry : widgets_)</div>
<div class="line"><span class="lineno"> 766</span> {</div>
<div class="line"><span class="lineno"> 767</span> <span class="keywordflow">if</span> (*entry.show == <span class="keyword">true</span>) {entry.func();}</div>
<div class="line"><span class="lineno"> 768</span> }</div>
<div class="line"><span class="lineno"> 769</span> </div>
<div class="line"><span class="lineno"> 770</span> <span class="comment">//render imgui</span></div>
<div class="line"><span class="lineno"> 771</span> <a class="code hl_function" href="#aec282a32a74a9153697b66e47d683b3d">Render</a>();</div>
<div class="line"><span class="lineno"> 772</span> </div>
<div class="line"><span class="lineno"> 773</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 774</span>}</div>
<div class="ttc" id="aclassimgui_manager_html_a1496a85b51414a2d6fdbfa6bd53414ea"><div class="ttname"><a href="#a1496a85b51414a2d6fdbfa6bd53414ea">imguiManager::SetupDockspace</a></div><div class="ttdeci">void SetupDockspace()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00220">imguiManager.cpp:220</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_a50050d9440111762dcaac05555994175"><div class="ttname"><a href="#a50050d9440111762dcaac05555994175">imguiManager::WidgetButton</a></div><div class="ttdeci">void WidgetButton()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00286">imguiManager.cpp:286</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_a59142ebf31199eabc0e95fb4e03f0dcc"><div class="ttname"><a href="#a59142ebf31199eabc0e95fb4e03f0dcc">imguiManager::WidgetAddObject</a></div><div class="ttdeci">void WidgetAddObject()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00296">imguiManager.cpp:296</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_ae3d0eda2efd0dadc1aab2384083c941c"><div class="ttname"><a href="#ae3d0eda2efd0dadc1aab2384083c941c">imguiManager::NewFrame</a></div><div class="ttdeci">void NewFrame()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00213">imguiManager.cpp:213</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_aec282a32a74a9153697b66e47d683b3d"><div class="ttname"><a href="#aec282a32a74a9153697b66e47d683b3d">imguiManager::Render</a></div><div class="ttdeci">void Render()</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00200">imguiManager.cpp:200</a></div></div>
<div class="ttc" id="aclassimgui_manager_html_af69a453ffe53d8db207fd7d4d76f20ab"><div class="ttname"><a href="#af69a453ffe53d8db207fd7d4d76f20ab">imguiManager::WidgetSpeedSlider</a></div><div class="ttdeci">void WidgetSpeedSlider(float *speed)</div><div class="ttdef"><b>Definition</b> <a href="imgui_manager_8cpp_source.html#l00281">imguiManager.cpp:281</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a282c73b89df97bffb545dfa618f354ef" name="a282c73b89df97bffb545dfa618f354ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a282c73b89df97bffb545dfa618f354ef">&#9670;&#160;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool imguiManager::Initialize </td>
<td>(</td>
<td class="paramtype">HWND</td> <td class="paramname"><span class="paramname"><em>hwnd</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ID3D11Device *</td> <td class="paramname"><span class="paramname"><em>device</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ID3D11DeviceContext *</td> <td class="paramname"><span class="paramname"><em>deviceContext</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the ImGui manager. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hwnd</td><td>Handle to the window where ImGui will be rendered. </td></tr>
<tr><td class="paramname">device</td><td>Pointer to the Direct3D 11 device. </td></tr>
<tr><td class="paramname">deviceContext</td><td>Pointer to the Direct3D 11 device context. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if initialization was successful, otherwise false. </dd></dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00050">50</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</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="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Initializing imgui&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Initialize);</div>
<div class="line"><span class="lineno"> 53</span> </div>
<div class="line"><span class="lineno"> 54</span> m_device = device;</div>
<div class="line"><span class="lineno"> 55</span> m_deviceContext = deviceContext;</div>
<div class="line"><span class="lineno"> 56</span> </div>
<div class="line"><span class="lineno"> 57</span> IMGUI_CHECKVERSION();</div>
<div class="line"><span class="lineno"> 58</span> ImGui::CreateContext();</div>
<div class="line"><span class="lineno"> 59</span> io = &amp;ImGui::GetIO();</div>
<div class="line"><span class="lineno"> 60</span> io-&gt;ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;</div>
<div class="line"><span class="lineno"> 61</span> io-&gt;ConfigFlags |= ImGuiConfigFlags_DockingEnable;</div>
<div class="line"><span class="lineno"> 62</span> io-&gt;FontGlobalScale = 1.0f;</div>
<div class="line"><span class="lineno"> 63</span> </div>
<div class="line"><span class="lineno"> 64</span> ImGui_ImplWin32_Init(hwnd);</div>
<div class="line"><span class="lineno"> 65</span> ImGui_ImplDX11_Init(m_device, m_deviceContext);</div>
<div class="line"><span class="lineno"> 66</span> </div>
<div class="line"><span class="lineno"> 67</span> <span class="comment">// Appliquer un th<74>me sombre de base</span></div>
<div class="line"><span class="lineno"> 68</span> ImGui::StyleColorsDark();</div>
<div class="line"><span class="lineno"> 69</span> </div>
<div class="line"><span class="lineno"> 70</span> <span class="comment">// D<>finir les couleurs pour une interface de type <20>diteur sobre</span></div>
<div class="line"><span class="lineno"> 71</span> ImGuiStyle&amp; style = ImGui::GetStyle();</div>
<div class="line"><span class="lineno"> 72</span> </div>
<div class="line"><span class="lineno"> 73</span> <span class="comment">// Palette de couleurs sobres inspir<69>e des <20>diteurs modernes</span></div>
<div class="line"><span class="lineno"> 74</span> ImVec4 background_dark = ImVec4(0.10f, 0.10f, 0.10f, 1.00f); <span class="comment">// Fond fonc<6E></span></div>
<div class="line"><span class="lineno"> 75</span> ImVec4 background = ImVec4(0.15f, 0.15f, 0.15f, 1.00f); <span class="comment">// Fond principal</span></div>
<div class="line"><span class="lineno"> 76</span> ImVec4 background_light = ImVec4(0.20f, 0.20f, 0.20f, 1.00f); <span class="comment">// Fond clair</span></div>
<div class="line"><span class="lineno"> 77</span> ImVec4 accent = ImVec4(0.14f, 0.44f, 0.80f, 0.50f); <span class="comment">// Accent bleu</span></div>
<div class="line"><span class="lineno"> 78</span> ImVec4 accent_light = ImVec4(0.14f, 0.44f, 0.80f, 1.00f); <span class="comment">// Accent bleu vif</span></div>
<div class="line"><span class="lineno"> 79</span> ImVec4 text = ImVec4(1.0f, 1.0f, 1.0f, 1.00f); <span class="comment">// Texte plus blanc</span></div>
<div class="line"><span class="lineno"> 80</span> ImVec4 text_dim = ImVec4(0.70f, 0.70f, 0.70f, 1.00f);</div>
<div class="line"><span class="lineno"> 81</span> </div>
<div class="line"><span class="lineno"> 82</span> <span class="comment">// Ajustements de style g<>n<EFBFBD>raux</span></div>
<div class="line"><span class="lineno"> 83</span> style.WindowPadding = ImVec2(4.0f, 4.0f); <span class="comment">// Moins de padding dans les fen<65>tres</span></div>
<div class="line"><span class="lineno"> 84</span> style.FramePadding = ImVec2(4.0f, 3.0f); <span class="comment">// Moins de padding dans les cadres</span></div>
<div class="line"><span class="lineno"> 85</span> style.ItemSpacing = ImVec2(4.0f, 3.0f); <span class="comment">// Moins d&#39;espace entre les widgets</span></div>
<div class="line"><span class="lineno"> 86</span> style.ItemInnerSpacing = ImVec2(3.0f, 3.0f); <span class="comment">// Moins d&#39;espace interne</span></div>
<div class="line"><span class="lineno"> 87</span> style.DisplayWindowPadding = ImVec2(0.0f, 0.0f); <span class="comment">// Pas de padding pour l&#39;affichage</span></div>
<div class="line"><span class="lineno"> 88</span> style.DisplaySafeAreaPadding = ImVec2(0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 89</span> style.TouchExtraPadding = ImVec2(0.0f, 0.0f);</div>
<div class="line"><span class="lineno"> 90</span> style.IndentSpacing = 20.0f;</div>
<div class="line"><span class="lineno"> 91</span> style.ScrollbarSize = 14.0f;</div>
<div class="line"><span class="lineno"> 92</span> style.GrabMinSize = 10.0f;</div>
<div class="line"><span class="lineno"> 93</span> </div>
<div class="line"><span class="lineno"> 94</span> <span class="comment">// Arrondis</span></div>
<div class="line"><span class="lineno"> 95</span> style.WindowRounding = 4.0f;</div>
<div class="line"><span class="lineno"> 96</span> style.ChildRounding = 4.0f;</div>
<div class="line"><span class="lineno"> 97</span> style.FrameRounding = 3.0f;</div>
<div class="line"><span class="lineno"> 98</span> style.PopupRounding = 4.0f;</div>
<div class="line"><span class="lineno"> 99</span> style.ScrollbarRounding = 9.0f;</div>
<div class="line"><span class="lineno"> 100</span> style.GrabRounding = 3.0f;</div>
<div class="line"><span class="lineno"> 101</span> style.TabRounding = 4.0f;</div>
<div class="line"><span class="lineno"> 102</span> </div>
<div class="line"><span class="lineno"> 103</span> <span class="comment">// Couleurs principales</span></div>
<div class="line"><span class="lineno"> 104</span> style.Colors[ImGuiCol_Text] = text;</div>
<div class="line"><span class="lineno"> 105</span> style.Colors[ImGuiCol_TextDisabled] = text_dim;</div>
<div class="line"><span class="lineno"> 106</span> style.Colors[ImGuiCol_WindowBg] = background;</div>
<div class="line"><span class="lineno"> 107</span> style.Colors[ImGuiCol_ChildBg] = background_dark;</div>
<div class="line"><span class="lineno"> 108</span> style.Colors[ImGuiCol_PopupBg] = background_dark;</div>
<div class="line"><span class="lineno"> 109</span> style.Colors[ImGuiCol_Border] = ImVec4(0.25f, 0.25f, 0.27f, 1.00f);</div>
<div class="line"><span class="lineno"> 110</span> style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);</div>
<div class="line"><span class="lineno"> 111</span> </div>
<div class="line"><span class="lineno"> 112</span> <span class="comment">// Encadrements</span></div>
<div class="line"><span class="lineno"> 113</span> style.Colors[ImGuiCol_FrameBg] = background_light;</div>
<div class="line"><span class="lineno"> 114</span> style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);</div>
<div class="line"><span class="lineno"> 115</span> style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.30f, 0.30f, 0.30f, 1.00f);</div>
<div class="line"><span class="lineno"> 116</span> </div>
<div class="line"><span class="lineno"> 117</span> <span class="comment">// Titres</span></div>
<div class="line"><span class="lineno"> 118</span> style.Colors[ImGuiCol_TitleBg] = background_dark;</div>
<div class="line"><span class="lineno"> 119</span> style.Colors[ImGuiCol_TitleBgActive] = accent;</div>
<div class="line"><span class="lineno"> 120</span> style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.12f, 0.12f, 0.12f, 0.90f);</div>
<div class="line"><span class="lineno"> 121</span> </div>
<div class="line"><span class="lineno"> 122</span> <span class="comment">// <20>l<EFBFBD>ments de menu</span></div>
<div class="line"><span class="lineno"> 123</span> style.Colors[ImGuiCol_MenuBarBg] = background_dark;</div>
<div class="line"><span class="lineno"> 124</span> style.Colors[ImGuiCol_ScrollbarBg] = background_dark;</div>
<div class="line"><span class="lineno"> 125</span> style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);</div>
<div class="line"><span class="lineno"> 126</span> style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);</div>
<div class="line"><span class="lineno"> 127</span> style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);</div>
<div class="line"><span class="lineno"> 128</span> </div>
<div class="line"><span class="lineno"> 129</span> <span class="comment">// Boutons et interactions</span></div>
<div class="line"><span class="lineno"> 130</span> style.Colors[ImGuiCol_CheckMark] = accent_light;</div>
<div class="line"><span class="lineno"> 131</span> style.Colors[ImGuiCol_SliderGrab] = accent;</div>
<div class="line"><span class="lineno"> 132</span> style.Colors[ImGuiCol_SliderGrabActive] = accent_light;</div>
<div class="line"><span class="lineno"> 133</span> style.Colors[ImGuiCol_Button] = background_light;</div>
<div class="line"><span class="lineno"> 134</span> style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.30f, 0.30f, 0.30f, 1.00f);</div>
<div class="line"><span class="lineno"> 135</span> style.Colors[ImGuiCol_ButtonActive] = accent;</div>
<div class="line"><span class="lineno"> 136</span> </div>
<div class="line"><span class="lineno"> 137</span> <span class="comment">// En-t<>tes et onglets</span></div>
<div class="line"><span class="lineno"> 138</span> style.Colors[ImGuiCol_Header] = ImVec4(0.20f, 0.20f, 0.20f, 1.00f);</div>
<div class="line"><span class="lineno"> 139</span> style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);</div>
<div class="line"><span class="lineno"> 140</span> style.Colors[ImGuiCol_HeaderActive] = accent;</div>
<div class="line"><span class="lineno"> 141</span> </div>
<div class="line"><span class="lineno"> 142</span> style.Colors[ImGuiCol_Separator] = ImVec4(0.28f, 0.28f, 0.28f, 1.00f);</div>
<div class="line"><span class="lineno"> 143</span> style.Colors[ImGuiCol_SeparatorHovered] = ImVec4(0.45f, 0.45f, 0.45f, 1.00f);</div>
<div class="line"><span class="lineno"> 144</span> style.Colors[ImGuiCol_SeparatorActive] = accent;</div>
<div class="line"><span class="lineno"> 145</span> </div>
<div class="line"><span class="lineno"> 146</span> style.Colors[ImGuiCol_Tab] = background_dark;</div>
<div class="line"><span class="lineno"> 147</span> style.Colors[ImGuiCol_TabHovered] = accent;</div>
<div class="line"><span class="lineno"> 148</span> style.Colors[ImGuiCol_TabActive] = accent;</div>
<div class="line"><span class="lineno"> 149</span> style.Colors[ImGuiCol_TabUnfocused] = background_dark;</div>
<div class="line"><span class="lineno"> 150</span> style.Colors[ImGuiCol_TabUnfocusedActive] = background;</div>
<div class="line"><span class="lineno"> 151</span> </div>
<div class="line"><span class="lineno"> 152</span> <span class="comment">// Autres <20>l<EFBFBD>ments </span></div>
<div class="line"><span class="lineno"> 153</span> style.Colors[ImGuiCol_DockingPreview] = accent;</div>
<div class="line"><span class="lineno"> 154</span> style.Colors[ImGuiCol_DockingEmptyBg] = background_light;</div>
<div class="line"><span class="lineno"> 155</span> </div>
<div class="line"><span class="lineno"> 156</span> <span class="comment">// Charger une police avec une meilleure nettet<65></span></div>
<div class="line"><span class="lineno"> 157</span> ImFontConfig fontConfig;</div>
<div class="line"><span class="lineno"> 158</span> fontConfig.OversampleH = 2; <span class="comment">// Sur<75>chantillonnage horizontal</span></div>
<div class="line"><span class="lineno"> 159</span> fontConfig.OversampleV = 2; <span class="comment">// Sur<75>chantillonnage vertical</span></div>
<div class="line"><span class="lineno"> 160</span> fontConfig.PixelSnapH = <span class="keyword">true</span>; <span class="comment">// Alignement sur la grille de pixels</span></div>
<div class="line"><span class="lineno"> 161</span> fontConfig.RasterizerMultiply = 1.2f; <span class="comment">// L<>g<EFBFBD>re augmentation de l&#39;<EFBFBD>paisseur</span></div>
<div class="line"><span class="lineno"> 162</span> io-&gt;Fonts-&gt;AddFontDefault(&amp;fontConfig);</div>
<div class="line"><span class="lineno"> 163</span> </div>
<div class="line"><span class="lineno"> 164</span> io-&gt;Fonts-&gt;Build();</div>
<div class="line"><span class="lineno"> 165</span> </div>
<div class="line"><span class="lineno"> 166</span> <span class="comment">// OU charger une police personnalis<69>e (d<>commenter si vous avez la police)</span></div>
<div class="line"><span class="lineno"> 167</span> <span class="comment">// io-&gt;Fonts-&gt;AddFontFromFileTTF(&quot;assets/fonts/roboto.ttf&quot;, 16.0f, &amp;fontConfig);</span></div>
<div class="line"><span class="lineno"> 168</span> </div>
<div class="line"><span class="lineno"> 169</span> </div>
<div class="line"><span class="lineno"> 170</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pixels;</div>
<div class="line"><span class="lineno"> 171</span> <span class="keywordtype">int</span> width, height;</div>
<div class="line"><span class="lineno"> 172</span> io-&gt;Fonts-&gt;GetTexDataAsRGBA32(&amp;pixels, &amp;width, &amp;height);</div>
<div class="line"><span class="lineno"> 173</span> </div>
<div class="line"><span class="lineno"> 174</span> <span class="comment">// initialize the scene manager</span></div>
<div class="line"><span class="lineno"> 175</span> scene_manager_ = <span class="keyword">new</span> <a class="code hl_class" href="classscene__manager.html">scene_manager</a>;</div>
<div class="line"><span class="lineno"> 176</span> <span class="keywordflow">if</span> (!scene_manager_-&gt;<a class="code hl_function" href="classscene__manager.html#a005af8b21eabedba5230c1c6266794c6">initialize</a>(app_.get())) {</div>
<div class="line"><span class="lineno"> 177</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Failed to initialize scene manager&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Error);</div>
<div class="line"><span class="lineno"> 178</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 179</span> }</div>
<div class="line"><span class="lineno"> 180</span> </div>
<div class="line"><span class="lineno"> 181</span> stats_ = app_-&gt;get_stats();</div>
<div class="line"><span class="lineno"> 182</span> </div>
<div class="line"><span class="lineno"> 183</span> total_triangle_count_ = stats_-&gt;get_triangle_count_ptr();</div>
<div class="line"><span class="lineno"> 184</span> total_vertex_count_ = stats_-&gt;get_vertex_count_ptr();</div>
<div class="line"><span class="lineno"> 185</span> </div>
<div class="line"><span class="lineno"> 186</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;imgui initialized&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Initialize);</div>
<div class="line"><span class="lineno"> 187</span> </div>
<div class="line"><span class="lineno"> 188</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 189</span>}</div>
<div class="ttc" id="aclass_logger_html_a08e3e1b899767a6d833136c9fb4f15c2"><div class="ttname"><a href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a></div><div class="ttdeci">static Logger &amp; Get()</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00020">Logger.h:20</a></div></div>
<div class="ttc" id="aclass_logger_html_a94f47ba0ef38ea7bcf1056f64d2645e4"><div class="ttname"><a href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Logger::Log</a></div><div class="ttdeci">void Log(const std::string &amp;message, const std::string &amp;fileName, int lineNumber, LogLevel level=LogLevel::Info)</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00158">Logger.h:158</a></div></div>
<div class="ttc" id="aclassscene__manager_html"><div class="ttname"><a href="classscene__manager.html">scene_manager</a></div><div class="ttdef"><b>Definition</b> <a href="scene__manager_8h_source.html#l00012">scene_manager.h:13</a></div></div>
<div class="ttc" id="aclassscene__manager_html_a005af8b21eabedba5230c1c6266794c6"><div class="ttname"><a href="classscene__manager.html#a005af8b21eabedba5230c1c6266794c6">scene_manager::initialize</a></div><div class="ttdeci">bool initialize(application_class *app)</div><div class="ttdef"><b>Definition</b> <a href="scene__manager_8cpp_source.html#l00013">scene_manager.cpp:13</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae3d0eda2efd0dadc1aab2384083c941c" name="ae3d0eda2efd0dadc1aab2384083c941c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3d0eda2efd0dadc1aab2384083c941c">&#9670;&#160;</a></span>NewFrame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::NewFrame </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Starts a new ImGui frame. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00213">213</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 214</span>{</div>
<div class="line"><span class="lineno"> 215</span> ImGui_ImplDX11_NewFrame();</div>
<div class="line"><span class="lineno"> 216</span> ImGui_ImplWin32_NewFrame();</div>
<div class="line"><span class="lineno"> 217</span> ImGui::NewFrame();</div>
<div class="line"><span class="lineno"> 218</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aec282a32a74a9153697b66e47d683b3d" name="aec282a32a74a9153697b66e47d683b3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec282a32a74a9153697b66e47d683b3d">&#9670;&#160;</a></span>Render()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::Render </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Renders the ImGui interface. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00200">200</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 201</span>{</div>
<div class="line"><span class="lineno"> 202</span> ImGui::Render();</div>
<div class="line"><span class="lineno"> 203</span> </div>
<div class="line"><span class="lineno"> 204</span> <span class="comment">//app-&gt;get_direct_3d()-&gt;turn_z_buffer_off();</span></div>
<div class="line"><span class="lineno"> 205</span> <span class="comment">//app-&gt;get_direct_3d()-&gt;enable_alpha_blending();</span></div>
<div class="line"><span class="lineno"> 206</span> </div>
<div class="line"><span class="lineno"> 207</span> ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());</div>
<div class="line"><span class="lineno"> 208</span> </div>
<div class="line"><span class="lineno"> 209</span> <span class="comment">//app-&gt;get_direct_3d()-&gt;disable_alpha_blending();</span></div>
<div class="line"><span class="lineno"> 210</span> <span class="comment">//app-&gt;get_direct_3d()-&gt;turn_z_buffer_on();</span></div>
<div class="line"><span class="lineno"> 211</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a958907b5ec5b0a928a98198af01a4c46" name="a958907b5ec5b0a928a98198af01a4c46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a958907b5ec5b0a928a98198af01a4c46">&#9670;&#160;</a></span>SetApp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void imguiManager::SetApp </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classapplication__class.html">application_class</a> &gt;</td> <td class="paramname"><span class="paramname"><em>app</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the application class pointer for the ImGui manager. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">app</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8h_source.html#l00142">142</a> of file <a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 142</span>{ app_ = app; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1496a85b51414a2d6fdbfa6bd53414ea" name="a1496a85b51414a2d6fdbfa6bd53414ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1496a85b51414a2d6fdbfa6bd53414ea">&#9670;&#160;</a></span>SetupDockspace()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::SetupDockspace </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets up the ImGui dockspace. This function creates a dockspace for the ImGui interface. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00220">220</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 220</span> {</div>
<div class="line"><span class="lineno"> 221</span> <span class="comment">// Configuration du style pour supprimer l&#39;espace autour des fen<65>tres dock<63>es</span></div>
<div class="line"><span class="lineno"> 222</span> ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));</div>
<div class="line"><span class="lineno"> 223</span> ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);</div>
<div class="line"><span class="lineno"> 224</span> ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);</div>
<div class="line"><span class="lineno"> 225</span> </div>
<div class="line"><span class="lineno"> 226</span> <span class="comment">// Configuration du style pour les n<>uds de dock</span></div>
<div class="line"><span class="lineno"> 227</span> ImGui::PushStyleVar(ImGuiStyleVar_DockingSeparatorSize, 1.0f); <span class="comment">// R<>duit l&#39;<EFBFBD>paisseur des s<>parateurs</span></div>
<div class="line"><span class="lineno"> 228</span> </div>
<div class="line"><span class="lineno"> 229</span> <span class="comment">// Configuration de la fen<65>tre principale</span></div>
<div class="line"><span class="lineno"> 230</span> ImGuiWindowFlags window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking;</div>
<div class="line"><span class="lineno"> 231</span> ImGuiViewport* viewport = ImGui::GetMainViewport();</div>
<div class="line"><span class="lineno"> 232</span> ImGui::SetNextWindowPos(viewport-&gt;Pos);</div>
<div class="line"><span class="lineno"> 233</span> ImGui::SetNextWindowSize(viewport-&gt;Size);</div>
<div class="line"><span class="lineno"> 234</span> ImGui::SetNextWindowViewport(viewport-&gt;ID);</div>
<div class="line"><span class="lineno"> 235</span> window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove;</div>
<div class="line"><span class="lineno"> 236</span> window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;</div>
<div class="line"><span class="lineno"> 237</span> </div>
<div class="line"><span class="lineno"> 238</span> ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0, 0, 0, 0));</div>
<div class="line"><span class="lineno"> 239</span> </div>
<div class="line"><span class="lineno"> 240</span> ImGui::Begin(<span class="stringliteral">&quot;DockSpace&quot;</span>, <span class="keyword">nullptr</span>, window_flags);</div>
<div class="line"><span class="lineno"> 241</span> </div>
<div class="line"><span class="lineno"> 242</span> <span class="comment">// Pop des styles apr<70>s avoir cr<63><72> la fen<65>tre principale</span></div>
<div class="line"><span class="lineno"> 243</span> ImGui::PopStyleVar(4); <span class="comment">// 4 car nous avons pouss<73> 4 variables de style</span></div>
<div class="line"><span class="lineno"> 244</span> ImGui::PopStyleColor();</div>
<div class="line"><span class="lineno"> 245</span> </div>
<div class="line"><span class="lineno"> 246</span> <span class="comment">// Configuration du DockSpace</span></div>
<div class="line"><span class="lineno"> 247</span> ImGuiID dockspace_id = ImGui::GetID(<span class="stringliteral">&quot;MainDockSpace&quot;</span>);</div>
<div class="line"><span class="lineno"> 248</span> ImGuiDockNodeFlags dockspace_flags = ImGuiDockNodeFlags_PassthruCentralNode;</div>
<div class="line"><span class="lineno"> 249</span> ImGui::DockSpace(dockspace_id, ImVec2(0.0f, 0.0f), dockspace_flags);</div>
<div class="line"><span class="lineno"> 250</span> </div>
<div class="line"><span class="lineno"> 251</span> <span class="keywordflow">if</span> (ImGui::BeginMenuBar()) {</div>
<div class="line"><span class="lineno"> 252</span> <span class="keywordflow">if</span> (ImGui::BeginMenu(<span class="stringliteral">&quot;Windows&quot;</span>)) {</div>
<div class="line"><span class="lineno"> 253</span> ImGui::MenuItem(<span class="stringliteral">&quot;Object Window&quot;</span>, NULL, &amp;showObjectWindow);</div>
<div class="line"><span class="lineno"> 254</span> ImGui::MenuItem(<span class="stringliteral">&quot;Terrain Window&quot;</span>, NULL, &amp;showTerrainWindow);</div>
<div class="line"><span class="lineno"> 255</span> ImGui::MenuItem(<span class="stringliteral">&quot;Light Window&quot;</span>, NULL, &amp;showLightWindow);</div>
<div class="line"><span class="lineno"> 256</span> ImGui::MenuItem(<span class="stringliteral">&quot;Engine Settings Window&quot;</span>, NULL, &amp;showEngineSettingsWindow);</div>
<div class="line"><span class="lineno"> 257</span> ImGui::MenuItem(<span class="stringliteral">&quot;Log Window&quot;</span>, NULL, &amp;showLogWindow);</div>
<div class="line"><span class="lineno"> 258</span> ImGui::MenuItem(<span class="stringliteral">&quot;render Stats&quot;</span>, NULL, &amp;showStatsWindow);</div>
<div class="line"><span class="lineno"> 259</span> ImGui::EndMenu();</div>
<div class="line"><span class="lineno"> 260</span> }</div>
<div class="line"><span class="lineno"> 261</span> </div>
<div class="line"><span class="lineno"> 262</span> <span class="keywordflow">if</span> (ImGui::BeginMenu(<span class="stringliteral">&quot;Scene&quot;</span>)) {</div>
<div class="line"><span class="lineno"> 263</span> <span class="keywordflow">if</span> (ImGui::MenuItem(<span class="stringliteral">&quot;Save Scene&quot;</span>)) {</div>
<div class="line"><span class="lineno"> 264</span> scene_manager_-&gt;<a class="code hl_function" href="classscene__manager.html#a7c221340be779b7e1cac9a54ec7a87d0">save_scene</a>();</div>
<div class="line"><span class="lineno"> 265</span> }</div>
<div class="line"><span class="lineno"> 266</span> <span class="keywordflow">if</span> (ImGui::MenuItem(<span class="stringliteral">&quot;Save Scene As...&quot;</span>)) {</div>
<div class="line"><span class="lineno"> 267</span> scene_manager_-&gt;<a class="code hl_function" href="classscene__manager.html#aa09ff2f050320a30b65bda4f162ace2c">save_scene_as</a>();</div>
<div class="line"><span class="lineno"> 268</span> }</div>
<div class="line"><span class="lineno"> 269</span> <span class="keywordflow">if</span> (ImGui::MenuItem(<span class="stringliteral">&quot;Load Scene&quot;</span>)) {</div>
<div class="line"><span class="lineno"> 270</span> scene_manager_-&gt;<a class="code hl_function" href="classscene__manager.html#a3dbd419184dd60e2ce0d3c660c4fdff2">load_scene</a>();</div>
<div class="line"><span class="lineno"> 271</span> }</div>
<div class="line"><span class="lineno"> 272</span> ImGui::EndMenu();</div>
<div class="line"><span class="lineno"> 273</span> }</div>
<div class="line"><span class="lineno"> 274</span> </div>
<div class="line"><span class="lineno"> 275</span> ImGui::EndMenuBar();</div>
<div class="line"><span class="lineno"> 276</span> }</div>
<div class="line"><span class="lineno"> 277</span> </div>
<div class="line"><span class="lineno"> 278</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 279</span>}</div>
<div class="ttc" id="aclassscene__manager_html_a3dbd419184dd60e2ce0d3c660c4fdff2"><div class="ttname"><a href="classscene__manager.html#a3dbd419184dd60e2ce0d3c660c4fdff2">scene_manager::load_scene</a></div><div class="ttdeci">bool load_scene()</div><div class="ttdef"><b>Definition</b> <a href="scene__manager_8cpp_source.html#l00067">scene_manager.cpp:67</a></div></div>
<div class="ttc" id="aclassscene__manager_html_a7c221340be779b7e1cac9a54ec7a87d0"><div class="ttname"><a href="classscene__manager.html#a7c221340be779b7e1cac9a54ec7a87d0">scene_manager::save_scene</a></div><div class="ttdeci">bool save_scene()</div><div class="ttdef"><b>Definition</b> <a href="scene__manager_8cpp_source.html#l00295">scene_manager.cpp:295</a></div></div>
<div class="ttc" id="aclassscene__manager_html_aa09ff2f050320a30b65bda4f162ace2c"><div class="ttname"><a href="classscene__manager.html#aa09ff2f050320a30b65bda4f162ace2c">scene_manager::save_scene_as</a></div><div class="ttdeci">bool save_scene_as()</div><div class="ttdef"><b>Definition</b> <a href="scene__manager_8cpp_source.html#l00030">scene_manager.cpp:30</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7342adf62f12e139de6fbe6399ff7129" name="a7342adf62f12e139de6fbe6399ff7129"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7342adf62f12e139de6fbe6399ff7129">&#9670;&#160;</a></span>SetWindowSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void imguiManager::SetWindowSize </td>
<td>(</td>
<td class="paramtype">ImVec2</td> <td class="paramname"><span class="paramname"><em>size</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>set the Old scene window size. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8h_source.html#l00131">131</a> of file <a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 131</span>{ windowSize = size; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af6a2337e560cfd2fa52605f52e4e2d25" name="af6a2337e560cfd2fa52605f52e4e2d25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6a2337e560cfd2fa52605f52e4e2d25">&#9670;&#160;</a></span>Shutdown()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::Shutdown </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Shuts down the ImGui manager. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00191">191</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 192</span>{</div>
<div class="line"><span class="lineno"> 193</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;Shutting down imgui&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 194</span> ImGui_ImplDX11_Shutdown();</div>
<div class="line"><span class="lineno"> 195</span> ImGui_ImplWin32_Shutdown();</div>
<div class="line"><span class="lineno"> 196</span> ImGui::DestroyContext();</div>
<div class="line"><span class="lineno"> 197</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(<span class="stringliteral">&quot;imgui shutdown&quot;</span>, __FILE__, __LINE__, Logger::LogLevel::Shutdown);</div>
<div class="line"><span class="lineno"> 198</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a59142ebf31199eabc0e95fb4e03f0dcc" name="a59142ebf31199eabc0e95fb4e03f0dcc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59142ebf31199eabc0e95fb4e03f0dcc">&#9670;&#160;</a></span>WidgetAddObject()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetAddObject </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a widget to add a button wich will add an object to the scene. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00296">296</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 297</span>{</div>
<div class="line"><span class="lineno"> 298</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(<span class="stringliteral">&quot;Objects&quot;</span>))</div>
<div class="line"><span class="lineno"> 299</span> {</div>
<div class="line"><span class="lineno"> 300</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Add Cube&quot;</span>))</div>
<div class="line"><span class="lineno"> 301</span> {</div>
<div class="line"><span class="lineno"> 302</span> app_-&gt;add_cube();</div>
<div class="line"><span class="lineno"> 303</span> }</div>
<div class="line"><span class="lineno"> 304</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 305</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Import Object&quot;</span>))</div>
<div class="line"><span class="lineno"> 306</span> {</div>
<div class="line"><span class="lineno"> 307</span> <span class="comment">// Open file dialog</span></div>
<div class="line"><span class="lineno"> 308</span> OPENFILENAME ofn;</div>
<div class="line"><span class="lineno"> 309</span> WCHAR szFile[260];</div>
<div class="line"><span class="lineno"> 310</span> ZeroMemory(&amp;ofn, <span class="keyword">sizeof</span>(ofn));</div>
<div class="line"><span class="lineno"> 311</span> ofn.lStructSize = <span class="keyword">sizeof</span>(ofn);</div>
<div class="line"><span class="lineno"> 312</span> ofn.hwndOwner = NULL;</div>
<div class="line"><span class="lineno"> 313</span> ofn.lpstrFile = szFile;</div>
<div class="line"><span class="lineno"> 314</span> ofn.lpstrFile[0] = <span class="charliteral">&#39;\0&#39;</span>;</div>
<div class="line"><span class="lineno"> 315</span> ofn.nMaxFile = <span class="keyword">sizeof</span>(szFile);</div>
<div class="line"><span class="lineno"> 316</span> ofn.lpstrFilter = L<span class="stringliteral">&quot;OBJ\0*.obj\0KOBJ\0*.kobj\0TXT\0*.txt&quot;</span>;</div>
<div class="line"><span class="lineno"> 317</span> ofn.nFilterIndex = 1;</div>
<div class="line"><span class="lineno"> 318</span> ofn.lpstrFileTitle = NULL;</div>
<div class="line"><span class="lineno"> 319</span> ofn.nMaxFileTitle = 0;</div>
<div class="line"><span class="lineno"> 320</span> ofn.lpstrInitialDir = NULL;</div>
<div class="line"><span class="lineno"> 321</span> ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</div>
<div class="line"><span class="lineno"> 322</span> </div>
<div class="line"><span class="lineno"> 323</span> <span class="keywordflow">if</span> (GetOpenFileName(&amp;ofn))</div>
<div class="line"><span class="lineno"> 324</span> {</div>
<div class="line"><span class="lineno"> 325</span> std::wstring filepath = ofn.lpstrFile;</div>
<div class="line"><span class="lineno"> 326</span> </div>
<div class="line"><span class="lineno"> 327</span> WCHAR exePath[MAX_PATH];</div>
<div class="line"><span class="lineno"> 328</span> GetModuleFileName(NULL,exePath,MAX_PATH);</div>
<div class="line"><span class="lineno"> 329</span> std::wstring exeDir = exePath;</div>
<div class="line"><span class="lineno"> 330</span> <span class="keywordtype">size_t</span> pos = exeDir.find_last_of(L<span class="stringliteral">&quot;\\/&quot;</span>);</div>
<div class="line"><span class="lineno"> 331</span> <span class="keywordflow">if</span>(pos != std::wstring::npos)</div>
<div class="line"><span class="lineno"> 332</span> {</div>
<div class="line"><span class="lineno"> 333</span> exeDir = exeDir.substr(0, pos);</div>
<div class="line"><span class="lineno"> 334</span> }</div>
<div class="line"><span class="lineno"> 335</span> </div>
<div class="line"><span class="lineno"> 336</span> std::wstring targetDir = exeDir + L<span class="stringliteral">&quot;\\Content\\Assets\\Kobject&quot;</span>;</div>
<div class="line"><span class="lineno"> 337</span> </div>
<div class="line"><span class="lineno"> 338</span> </div>
<div class="line"><span class="lineno"> 339</span> DWORD ftyp = GetFileAttributesW(targetDir.c_str());</div>
<div class="line"><span class="lineno"> 340</span> <span class="keywordflow">if</span>( ftyp == INVALID_FILE_ATTRIBUTES)</div>
<div class="line"><span class="lineno"> 341</span> {</div>
<div class="line"><span class="lineno"> 342</span> std::wstring contentDir = exeDir + L<span class="stringliteral">&quot;\\Content&quot;</span>;</div>
<div class="line"><span class="lineno"> 343</span> <span class="keywordflow">if</span> (GetFileAttributes(contentDir.c_str()) == INVALID_FILE_ATTRIBUTES)</div>
<div class="line"><span class="lineno"> 344</span> {</div>
<div class="line"><span class="lineno"> 345</span> CreateDirectory(contentDir.c_str(), NULL);</div>
<div class="line"><span class="lineno"> 346</span> }</div>
<div class="line"><span class="lineno"> 347</span> std::wstring assetsDir = contentDir + L<span class="stringliteral">&quot;\\Assets&quot;</span>;</div>
<div class="line"><span class="lineno"> 348</span> <span class="keywordflow">if</span> (GetFileAttributes(assetsDir.c_str()) == INVALID_FILE_ATTRIBUTES)</div>
<div class="line"><span class="lineno"> 349</span> {</div>
<div class="line"><span class="lineno"> 350</span> CreateDirectory(assetsDir.c_str(), NULL);</div>
<div class="line"><span class="lineno"> 351</span> }</div>
<div class="line"><span class="lineno"> 352</span> std::wstring kobjectDir = assetsDir + L<span class="stringliteral">&quot;\\Kobject&quot;</span>;</div>
<div class="line"><span class="lineno"> 353</span> <span class="keywordflow">if</span> (GetFileAttributes(kobjectDir.c_str()) == INVALID_FILE_ATTRIBUTES)</div>
<div class="line"><span class="lineno"> 354</span> {</div>
<div class="line"><span class="lineno"> 355</span> CreateDirectory(kobjectDir.c_str(), NULL);</div>
<div class="line"><span class="lineno"> 356</span> }</div>
<div class="line"><span class="lineno"> 357</span> }</div>
<div class="line"><span class="lineno"> 358</span> </div>
<div class="line"><span class="lineno"> 359</span> <span class="keywordtype">size_t</span> posFile = filepath.find_last_of(L<span class="stringliteral">&quot;\\/&quot;</span>);</div>
<div class="line"><span class="lineno"> 360</span> std::wstring filename = (posFile != std::wstring::npos) ? filepath.substr(posFile + 1) : filepath;</div>
<div class="line"><span class="lineno"> 361</span> </div>
<div class="line"><span class="lineno"> 362</span> std::wstring targetPath = targetDir + L<span class="stringliteral">&quot;\\&quot;</span> + filename;</div>
<div class="line"><span class="lineno"> 363</span> </div>
<div class="line"><span class="lineno"> 364</span> <span class="keywordflow">if</span> (!CopyFile(filepath.c_str(), targetPath.c_str(), FALSE))</div>
<div class="line"><span class="lineno"> 365</span> {</div>
<div class="line"><span class="lineno"> 366</span> <span class="comment">// En cas d&#39;erreur, vous pouvez g<>rer ici l&#39;erreur (par exemple afficher un message)</span></div>
<div class="line"><span class="lineno"> 367</span> MessageBox(NULL, L<span class="stringliteral">&quot;Erreur lors de la copie du fichier.&quot;</span>, L<span class="stringliteral">&quot;Erreur&quot;</span>, MB_OK);</div>
<div class="line"><span class="lineno"> 368</span> }</div>
<div class="line"><span class="lineno"> 369</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 370</span> {</div>
<div class="line"><span class="lineno"> 371</span> <span class="comment">// On r<>cup<75>re le chemin relatif par rapport <20> exeDir</span></div>
<div class="line"><span class="lineno"> 372</span> std::wstring relativePath = targetPath.substr(exeDir.size());</div>
<div class="line"><span class="lineno"> 373</span> </div>
<div class="line"><span class="lineno"> 374</span> <span class="comment">// Suppression du premier caract<63>re s&#39;il s&#39;agit d&#39;un antislash</span></div>
<div class="line"><span class="lineno"> 375</span> <span class="keywordflow">if</span> (!relativePath.empty() &amp;&amp; (relativePath[0] == L<span class="charliteral">&#39;\\&#39;</span> || relativePath[0] == L<span class="charliteral">&#39;/&#39;</span>))</div>
<div class="line"><span class="lineno"> 376</span> {</div>
<div class="line"><span class="lineno"> 377</span> relativePath.erase(0, 1);</div>
<div class="line"><span class="lineno"> 378</span> }</div>
<div class="line"><span class="lineno"> 379</span> </div>
<div class="line"><span class="lineno"> 380</span> <span class="comment">// Remplacer les antislashs par des slashs</span></div>
<div class="line"><span class="lineno"> 381</span> std::replace(relativePath.begin(), relativePath.end(), L<span class="charliteral">&#39;\\&#39;</span>, L<span class="charliteral">&#39;/&#39;</span>);</div>
<div class="line"><span class="lineno"> 382</span> app_-&gt;add_kobject(relativePath);</div>
<div class="line"><span class="lineno"> 383</span> }</div>
<div class="line"><span class="lineno"> 384</span> </div>
<div class="line"><span class="lineno"> 385</span> }</div>
<div class="line"><span class="lineno"> 386</span> </div>
<div class="line"><span class="lineno"> 387</span> }</div>
<div class="line"><span class="lineno"> 388</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 389</span> ImGui::Text(<span class="stringliteral">&quot;Number of cubes: %d&quot;</span>, app_-&gt;get_entity_manager()-&gt;GetEntityCount());</div>
<div class="line"><span class="lineno"> 390</span> }</div>
<div class="line"><span class="lineno"> 391</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a50050d9440111762dcaac05555994175" name="a50050d9440111762dcaac05555994175"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50050d9440111762dcaac05555994175">&#9670;&#160;</a></span>WidgetButton()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetButton </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a button widget. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00286">286</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 287</span>{</div>
<div class="line"><span class="lineno"> 288</span> <span class="keyword">static</span> <span class="keywordtype">int</span> counter = 0;</div>
<div class="line"><span class="lineno"> 289</span> </div>
<div class="line"><span class="lineno"> 290</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Button&quot;</span>)) <span class="comment">// Buttons return true when clicked (most widgets return true when edited/activated)</span></div>
<div class="line"><span class="lineno"> 291</span> counter++;</div>
<div class="line"><span class="lineno"> 292</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 293</span> ImGui::Text(<span class="stringliteral">&quot;counter = %d&quot;</span>, counter);</div>
<div class="line"><span class="lineno"> 294</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a343ac602d7ef491b66bdb0d22b4cca54" name="a343ac602d7ef491b66bdb0d22b4cca54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a343ac602d7ef491b66bdb0d22b4cca54">&#9670;&#160;</a></span>WidgetEngineSettingsWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetEngineSettingsWindow </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the Engine settings. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00841">841</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 842</span>{</div>
<div class="line"><span class="lineno"> 843</span> ImGui::Begin(<span class="stringliteral">&quot;Engine Settings&quot;</span>, &amp;showEngineSettingsWindow);</div>
<div class="line"><span class="lineno"> 844</span> </div>
<div class="line"><span class="lineno"> 845</span> <span class="comment">// Begining Of General Setting</span></div>
<div class="line"><span class="lineno"> 846</span> ImGui::Text(<span class="stringliteral">&quot;General&quot;</span>);</div>
<div class="line"><span class="lineno"> 847</span> </div>
<div class="line"><span class="lineno"> 848</span> <span class="comment">// Checkbox for toggling vsync globally in the application class by calling the set_vsync function in the application class when the checkbox state changes</span></div>
<div class="line"><span class="lineno"> 849</span> <span class="keywordtype">bool</span> vsync = app_-&gt;get_vsync();</div>
<div class="line"><span class="lineno"> 850</span> <span class="keywordflow">if</span> (ImGui::Checkbox(<span class="stringliteral">&quot;Vsync&quot;</span>, &amp;vsync))</div>
<div class="line"><span class="lineno"> 851</span> {</div>
<div class="line"><span class="lineno"> 852</span> app_-&gt;set_vsync(vsync);</div>
<div class="line"><span class="lineno"> 853</span> }</div>
<div class="line"><span class="lineno"> 854</span> </div>
<div class="line"><span class="lineno"> 855</span> <span class="comment">// End Of General Setting</span></div>
<div class="line"><span class="lineno"> 856</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 857</span> <span class="comment">// culling section</span></div>
<div class="line"><span class="lineno"> 858</span> ImGui::Text(<span class="stringliteral">&quot;Culling&quot;</span>);</div>
<div class="line"><span class="lineno"> 859</span> </div>
<div class="line"><span class="lineno"> 860</span> <span class="comment">// float input for frustum tolerance</span></div>
<div class="line"><span class="lineno"> 861</span> <span class="keywordtype">float</span> frustumTolerance = app_-&gt;get_frustum_tolerance();</div>
<div class="line"><span class="lineno"> 862</span> <span class="keywordflow">if</span> (ImGui::DragFloat(<span class="stringliteral">&quot;Frustum Tolerance&quot;</span>, &amp;frustumTolerance, 0.1f, 0.0f, 100.0f))</div>
<div class="line"><span class="lineno"> 863</span> {</div>
<div class="line"><span class="lineno"> 864</span> app_-&gt;set_frustum_tolerance(frustumTolerance);</div>
<div class="line"><span class="lineno"> 865</span> }</div>
<div class="line"><span class="lineno"> 866</span> </div>
<div class="line"><span class="lineno"> 867</span> <span class="comment">// End Of Culling Setting</span></div>
<div class="line"><span class="lineno"> 868</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 869</span> </div>
<div class="line"><span class="lineno"> 870</span> <span class="comment">// physics section</span></div>
<div class="line"><span class="lineno"> 871</span> ImGui::Text(<span class="stringliteral">&quot;physics&quot;</span>);</div>
<div class="line"><span class="lineno"> 872</span> </div>
<div class="line"><span class="lineno"> 873</span> <span class="comment">// Input To set the Fixed Update Interval</span></div>
<div class="line"><span class="lineno"> 874</span> <span class="keywordtype">int</span> physicsInterval = app_-&gt;get_physics_tick_rate();</div>
<div class="line"><span class="lineno"> 875</span> <span class="keywordflow">if</span> (ImGui::InputInt(<span class="stringliteral">&quot;physics Tick Rate&quot;</span>, &amp;physicsInterval))</div>
<div class="line"><span class="lineno"> 876</span> {</div>
<div class="line"><span class="lineno"> 877</span> app_-&gt;set_physics_tick_rate(physicsInterval);</div>
<div class="line"><span class="lineno"> 878</span> }</div>
<div class="line"><span class="lineno"> 879</span> </div>
<div class="line"><span class="lineno"> 880</span> <span class="comment">// Input to change the gravity on same line</span></div>
<div class="line"><span class="lineno"> 881</span> XMVECTOR gravity = app_-&gt;get_physics()-&gt;GetGravity();</div>
<div class="line"><span class="lineno"> 882</span> <span class="keywordtype">float</span> gravityValues[3] = { XMVectorGetX(gravity), XMVectorGetY(gravity), XMVectorGetZ(gravity) };</div>
<div class="line"><span class="lineno"> 883</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(<span class="stringliteral">&quot;Gravity&quot;</span>, gravityValues))</div>
<div class="line"><span class="lineno"> 884</span> {</div>
<div class="line"><span class="lineno"> 885</span> app_-&gt;get_physics()-&gt;SetGravity(XMVectorSet(gravityValues[0], gravityValues[1], gravityValues[2], 0.0f));</div>
<div class="line"><span class="lineno"> 886</span> }</div>
<div class="line"><span class="lineno"> 887</span> </div>
<div class="line"><span class="lineno"> 888</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 889</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa3b3c6844e2616b5a4b230d0f223cb74" name="aa3b3c6844e2616b5a4b230d0f223cb74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3b3c6844e2616b5a4b230d0f223cb74">&#9670;&#160;</a></span>WidgetFPS()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetFPS </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Shows the FPS in a widget. </p>
</div>
</div>
<a id="a16bf45ab2eca6c63053b9ce52d84a245" name="a16bf45ab2eca6c63053b9ce52d84a245"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16bf45ab2eca6c63053b9ce52d84a245">&#9670;&#160;</a></span>WidgetLightWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetLightWindow </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the light settings. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00776">776</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 777</span>{</div>
<div class="line"><span class="lineno"> 778</span> ImGui::Begin(<span class="stringliteral">&quot;Light&quot;</span>, &amp;showLightWindow);</div>
<div class="line"><span class="lineno"> 779</span> </div>
<div class="line"><span class="lineno"> 780</span> </div>
<div class="line"><span class="lineno"> 781</span> <span class="comment">// Sun light settings</span></div>
<div class="line"><span class="lineno"> 782</span> <a class="code hl_class" href="classlight__class.html">light_class</a>* sunLight = app_-&gt;get_sun_light();</div>
<div class="line"><span class="lineno"> 783</span> <span class="comment">// Direction input</span></div>
<div class="line"><span class="lineno"> 784</span> XMFLOAT3 direction = sunLight-&gt;GetDirection();</div>
<div class="line"><span class="lineno"> 785</span> <span class="keywordtype">float</span> dir[3] = { direction.x, direction.y, direction.z };</div>
<div class="line"><span class="lineno"> 786</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(<span class="stringliteral">&quot;Sun Direction&quot;</span>, dir))</div>
<div class="line"><span class="lineno"> 787</span> {</div>
<div class="line"><span class="lineno"> 788</span> sunLight-&gt;SetDirection(dir[0], dir[1], dir[2]);</div>
<div class="line"><span class="lineno"> 789</span> }</div>
<div class="line"><span class="lineno"> 790</span> <span class="comment">// Color input</span></div>
<div class="line"><span class="lineno"> 791</span> XMFLOAT4 color = sunLight-&gt;GetDiffuseColor();</div>
<div class="line"><span class="lineno"> 792</span> <span class="keywordtype">float</span> col[3] = { color.x, color.y, color.z };</div>
<div class="line"><span class="lineno"> 793</span> <span class="keywordflow">if</span> (ImGui::ColorEdit3(<span class="stringliteral">&quot;Sun Color&quot;</span>, col))</div>
<div class="line"><span class="lineno"> 794</span> {</div>
<div class="line"><span class="lineno"> 795</span> sunLight-&gt;SetDiffuseColor(col[0], col[1], col[2], 1.0f);</div>
<div class="line"><span class="lineno"> 796</span> }</div>
<div class="line"><span class="lineno"> 797</span> <span class="comment">// Intensity input</span></div>
<div class="line"><span class="lineno"> 798</span> <span class="keywordtype">float</span> intensity = sunLight-&gt;GetIntensity();</div>
<div class="line"><span class="lineno"> 799</span> <span class="keywordflow">if</span> (ImGui::DragFloat(<span class="stringliteral">&quot;Sun Intensity&quot;</span>, &amp;intensity, 0.1f, 0.0f, 100.0f))</div>
<div class="line"><span class="lineno"> 800</span> {</div>
<div class="line"><span class="lineno"> 801</span> sunLight-&gt;SetIntensity(intensity);</div>
<div class="line"><span class="lineno"> 802</span> }</div>
<div class="line"><span class="lineno"> 803</span> </div>
<div class="line"><span class="lineno"> 804</span> </div>
<div class="line"><span class="lineno"> 805</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 806</span> </div>
<div class="line"><span class="lineno"> 807</span> <span class="keywordtype">int</span> index = 0;</div>
<div class="line"><span class="lineno"> 808</span> </div>
<div class="line"><span class="lineno"> 809</span> <span class="comment">// Area light settings</span></div>
<div class="line"><span class="lineno"> 810</span> </div>
<div class="line"><span class="lineno"> 811</span> <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; light : app_-&gt;get_lights())</div>
<div class="line"><span class="lineno"> 812</span> {</div>
<div class="line"><span class="lineno"> 813</span> std::string headerName = <span class="stringliteral">&quot;Light &quot;</span> + std::to_string(index);</div>
<div class="line"><span class="lineno"> 814</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(headerName.c_str()))</div>
<div class="line"><span class="lineno"> 815</span> {</div>
<div class="line"><span class="lineno"> 816</span> XMVECTOR position = app_-&gt;get_light_position(index);</div>
<div class="line"><span class="lineno"> 817</span> XMVECTOR color = app_-&gt;get_light_color(index);</div>
<div class="line"><span class="lineno"> 818</span> <span class="keywordtype">float</span> pos[3] = { XMVectorGetX(position), XMVectorGetY(position), XMVectorGetZ(position) };</div>
<div class="line"><span class="lineno"> 819</span> <span class="keywordtype">float</span> col[3] = { XMVectorGetX(color), XMVectorGetY(color), XMVectorGetZ(color) };</div>
<div class="line"><span class="lineno"> 820</span> </div>
<div class="line"><span class="lineno"> 821</span> std::string posLabel = <span class="stringliteral">&quot;Position##&quot;</span> + std::to_string(index);</div>
<div class="line"><span class="lineno"> 822</span> std::string colLabel = <span class="stringliteral">&quot;Color##&quot;</span> + std::to_string(index);</div>
<div class="line"><span class="lineno"> 823</span> </div>
<div class="line"><span class="lineno"> 824</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(posLabel.c_str(), pos))</div>
<div class="line"><span class="lineno"> 825</span> {</div>
<div class="line"><span class="lineno"> 826</span> app_-&gt;set_light_position(index, XMVectorSet(pos[0], pos[1], pos[2], 0.0f));</div>
<div class="line"><span class="lineno"> 827</span> }</div>
<div class="line"><span class="lineno"> 828</span> </div>
<div class="line"><span class="lineno"> 829</span> <span class="keywordflow">if</span> (ImGui::ColorEdit3(colLabel.c_str(), col))</div>
<div class="line"><span class="lineno"> 830</span> {</div>
<div class="line"><span class="lineno"> 831</span> app_-&gt;set_light_color(index, XMVectorSet(col[0], col[1], col[2], 0.0f));</div>
<div class="line"><span class="lineno"> 832</span> }</div>
<div class="line"><span class="lineno"> 833</span> </div>
<div class="line"><span class="lineno"> 834</span> }</div>
<div class="line"><span class="lineno"> 835</span> index++;</div>
<div class="line"><span class="lineno"> 836</span> };</div>
<div class="line"><span class="lineno"> 837</span> </div>
<div class="line"><span class="lineno"> 838</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 839</span>}</div>
<div class="ttc" id="aclasslight__class_html"><div class="ttname"><a href="classlight__class.html">light_class</a></div><div class="ttdef"><b>Definition</b> <a href="light__class_8h_source.html#l00019">light_class.h:20</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="acc1037d25c4c832d469867cfda2ece8d" name="acc1037d25c4c832d469867cfda2ece8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc1037d25c4c832d469867cfda2ece8d">&#9670;&#160;</a></span>WidgetLogWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetLogWindow </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the log messages from the <a class="el" href="class_logger.html">Logger</a>. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00891">891</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 892</span>{</div>
<div class="line"><span class="lineno"> 893</span> ImGui::Begin(<span class="stringliteral">&quot;Log Window&quot;</span> , &amp;showLogWindow);</div>
<div class="line"><span class="lineno"> 894</span> </div>
<div class="line"><span class="lineno"> 895</span> <span class="comment">// Filtre de recherche</span></div>
<div class="line"><span class="lineno"> 896</span> <span class="keyword">static</span> ImGuiTextFilter filter;</div>
<div class="line"><span class="lineno"> 897</span> filter.Draw(<span class="stringliteral">&quot;Filter &quot;</span>, 180);</div>
<div class="line"><span class="lineno"> 898</span> </div>
<div class="line"><span class="lineno"> 899</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 900</span> </div>
<div class="line"><span class="lineno"> 901</span> <span class="comment">// Bouton pour ouvrir le fichier de log</span></div>
<div class="line"><span class="lineno"> 902</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Open Log File&quot;</span>))</div>
<div class="line"><span class="lineno"> 903</span> {</div>
<div class="line"><span class="lineno"> 904</span> ShellExecuteA(NULL, <span class="stringliteral">&quot;open&quot;</span>, <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().m_logFilePath.c_str(), NULL, NULL, SW_SHOWNORMAL);</div>
<div class="line"><span class="lineno"> 905</span> }</div>
<div class="line"><span class="lineno"> 906</span> </div>
<div class="line"><span class="lineno"> 907</span> <span class="comment">// Place the menu on the same line as the filter</span></div>
<div class="line"><span class="lineno"> 908</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 909</span> </div>
<div class="line"><span class="lineno"> 910</span> <span class="comment">// Menu d<>roulant pour les niveaux de log</span></div>
<div class="line"><span class="lineno"> 911</span> <span class="keywordflow">if</span> (ImGui::BeginMenu(<span class="stringliteral">&quot;Log Levels&quot;</span>))</div>
<div class="line"><span class="lineno"> 912</span> {</div>
<div class="line"><span class="lineno"> 913</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; Logger::LogLevelCount; ++i)</div>
<div class="line"><span class="lineno"> 914</span> {</div>
<div class="line"><span class="lineno"> 915</span> <span class="keywordtype">bool</span> isVisible = !<a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().m_disabledLogLevels[i];</div>
<div class="line"><span class="lineno"> 916</span> <span class="keywordflow">if</span> (ImGui::Checkbox(<a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().GetLogLevelInfo(<span class="keyword">static_cast&lt;</span><a class="code hl_enumeration" href="class_logger.html#ac744681e23720966b5f430ec2060da36">Logger::LogLevel</a><span class="keyword">&gt;</span>(i)).name, &amp;isVisible))</div>
<div class="line"><span class="lineno"> 917</span> {</div>
<div class="line"><span class="lineno"> 918</span> <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().m_disabledLogLevels[i] = !isVisible;</div>
<div class="line"><span class="lineno"> 919</span> }</div>
<div class="line"><span class="lineno"> 920</span> }</div>
<div class="line"><span class="lineno"> 921</span> ImGui::EndMenu();</div>
<div class="line"><span class="lineno"> 922</span> }</div>
<div class="line"><span class="lineno"> 923</span> </div>
<div class="line"><span class="lineno"> 924</span> <span class="keyword">const</span> <span class="keyword">auto</span>&amp; logBuffer = <a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().<a class="code hl_function" href="class_logger.html#a0fc50378d880b648733da39e61fa51e3">GetLogBuffer</a>();</div>
<div class="line"><span class="lineno"> 925</span> std::vector&lt;Logger::LogEntry&gt; logfiltered;</div>
<div class="line"><span class="lineno"> 926</span> <span class="keywordtype">int</span> logCount = logBuffer.size();</div>
<div class="line"><span class="lineno"> 927</span> </div>
<div class="line"><span class="lineno"> 928</span> <span class="comment">// Affichage des logs filtr<74>s</span></div>
<div class="line"><span class="lineno"> 929</span> ImGui::BeginChild(<span class="stringliteral">&quot;Log&quot;</span>);</div>
<div class="line"><span class="lineno"> 930</span> </div>
<div class="line"><span class="lineno"> 931</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; log : logBuffer)</div>
<div class="line"><span class="lineno"> 932</span> {</div>
<div class="line"><span class="lineno"> 933</span> <span class="keywordflow">if</span> (filter.PassFilter(log.message.c_str()) &amp;&amp; !<a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().m_disabledLogLevels[<span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(log.level)])</div>
<div class="line"><span class="lineno"> 934</span> {</div>
<div class="line"><span class="lineno"> 935</span> logfiltered.push_back(log);</div>
<div class="line"><span class="lineno"> 936</span> }</div>
<div class="line"><span class="lineno"> 937</span> }</div>
<div class="line"><span class="lineno"> 938</span> </div>
<div class="line"><span class="lineno"> 939</span> <span class="keywordflow">if</span> (logfiltered.size() == 0)</div>
<div class="line"><span class="lineno"> 940</span> {</div>
<div class="line"><span class="lineno"> 941</span> ImGui::Text(<span class="stringliteral">&quot;No logs to display.&quot;</span>);</div>
<div class="line"><span class="lineno"> 942</span> }</div>
<div class="line"><span class="lineno"> 943</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 944</span> {</div>
<div class="line"><span class="lineno"> 945</span> ImGuiListClipper clipper;</div>
<div class="line"><span class="lineno"> 946</span> clipper.Begin(logCount);</div>
<div class="line"><span class="lineno"> 947</span> <span class="keywordflow">while</span> (clipper.Step())</div>
<div class="line"><span class="lineno"> 948</span> {</div>
<div class="line"><span class="lineno"> 949</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = clipper.DisplayStart; i &lt; clipper.DisplayEnd; i++)</div>
<div class="line"><span class="lineno"> 950</span> {</div>
<div class="line"><span class="lineno"> 951</span> <span class="keywordflow">if</span> (i &lt; logfiltered.size()) {</div>
<div class="line"><span class="lineno"> 952</span> <span class="keyword">const</span> <span class="keyword">auto</span>&amp; log = logfiltered[i];</div>
<div class="line"><span class="lineno"> 953</span> ImGui::TextColored(<a class="code hl_function" href="class_logger.html#a08e3e1b899767a6d833136c9fb4f15c2">Logger::Get</a>().GetLogLevelInfo(log.level).color, log.message.c_str());</div>
<div class="line"><span class="lineno"> 954</span> }</div>
<div class="line"><span class="lineno"> 955</span> </div>
<div class="line"><span class="lineno"> 956</span> }</div>
<div class="line"><span class="lineno"> 957</span> }</div>
<div class="line"><span class="lineno"> 958</span> clipper.End();</div>
<div class="line"><span class="lineno"> 959</span> }</div>
<div class="line"><span class="lineno"> 960</span> </div>
<div class="line"><span class="lineno"> 961</span> <span class="comment">// Scroll to the bottom</span></div>
<div class="line"><span class="lineno"> 962</span> <span class="keywordflow">if</span> (ImGui::GetScrollY() &gt;= ImGui::GetScrollMaxY())</div>
<div class="line"><span class="lineno"> 963</span> {</div>
<div class="line"><span class="lineno"> 964</span> ImGui::SetScrollHereY(1.0f);</div>
<div class="line"><span class="lineno"> 965</span> }</div>
<div class="line"><span class="lineno"> 966</span> </div>
<div class="line"><span class="lineno"> 967</span> ImGui::EndChild();</div>
<div class="line"><span class="lineno"> 968</span> </div>
<div class="line"><span class="lineno"> 969</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 970</span>}</div>
<div class="ttc" id="aclass_logger_html_a0fc50378d880b648733da39e61fa51e3"><div class="ttname"><a href="class_logger.html#a0fc50378d880b648733da39e61fa51e3">Logger::GetLogBuffer</a></div><div class="ttdeci">const std::deque&lt; LogEntry &gt; &amp; GetLogBuffer() const</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00220">Logger.h:220</a></div></div>
<div class="ttc" id="aclass_logger_html_ac744681e23720966b5f430ec2060da36"><div class="ttname"><a href="class_logger.html#ac744681e23720966b5f430ec2060da36">Logger::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00037">Logger.h:38</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a0933378a4a5bea9a7f0eefc9631ac369" name="a0933378a4a5bea9a7f0eefc9631ac369"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0933378a4a5bea9a7f0eefc9631ac369">&#9670;&#160;</a></span>WidgetObjectWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetObjectWindow </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>create a window to display the object list and their properties. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00393">393</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 394</span>{</div>
<div class="line"><span class="lineno"> 395</span> ImGui::Begin(<span class="stringliteral">&quot;Objects&quot;</span>, &amp;showObjectWindow);</div>
<div class="line"><span class="lineno"> 396</span> </div>
<div class="line"><span class="lineno"> 397</span> <span class="comment">// Obtenir toutes les entit<69>s avec un composant d&#39;identit<EFBFBD> et de transformation</span></div>
<div class="line"><span class="lineno"> 398</span> <span class="keyword">auto</span> entities = app_-&gt;get_entity_manager()-&gt;GetEntitiesWithComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 399</span> </div>
<div class="line"><span class="lineno"> 400</span> <span class="keywordtype">int</span> index = 0;</div>
<div class="line"><span class="lineno"> 401</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : entities)</div>
<div class="line"><span class="lineno"> 402</span> {</div>
<div class="line"><span class="lineno"> 403</span> <span class="keyword">auto</span> identity = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 404</span> <span class="keyword">auto</span> transform = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_transform_component.html">ecs::TransformComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 405</span> <span class="keyword">auto</span> render = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_render_component.html">ecs::RenderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 406</span> <span class="keyword">auto</span> shader = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 407</span> <span class="keyword">auto</span> <a class="code hl_class" href="classphysics.html">physics</a> = entity-&gt;GetComponent&lt;<a class="code hl_class" href="classecs_1_1_physics_component.html">ecs::PhysicsComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 408</span> </div>
<div class="line"><span class="lineno"> 409</span> <span class="keywordflow">if</span> (identity &amp;&amp; transform)</div>
<div class="line"><span class="lineno"> 410</span> {</div>
<div class="line"><span class="lineno"> 411</span> std::string headerName = identity-&gt;GetName() + <span class="stringliteral">&quot; &quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 412</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(headerName.c_str()))</div>
<div class="line"><span class="lineno"> 413</span> {</div>
<div class="line"><span class="lineno"> 414</span> <span class="comment">// Position, Rotation, Scale</span></div>
<div class="line"><span class="lineno"> 415</span> XMVECTOR position = transform-&gt;GetPosition();</div>
<div class="line"><span class="lineno"> 416</span> XMVECTOR rotation = transform-&gt;GetRotation();</div>
<div class="line"><span class="lineno"> 417</span> XMVECTOR scale = transform-&gt;GetScale();</div>
<div class="line"><span class="lineno"> 418</span> </div>
<div class="line"><span class="lineno"> 419</span> <span class="keywordtype">float</span> pos[3] = { XMVectorGetX(position), XMVectorGetY(position), XMVectorGetZ(position) };</div>
<div class="line"><span class="lineno"> 420</span> std::string posLabel = <span class="stringliteral">&quot;Position##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 421</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(posLabel.c_str(), pos))</div>
<div class="line"><span class="lineno"> 422</span> {</div>
<div class="line"><span class="lineno"> 423</span> transform-&gt;SetPosition(XMVectorSet(pos[0], pos[1], pos[2], 0.0f));</div>
<div class="line"><span class="lineno"> 424</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 425</span> }</div>
<div class="line"><span class="lineno"> 426</span> </div>
<div class="line"><span class="lineno"> 427</span> <span class="keywordtype">float</span> rot[3] = { XMVectorGetX(rotation), XMVectorGetY(rotation), XMVectorGetZ(rotation) };</div>
<div class="line"><span class="lineno"> 428</span> std::string rotLabel = <span class="stringliteral">&quot;Rotation##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 429</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(rotLabel.c_str(), rot))</div>
<div class="line"><span class="lineno"> 430</span> {</div>
<div class="line"><span class="lineno"> 431</span> transform-&gt;SetRotation(XMVectorSet(rot[0], rot[1], rot[2], 0.0f));</div>
<div class="line"><span class="lineno"> 432</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 433</span> }</div>
<div class="line"><span class="lineno"> 434</span> </div>
<div class="line"><span class="lineno"> 435</span> <span class="keywordtype">float</span> scl[3] = { XMVectorGetX(scale), XMVectorGetY(scale), XMVectorGetZ(scale) };</div>
<div class="line"><span class="lineno"> 436</span> std::string sclLabel = <span class="stringliteral">&quot;Scale##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 437</span> <span class="keywordflow">if</span> (ImGui::DragFloat3(sclLabel.c_str(), scl))</div>
<div class="line"><span class="lineno"> 438</span> {</div>
<div class="line"><span class="lineno"> 439</span> transform-&gt;SetScale(XMVectorSet(scl[0], scl[1], scl[2], 0.0f));</div>
<div class="line"><span class="lineno"> 440</span> transform-&gt;UpdateWorldMatrix();</div>
<div class="line"><span class="lineno"> 441</span> }</div>
<div class="line"><span class="lineno"> 442</span> </div>
<div class="line"><span class="lineno"> 443</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 444</span> </div>
<div class="line"><span class="lineno"> 445</span> <span class="comment">// Textures - Seulement si le composant de rendu existe</span></div>
<div class="line"><span class="lineno"> 446</span> <span class="keywordflow">if</span> (render &amp;&amp; render-&gt;GetModel())</div>
<div class="line"><span class="lineno"> 447</span> {</div>
<div class="line"><span class="lineno"> 448</span> <span class="comment">// D<>finir les types de textures_</span></div>
<div class="line"><span class="lineno"> 449</span> std::vector&lt;std::string&gt; textureCategories = {</div>
<div class="line"><span class="lineno"> 450</span> <span class="stringliteral">&quot;Diffuse&quot;</span>, <span class="stringliteral">&quot;Normal&quot;</span>, <span class="stringliteral">&quot;Specular&quot;</span>, <span class="stringliteral">&quot;Alpha&quot;</span></div>
<div class="line"><span class="lineno"> 451</span> };</div>
<div class="line"><span class="lineno"> 452</span> </div>
<div class="line"><span class="lineno"> 453</span> std::vector&lt;TextureType&gt; textureTypes = {</div>
<div class="line"><span class="lineno"> 454</span> TextureType::Diffuse, TextureType::Normal, </div>
<div class="line"><span class="lineno"> 455</span> TextureType::Specular, TextureType::Alpha</div>
<div class="line"><span class="lineno"> 456</span> };</div>
<div class="line"><span class="lineno"> 457</span> </div>
<div class="line"><span class="lineno"> 458</span> <span class="comment">// Cr<43>er un espace pour afficher les textures_ avec d<>filement</span></div>
<div class="line"><span class="lineno"> 459</span> std::string textureChildId = <span class="stringliteral">&quot;TextureChild##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 460</span> ImGui::BeginChild(textureChildId.c_str(), ImVec2(0, 200), <span class="keyword">true</span>, ImGuiWindowFlags_HorizontalScrollbar);</div>
<div class="line"><span class="lineno"> 461</span> </div>
<div class="line"><span class="lineno"> 462</span> <span class="comment">// Pour chaque type de texture</span></div>
<div class="line"><span class="lineno"> 463</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> typeIndex = 0; typeIndex &lt; textureCategories.size(); typeIndex++)</div>
<div class="line"><span class="lineno"> 464</span> {</div>
<div class="line"><span class="lineno"> 465</span> TextureType type = textureTypes[typeIndex];</div>
<div class="line"><span class="lineno"> 466</span> std::string typeName = textureCategories[typeIndex];</div>
<div class="line"><span class="lineno"> 467</span> </div>
<div class="line"><span class="lineno"> 468</span> <span class="comment">// Afficher le titre de la cat<61>gorie</span></div>
<div class="line"><span class="lineno"> 469</span> std::string categoryLabel = typeName + <span class="stringliteral">&quot;##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 470</span> ImGui::Text(<span class="stringliteral">&quot;%s:&quot;</span>, typeName.c_str());</div>
<div class="line"><span class="lineno"> 471</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 472</span> </div>
<div class="line"><span class="lineno"> 473</span> <span class="comment">// Compter combien de textures_ de ce type existent</span></div>
<div class="line"><span class="lineno"> 474</span> <span class="keywordtype">int</span> textureCount = 0;</div>
<div class="line"><span class="lineno"> 475</span> <span class="keywordflow">while</span> (render-&gt;GetModel()-&gt;GetTexture(type, textureCount) != <span class="keyword">nullptr</span>)</div>
<div class="line"><span class="lineno"> 476</span> {</div>
<div class="line"><span class="lineno"> 477</span> textureCount++;</div>
<div class="line"><span class="lineno"> 478</span> }</div>
<div class="line"><span class="lineno"> 479</span> </div>
<div class="line"><span class="lineno"> 480</span> <span class="comment">// Afficher toutes les textures_ existantes</span></div>
<div class="line"><span class="lineno"> 481</span> std::string groupId = <span class="stringliteral">&quot;TextureGroup_&quot;</span> + std::to_string(identity-&gt;GetId()) + <span class="stringliteral">&quot;_&quot;</span> + std::to_string(typeIndex);</div>
<div class="line"><span class="lineno"> 482</span> ImGui::BeginGroup();</div>
<div class="line"><span class="lineno"> 483</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> texIndex = 0; texIndex &lt; textureCount; texIndex++)</div>
<div class="line"><span class="lineno"> 484</span> {</div>
<div class="line"><span class="lineno"> 485</span> ID3D11ShaderResourceView* texture = render-&gt;GetModel()-&gt;GetTexture(type, texIndex);</div>
<div class="line"><span class="lineno"> 486</span> <span class="keywordflow">if</span> (texture)</div>
<div class="line"><span class="lineno"> 487</span> {</div>
<div class="line"><span class="lineno"> 488</span> <span class="comment">// ID unique pour chaque bouton de texture</span></div>
<div class="line"><span class="lineno"> 489</span> std::string buttonId = <span class="stringliteral">&quot;tex##&quot;</span> + std::to_string(identity-&gt;GetId()) + <span class="stringliteral">&quot;_&quot;</span> + </div>
<div class="line"><span class="lineno"> 490</span> std::to_string(typeIndex) + <span class="stringliteral">&quot;_&quot;</span> + </div>
<div class="line"><span class="lineno"> 491</span> std::to_string(texIndex);</div>
<div class="line"><span class="lineno"> 492</span> </div>
<div class="line"><span class="lineno"> 493</span> <span class="keywordflow">if</span> (ImGui::ImageButton(buttonId.c_str(), (ImTextureID)texture, ImVec2(48, 48)))</div>
<div class="line"><span class="lineno"> 494</span> {</div>
<div class="line"><span class="lineno"> 495</span> <span class="comment">// Ouvrir une bo<62>te de dialogue pour changer la texture</span></div>
<div class="line"><span class="lineno"> 496</span> OPENFILENAME ofn;</div>
<div class="line"><span class="lineno"> 497</span> WCHAR szFile[260] = {0};</div>
<div class="line"><span class="lineno"> 498</span> ZeroMemory(&amp;ofn, <span class="keyword">sizeof</span>(ofn));</div>
<div class="line"><span class="lineno"> 499</span> ofn.lStructSize = <span class="keyword">sizeof</span>(ofn);</div>
<div class="line"><span class="lineno"> 500</span> ofn.hwndOwner = NULL;</div>
<div class="line"><span class="lineno"> 501</span> ofn.lpstrFile = szFile;</div>
<div class="line"><span class="lineno"> 502</span> ofn.nMaxFile = <span class="keyword">sizeof</span>(szFile);</div>
<div class="line"><span class="lineno"> 503</span> ofn.lpstrFilter = L<span class="stringliteral">&quot;Texture\0*.png;*.jpg;*.dds\0&quot;</span>;</div>
<div class="line"><span class="lineno"> 504</span> ofn.nFilterIndex = 1;</div>
<div class="line"><span class="lineno"> 505</span> ofn.lpstrInitialDir = NULL;</div>
<div class="line"><span class="lineno"> 506</span> ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</div>
<div class="line"><span class="lineno"> 507</span> </div>
<div class="line"><span class="lineno"> 508</span> <span class="keywordflow">if</span> (GetOpenFileName(&amp;ofn))</div>
<div class="line"><span class="lineno"> 509</span> {</div>
<div class="line"><span class="lineno"> 510</span> <span class="comment">// Changer la texture existante</span></div>
<div class="line"><span class="lineno"> 511</span> render-&gt;GetModel()-&gt;ChangeTexture(m_device, m_deviceContext, ofn.lpstrFile, type, texIndex);</div>
<div class="line"><span class="lineno"> 512</span> }</div>
<div class="line"><span class="lineno"> 513</span> }</div>
<div class="line"><span class="lineno"> 514</span> </div>
<div class="line"><span class="lineno"> 515</span> <span class="comment">// Afficher l&#39;indice de texture et pr<70>visualisation au survol</span></div>
<div class="line"><span class="lineno"> 516</span> <span class="keywordflow">if</span> (ImGui::IsItemHovered())</div>
<div class="line"><span class="lineno"> 517</span> {</div>
<div class="line"><span class="lineno"> 518</span> ImGui::BeginTooltip();</div>
<div class="line"><span class="lineno"> 519</span> ImGui::Text(<span class="stringliteral">&quot;%s %d&quot;</span>, typeName.c_str(), texIndex);</div>
<div class="line"><span class="lineno"> 520</span> ImGui::Image((ImTextureID)texture, ImVec2(192, 192));</div>
<div class="line"><span class="lineno"> 521</span> ImGui::EndTooltip();</div>
<div class="line"><span class="lineno"> 522</span> }</div>
<div class="line"><span class="lineno"> 523</span> </div>
<div class="line"><span class="lineno"> 524</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 525</span> }</div>
<div class="line"><span class="lineno"> 526</span> }</div>
<div class="line"><span class="lineno"> 527</span> </div>
<div class="line"><span class="lineno"> 528</span> <span class="comment">// Bouton pour ajouter une nouvelle texture</span></div>
<div class="line"><span class="lineno"> 529</span> std::string addButtonLabel = <span class="stringliteral">&quot;+##&quot;</span> + std::to_string(identity-&gt;GetId()) + <span class="stringliteral">&quot;_&quot;</span> + std::to_string(typeIndex);</div>
<div class="line"><span class="lineno"> 530</span> <span class="keywordflow">if</span> (ImGui::Button(addButtonLabel.c_str(), ImVec2(48, 48)))</div>
<div class="line"><span class="lineno"> 531</span> {</div>
<div class="line"><span class="lineno"> 532</span> <span class="comment">// Ouvrir une bo<62>te de dialogue pour ajouter une texture</span></div>
<div class="line"><span class="lineno"> 533</span> OPENFILENAME ofn;</div>
<div class="line"><span class="lineno"> 534</span> WCHAR szFile[260] = {0};</div>
<div class="line"><span class="lineno"> 535</span> ZeroMemory(&amp;ofn, <span class="keyword">sizeof</span>(ofn));</div>
<div class="line"><span class="lineno"> 536</span> ofn.lStructSize = <span class="keyword">sizeof</span>(ofn);</div>
<div class="line"><span class="lineno"> 537</span> ofn.hwndOwner = NULL;</div>
<div class="line"><span class="lineno"> 538</span> ofn.lpstrFile = szFile;</div>
<div class="line"><span class="lineno"> 539</span> ofn.nMaxFile = <span class="keyword">sizeof</span>(szFile);</div>
<div class="line"><span class="lineno"> 540</span> ofn.lpstrFilter = L<span class="stringliteral">&quot;Texture\0*.png;*.jpg;*.dds\0&quot;</span>;</div>
<div class="line"><span class="lineno"> 541</span> ofn.nFilterIndex = 1;</div>
<div class="line"><span class="lineno"> 542</span> ofn.lpstrInitialDir = NULL;</div>
<div class="line"><span class="lineno"> 543</span> ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;</div>
<div class="line"><span class="lineno"> 544</span> </div>
<div class="line"><span class="lineno"> 545</span> <span class="keywordflow">if</span> (GetOpenFileName(&amp;ofn))</div>
<div class="line"><span class="lineno"> 546</span> {</div>
<div class="line"><span class="lineno"> 547</span> <span class="comment">// Ajouter une nouvelle texture</span></div>
<div class="line"><span class="lineno"> 548</span> render-&gt;GetModel()-&gt;AddTexture(m_device, m_deviceContext, ofn.lpstrFile, type);</div>
<div class="line"><span class="lineno"> 549</span> }</div>
<div class="line"><span class="lineno"> 550</span> }</div>
<div class="line"><span class="lineno"> 551</span> </div>
<div class="line"><span class="lineno"> 552</span> ImGui::EndGroup();</div>
<div class="line"><span class="lineno"> 553</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 554</span> }</div>
<div class="line"><span class="lineno"> 555</span> </div>
<div class="line"><span class="lineno"> 556</span> ImGui::EndChild();</div>
<div class="line"><span class="lineno"> 557</span> }</div>
<div class="line"><span class="lineno"> 558</span> </div>
<div class="line"><span class="lineno"> 559</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 560</span> </div>
<div class="line"><span class="lineno"> 561</span> <span class="comment">// Delete button</span></div>
<div class="line"><span class="lineno"> 562</span> std::string deleteLabel = <span class="stringliteral">&quot;Delete##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 563</span> <span class="keywordflow">if</span> (ImGui::Button(deleteLabel.c_str()))</div>
<div class="line"><span class="lineno"> 564</span> {</div>
<div class="line"><span class="lineno"> 565</span> app_-&gt;delete_entity_by_id(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 566</span> <span class="comment">// Sortir du boucle apr<70>s suppression pour <20>viter des acc<63>s invalides</span></div>
<div class="line"><span class="lineno"> 567</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 568</span> }</div>
<div class="line"><span class="lineno"> 569</span> </div>
<div class="line"><span class="lineno"> 570</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 571</span> </div>
<div class="line"><span class="lineno"> 572</span> <span class="comment">// Shader options</span></div>
<div class="line"><span class="lineno"> 573</span> <span class="keywordflow">if</span> (shader)</div>
<div class="line"><span class="lineno"> 574</span> {</div>
<div class="line"><span class="lineno"> 575</span> <span class="comment">// Liste des options de shader</span></div>
<div class="line"><span class="lineno"> 576</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* shaderOptions[] = {</div>
<div class="line"><span class="lineno"> 577</span> <span class="stringliteral">&quot;Enable Global Lighting&quot;</span>,</div>
<div class="line"><span class="lineno"> 578</span> <span class="stringliteral">&quot;Enable Lighting&quot;</span>,</div>
<div class="line"><span class="lineno"> 579</span> <span class="stringliteral">&quot;Enable Cel Shading&quot;</span>,</div>
<div class="line"><span class="lineno"> 580</span> <span class="stringliteral">&quot;Enable Normal Mapping&quot;</span>,</div>
<div class="line"><span class="lineno"> 581</span> <span class="stringliteral">&quot;Enable Specular Mapping&quot;</span>,</div>
<div class="line"><span class="lineno"> 582</span> <span class="stringliteral">&quot;Enable Alpha Mapping&quot;</span></div>
<div class="line"><span class="lineno"> 583</span> };</div>
<div class="line"><span class="lineno"> 584</span> </div>
<div class="line"><span class="lineno"> 585</span> std::vector&lt;ecs::ShaderType&gt; shaderTypes = {</div>
<div class="line"><span class="lineno"> 586</span> ecs::ShaderType::SUNLIGHT,</div>
<div class="line"><span class="lineno"> 587</span> ecs::ShaderType::LIGHTING,</div>
<div class="line"><span class="lineno"> 588</span> ecs::ShaderType::CEL_SHADING,</div>
<div class="line"><span class="lineno"> 589</span> ecs::ShaderType::NORMAL_MAPPING,</div>
<div class="line"><span class="lineno"> 590</span> ecs::ShaderType::SPECULAR_MAPPING,</div>
<div class="line"><span class="lineno"> 591</span> ecs::ShaderType::ALPHA_MAPPING</div>
<div class="line"><span class="lineno"> 592</span> };</div>
<div class="line"><span class="lineno"> 593</span> </div>
<div class="line"><span class="lineno"> 594</span> <span class="comment">// Trouver l&#39;index actuel du shader pour cette entit<69> sp<73>cifique</span></div>
<div class="line"><span class="lineno"> 595</span> <span class="keywordtype">int</span> currentShader = 0;</div>
<div class="line"><span class="lineno"> 596</span> <a class="code hl_enumeration" href="namespaceecs.html#a80994feeebc2747495a80b5d4b2a8440">ecs::ShaderType</a> activeShader = shader-&gt;GetActiveShader();</div>
<div class="line"><span class="lineno"> 597</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; shaderTypes.size(); i++)</div>
<div class="line"><span class="lineno"> 598</span> {</div>
<div class="line"><span class="lineno"> 599</span> <span class="keywordflow">if</span> (shaderTypes[i] == activeShader)</div>
<div class="line"><span class="lineno"> 600</span> {</div>
<div class="line"><span class="lineno"> 601</span> currentShader = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(i);</div>
<div class="line"><span class="lineno"> 602</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 603</span> }</div>
<div class="line"><span class="lineno"> 604</span> }</div>
<div class="line"><span class="lineno"> 605</span> </div>
<div class="line"><span class="lineno"> 606</span> <span class="comment">// Cr<43>ation du menu d<>roulant avec un ID unique pour chaque entit<69></span></div>
<div class="line"><span class="lineno"> 607</span> std::string shaderComboId = <span class="stringliteral">&quot;Shader Options##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 608</span> <span class="keywordflow">if</span> (ImGui::BeginCombo(shaderComboId.c_str(), shaderOptions[currentShader]))</div>
<div class="line"><span class="lineno"> 609</span> {</div>
<div class="line"><span class="lineno"> 610</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IM_ARRAYSIZE(shaderOptions); i++)</div>
<div class="line"><span class="lineno"> 611</span> {</div>
<div class="line"><span class="lineno"> 612</span> <span class="comment">// Cr<43>e une option s<>lectionnable pour chaque shader avec ID unique</span></div>
<div class="line"><span class="lineno"> 613</span> std::string shaderSelectableId = std::to_string(i) + <span class="stringliteral">&quot;##shader_&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 614</span> <span class="keywordtype">bool</span> isSelected = (currentShader == i);</div>
<div class="line"><span class="lineno"> 615</span> <span class="keywordflow">if</span> (ImGui::Selectable(shaderOptions[i], isSelected))</div>
<div class="line"><span class="lineno"> 616</span> {</div>
<div class="line"><span class="lineno"> 617</span> <span class="comment">// Met <20> jour l&#39;option s<>lectionn<6E>e uniquement pour cette entit<69></span></div>
<div class="line"><span class="lineno"> 618</span> currentShader = i;</div>
<div class="line"><span class="lineno"> 619</span> shader-&gt;SetActiveShader(shaderTypes[i]);</div>
<div class="line"><span class="lineno"> 620</span> }</div>
<div class="line"><span class="lineno"> 621</span> </div>
<div class="line"><span class="lineno"> 622</span> <span class="comment">// Si l&#39;option s<>lectionn<6E>e est active, nous mettons en surbrillance</span></div>
<div class="line"><span class="lineno"> 623</span> <span class="keywordflow">if</span> (isSelected)</div>
<div class="line"><span class="lineno"> 624</span> ImGui::SetItemDefaultFocus();</div>
<div class="line"><span class="lineno"> 625</span> }</div>
<div class="line"><span class="lineno"> 626</span> ImGui::EndCombo();</div>
<div class="line"><span class="lineno"> 627</span> }</div>
<div class="line"><span class="lineno"> 628</span> }</div>
<div class="line"><span class="lineno"> 629</span> </div>
<div class="line"><span class="lineno"> 630</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 631</span> </div>
<div class="line"><span class="lineno"> 632</span> <span class="comment">// Physics</span></div>
<div class="line"><span class="lineno"> 633</span> <span class="keywordtype">bool</span> isPhysicsEnabled = (<a class="code hl_class" href="classphysics.html">physics</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><span class="lineno"> 634</span> std::string physicsLabel = <span class="stringliteral">&quot;Physics##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 635</span> </div>
<div class="line"><span class="lineno"> 636</span> <span class="keywordflow">if</span> (ImGui::Checkbox(physicsLabel.c_str(), &amp;isPhysicsEnabled)) </div>
<div class="line"><span class="lineno"> 637</span> {</div>
<div class="line"><span class="lineno"> 638</span> <span class="keywordflow">if</span> (isPhysicsEnabled &amp;&amp; !<a class="code hl_class" href="classphysics.html">physics</a>)</div>
<div class="line"><span class="lineno"> 639</span> {</div>
<div class="line"><span class="lineno"> 640</span> <span class="comment">// Ajouter un composant de physique</span></div>
<div class="line"><span class="lineno"> 641</span> <a class="code hl_class" href="classphysics.html">physics</a> = entity-&gt;AddComponent&lt;<a class="code hl_class" href="classecs_1_1_physics_component.html">ecs::PhysicsComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 642</span> <a class="code hl_class" href="classphysics.html">physics</a>-&gt;Initialize();</div>
<div class="line"><span class="lineno"> 643</span> }</div>
<div class="line"><span class="lineno"> 644</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!isPhysicsEnabled &amp;&amp; <a class="code hl_class" href="classphysics.html">physics</a>)</div>
<div class="line"><span class="lineno"> 645</span> {</div>
<div class="line"><span class="lineno"> 646</span> <span class="comment">// Retirer le composant de physique</span></div>
<div class="line"><span class="lineno"> 647</span> entity-&gt;RemoveComponent&lt;<a class="code hl_class" href="classecs_1_1_physics_component.html">ecs::PhysicsComponent</a>&gt;();</div>
<div class="line"><span class="lineno"> 648</span> <a class="code hl_class" href="classphysics.html">physics</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 649</span> }</div>
<div class="line"><span class="lineno"> 650</span> }</div>
<div class="line"><span class="lineno"> 651</span> </div>
<div class="line"><span class="lineno"> 652</span> <span class="keywordflow">if</span> (<a class="code hl_class" href="classphysics.html">physics</a>)</div>
<div class="line"><span class="lineno"> 653</span> {</div>
<div class="line"><span class="lineno"> 654</span> <span class="comment">// Gravity Enabled checkbox</span></div>
<div class="line"><span class="lineno"> 655</span> <span class="keywordtype">bool</span> gravityEnabled = <a class="code hl_class" href="classphysics.html">physics</a>-&gt;IsGravityEnabled();</div>
<div class="line"><span class="lineno"> 656</span> std::string gravityLabel = <span class="stringliteral">&quot;Gravity##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 657</span> <span class="keywordflow">if</span> (ImGui::Checkbox(gravityLabel.c_str(), &amp;gravityEnabled))</div>
<div class="line"><span class="lineno"> 658</span> {</div>
<div class="line"><span class="lineno"> 659</span> <a class="code hl_class" href="classphysics.html">physics</a>-&gt;SetGravityEnabled(gravityEnabled);</div>
<div class="line"><span class="lineno"> 660</span> }</div>
<div class="line"><span class="lineno"> 661</span> </div>
<div class="line"><span class="lineno"> 662</span> <span class="comment">// 3 radio buttons pour le type d&#39;objet physique avec IDs uniques</span></div>
<div class="line"><span class="lineno"> 663</span> std::string typeLabel = <span class="stringliteral">&quot;Type##&quot;</span> + std::to_string(identity-&gt;GetId());</div>
<div class="line"><span class="lineno"> 664</span> <a class="code hl_enumeration" href="namespaceecs.html#ab36dd172176a3da5558233694cbad4ae">ecs::ObjectType</a> type = identity-&gt;GetType();</div>
<div class="line"><span class="lineno"> 665</span> </div>
<div class="line"><span class="lineno"> 666</span> <span class="keywordflow">if</span> (ImGui::RadioButton((<span class="stringliteral">&quot;None##&quot;</span> + std::to_string(identity-&gt;GetId())).c_str(), </div>
<div class="line"><span class="lineno"> 667</span> type == ecs::ObjectType::Unknown))</div>
<div class="line"><span class="lineno"> 668</span> {</div>
<div class="line"><span class="lineno"> 669</span> identity-&gt;SetType(ecs::ObjectType::Unknown);</div>
<div class="line"><span class="lineno"> 670</span> }</div>
<div class="line"><span class="lineno"> 671</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 672</span> <span class="keywordflow">if</span> (ImGui::RadioButton((<span class="stringliteral">&quot;Cube##&quot;</span> + std::to_string(identity-&gt;GetId())).c_str(), </div>
<div class="line"><span class="lineno"> 673</span> type == ecs::ObjectType::Cube))</div>
<div class="line"><span class="lineno"> 674</span> {</div>
<div class="line"><span class="lineno"> 675</span> identity-&gt;SetType(ecs::ObjectType::Cube);</div>
<div class="line"><span class="lineno"> 676</span> }</div>
<div class="line"><span class="lineno"> 677</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 678</span> <span class="keywordflow">if</span> (ImGui::RadioButton((<span class="stringliteral">&quot;Sphere##&quot;</span> + std::to_string(identity-&gt;GetId())).c_str(), </div>
<div class="line"><span class="lineno"> 679</span> type == ecs::ObjectType::Sphere))</div>
<div class="line"><span class="lineno"> 680</span> {</div>
<div class="line"><span class="lineno"> 681</span> identity-&gt;SetType(ecs::ObjectType::Sphere);</div>
<div class="line"><span class="lineno"> 682</span> }</div>
<div class="line"><span class="lineno"> 683</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 684</span> <span class="keywordflow">if</span> (ImGui::RadioButton((<span class="stringliteral">&quot;Terrain##&quot;</span> + std::to_string(identity-&gt;GetId())).c_str(), </div>
<div class="line"><span class="lineno"> 685</span> type == ecs::ObjectType::Terrain))</div>
<div class="line"><span class="lineno"> 686</span> {</div>
<div class="line"><span class="lineno"> 687</span> identity-&gt;SetType(ecs::ObjectType::Terrain);</div>
<div class="line"><span class="lineno"> 688</span> }</div>
<div class="line"><span class="lineno"> 689</span> </div>
<div class="line"><span class="lineno"> 690</span> }</div>
<div class="line"><span class="lineno"> 691</span> </div>
<div class="line"><span class="lineno"> 692</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 693</span> }</div>
<div class="line"><span class="lineno"> 694</span> index++;</div>
<div class="line"><span class="lineno"> 695</span> }</div>
<div class="line"><span class="lineno"> 696</span> }</div>
<div class="line"><span class="lineno"> 697</span> </div>
<div class="line"><span class="lineno"> 698</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 699</span>}</div>
<div class="ttc" id="aclassecs_1_1_identity_component_html"><div class="ttname"><a href="classecs_1_1_identity_component.html">ecs::IdentityComponent</a></div><div class="ttdef"><b>Definition</b> <a href="identity__component_8h_source.html#l00018">identity_component.h:18</a></div></div>
<div class="ttc" id="aclassecs_1_1_physics_component_html"><div class="ttname"><a href="classecs_1_1_physics_component.html">ecs::PhysicsComponent</a></div><div class="ttdef"><b>Definition</b> <a href="physics__component_8h_source.html#l00009">physics_component.h:9</a></div></div>
<div class="ttc" id="aclassecs_1_1_render_component_html"><div class="ttname"><a href="classecs_1_1_render_component.html">ecs::RenderComponent</a></div><div class="ttdef"><b>Definition</b> <a href="render__component_8h_source.html#l00029">render_component.h:29</a></div></div>
<div class="ttc" id="aclassecs_1_1_shader_component_html"><div class="ttname"><a href="classecs_1_1_shader_component.html">ecs::ShaderComponent</a></div><div class="ttdef"><b>Definition</b> <a href="shader__component_8h_source.html#l00024">shader_component.h:24</a></div></div>
<div class="ttc" id="aclassecs_1_1_transform_component_html"><div class="ttname"><a href="classecs_1_1_transform_component.html">ecs::TransformComponent</a></div><div class="ttdef"><b>Definition</b> <a href="transform__component_8h_source.html#l00009">transform_component.h:9</a></div></div>
<div class="ttc" id="aclassphysics_html"><div class="ttname"><a href="classphysics.html">physics</a></div><div class="ttdef"><b>Definition</b> <a href="physics_8h_source.html#l00007">physics.h:8</a></div></div>
<div class="ttc" id="anamespaceecs_html_a80994feeebc2747495a80b5d4b2a8440"><div class="ttname"><a href="namespaceecs.html#a80994feeebc2747495a80b5d4b2a8440">ecs::ShaderType</a></div><div class="ttdeci">ShaderType</div><div class="ttdef"><b>Definition</b> <a href="shader__component_8h_source.html#l00010">shader_component.h:11</a></div></div>
<div class="ttc" id="anamespaceecs_html_ab36dd172176a3da5558233694cbad4ae"><div class="ttname"><a href="namespaceecs.html#ab36dd172176a3da5558233694cbad4ae">ecs::ObjectType</a></div><div class="ttdeci">ObjectType</div><div class="ttdef"><b>Definition</b> <a href="identity__component_8h_source.html#l00010">identity_component.h:11</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aef824217cf1d2248b63eba6f577dbed6" name="aef824217cf1d2248b63eba6f577dbed6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef824217cf1d2248b63eba6f577dbed6">&#9670;&#160;</a></span>WidgetRenderStats()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetRenderStats </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the stats of the engine. This includes FPS, draw calls, triangle count, etc. As well as the GPU, CPU information and RAM information. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l01018">1018</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 1019</span>{</div>
<div class="line"><span class="lineno"> 1020</span> ImGui::Begin(<span class="stringliteral">&quot;render Stats&quot;</span>);</div>
<div class="line"><span class="lineno"> 1021</span> </div>
<div class="line"><span class="lineno"> 1022</span> current_fps_ = stats_-&gt;get_current_fps();</div>
<div class="line"><span class="lineno"> 1023</span> min_fps_ = stats_-&gt;get_min_fps();</div>
<div class="line"><span class="lineno"> 1024</span> max_fps_ = stats_-&gt;get_max_fps();</div>
<div class="line"><span class="lineno"> 1025</span> draw_calls_ = stats_-&gt;get_draw_calls();</div>
<div class="line"><span class="lineno"> 1026</span> </div>
<div class="line"><span class="lineno"> 1027</span> </div>
<div class="line"><span class="lineno"> 1028</span> <span class="comment">// total_vertex_count_ = stats_-&gt;get_total_vertex_count();</span></div>
<div class="line"><span class="lineno"> 1029</span> <span class="comment">// total_triangle_count_ = stats_-&gt;get_total_triangle_count();</span></div>
<div class="line"><span class="lineno"> 1030</span> </div>
<div class="line"><span class="lineno"> 1031</span> visible_triangle_count_ = stats_-&gt;get_visible_triangle_count();</div>
<div class="line"><span class="lineno"> 1032</span> current_frame_time_ = stats_-&gt;get_frame_time();</div>
<div class="line"><span class="lineno"> 1033</span> </div>
<div class="line"><span class="lineno"> 1034</span> m_frameTimeHistory[m_frameTimeHistoryIndex] = current_frame_time_;</div>
<div class="line"><span class="lineno"> 1035</span> m_frameTimeHistoryIndex = (m_frameTimeHistoryIndex + 1) % FRAME_HISTORY_COUNT;</div>
<div class="line"><span class="lineno"> 1036</span> </div>
<div class="line"><span class="lineno"> 1037</span> ImGui::Text(<span class="stringliteral">&quot;FPS: %d&quot;</span>, current_fps_);</div>
<div class="line"><span class="lineno"> 1038</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 1039</span> ImGui::Text(<span class="stringliteral">&quot;Min Fps: %d&quot;</span>, min_fps_);</div>
<div class="line"><span class="lineno"> 1040</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 1041</span> ImGui::Text(<span class="stringliteral">&quot;Max Fps: %d&quot;</span>, max_fps_);</div>
<div class="line"><span class="lineno"> 1042</span> </div>
<div class="line"><span class="lineno"> 1043</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 1044</span> </div>
<div class="line"><span class="lineno"> 1045</span> <span class="comment">// Trouver les valeurs min/max pour l&#39;<EFBFBD>chelle du graphique</span></div>
<div class="line"><span class="lineno"> 1046</span> <span class="keywordtype">float</span> frameTimeMin = FLT_MAX;</div>
<div class="line"><span class="lineno"> 1047</span> <span class="keywordtype">float</span> frameTimeMax = 0.0f;</div>
<div class="line"><span class="lineno"> 1048</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; FRAME_HISTORY_COUNT; i++) {</div>
<div class="line"><span class="lineno"> 1049</span> <span class="keywordflow">if</span> (m_frameTimeHistory[i] &gt; 0.0f) {</div>
<div class="line"><span class="lineno"> 1050</span> frameTimeMin = min(frameTimeMin, m_frameTimeHistory[i]);</div>
<div class="line"><span class="lineno"> 1051</span> frameTimeMax = max(frameTimeMax, m_frameTimeHistory[i]);</div>
<div class="line"><span class="lineno"> 1052</span> }</div>
<div class="line"><span class="lineno"> 1053</span> }</div>
<div class="line"><span class="lineno"> 1054</span> <span class="comment">// S&#39;assurer d&#39;avoir au moins une petite plage</span></div>
<div class="line"><span class="lineno"> 1055</span> <span class="keywordflow">if</span> (frameTimeMax == 0.0f) frameTimeMax = 0.033f; <span class="comment">// ~30 FPS</span></div>
<div class="line"><span class="lineno"> 1056</span> <span class="keywordflow">if</span> (frameTimeMin == FLT_MAX) frameTimeMin = 0.0f;</div>
<div class="line"><span class="lineno"> 1057</span> </div>
<div class="line"><span class="lineno"> 1058</span> <span class="comment">// Ajouter 10% de marge pour la lisibilit<69></span></div>
<div class="line"><span class="lineno"> 1059</span> <span class="keywordtype">float</span> margin = (frameTimeMax - frameTimeMin) * 0.1f;</div>
<div class="line"><span class="lineno"> 1060</span> frameTimeMin = max(0.0f, frameTimeMin - margin);</div>
<div class="line"><span class="lineno"> 1061</span> frameTimeMax += margin;</div>
<div class="line"><span class="lineno"> 1062</span> </div>
<div class="line"><span class="lineno"> 1063</span> <span class="comment">// Afficher le graphique</span></div>
<div class="line"><span class="lineno"> 1064</span> ImGui::Text(<span class="stringliteral">&quot;Frame Time: %.3f ms&quot;</span>, current_frame_time_ * 1000.0f);</div>
<div class="line"><span class="lineno"> 1065</span> ImGui::PlotLines(<span class="stringliteral">&quot;FrameTimeGraph&quot;</span>, <span class="comment">// Au lieu de cha<68>ne vide &quot;&quot;</span></div>
<div class="line"><span class="lineno"> 1066</span> m_frameTimeHistory, </div>
<div class="line"><span class="lineno"> 1067</span> FRAME_HISTORY_COUNT, </div>
<div class="line"><span class="lineno"> 1068</span> m_frameTimeHistoryIndex, </div>
<div class="line"><span class="lineno"> 1069</span> <span class="stringliteral">&quot;&quot;</span>, </div>
<div class="line"><span class="lineno"> 1070</span> frameTimeMin, </div>
<div class="line"><span class="lineno"> 1071</span> frameTimeMax, </div>
<div class="line"><span class="lineno"> 1072</span> ImVec2(0, 80));</div>
<div class="line"><span class="lineno"> 1073</span> </div>
<div class="line"><span class="lineno"> 1074</span> ImGui::Text(<span class="stringliteral">&quot;Draw Calls: %d&quot;</span>, draw_calls_);</div>
<div class="line"><span class="lineno"> 1075</span> </div>
<div class="line"><span class="lineno"> 1076</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 1077</span> </div>
<div class="line"><span class="lineno"> 1078</span> ImGui::Text(<span class="stringliteral">&quot;Statistiques de rendu:&quot;</span>);</div>
<div class="line"><span class="lineno"> 1079</span> ImGui::Text(<span class="stringliteral">&quot;Vertices total: %d&quot;</span>, *total_vertex_count_);</div>
<div class="line"><span class="lineno"> 1080</span> </div>
<div class="line"><span class="lineno"> 1081</span> ImGui::Text(<span class="stringliteral">&quot;Triangles total: %d&quot;</span>, *total_triangle_count_);</div>
<div class="line"><span class="lineno"> 1082</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 1083</span> ImGui::Text(<span class="stringliteral">&quot;Triangles visibles: %d&quot;</span>, visible_triangle_count_);</div>
<div class="line"><span class="lineno"> 1084</span> </div>
<div class="line"><span class="lineno"> 1085</span> app_-&gt;get_direct_3d()-&gt;get_video_card_info(card_name_, video_memory_);</div>
<div class="line"><span class="lineno"> 1086</span> cpu_name_ = stats_-&gt;get_cpu_name();</div>
<div class="line"><span class="lineno"> 1087</span> version_driver_ = stats_-&gt;get_gpu_driver_version(app_-&gt;get_direct_3d()-&gt;get_device());</div>
<div class="line"><span class="lineno"> 1088</span> </div>
<div class="line"><span class="lineno"> 1089</span> ImGui::Columns(3, <span class="stringliteral">&quot;GPUCPURAMColumns&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 1090</span> ImGui::SetColumnWidth(0, ImGui::GetWindowWidth() * 0.33f);</div>
<div class="line"><span class="lineno"> 1091</span> ImGui::SetColumnWidth(1, ImGui::GetWindowWidth() * 0.33f);</div>
<div class="line"><span class="lineno"> 1092</span> </div>
<div class="line"><span class="lineno"> 1093</span> <span class="comment">// Premier collapsing header pour les informations GPU</span></div>
<div class="line"><span class="lineno"> 1094</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(<span class="stringliteral">&quot;Informations GPU&quot;</span>))</div>
<div class="line"><span class="lineno"> 1095</span> {</div>
<div class="line"><span class="lineno"> 1096</span> ImGui::Text(<span class="stringliteral">&quot;Carte graphique: %s&quot;</span>, card_name_);</div>
<div class="line"><span class="lineno"> 1097</span> ImGui::Text(<span class="stringliteral">&quot;Memoire video: %d Mo&quot;</span>, video_memory_);</div>
<div class="line"><span class="lineno"> 1098</span> ImGui::Text(<span class="stringliteral">&quot;Pilote: %s&quot;</span>, version_driver_.c_str());</div>
<div class="line"><span class="lineno"> 1099</span> }</div>
<div class="line"><span class="lineno"> 1100</span> </div>
<div class="line"><span class="lineno"> 1101</span> ImGui::NextColumn();</div>
<div class="line"><span class="lineno"> 1102</span> </div>
<div class="line"><span class="lineno"> 1103</span> <span class="comment">// Second collapsing header pour les informations CPU</span></div>
<div class="line"><span class="lineno"> 1104</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(<span class="stringliteral">&quot;Informations CPU&quot;</span>))</div>
<div class="line"><span class="lineno"> 1105</span> {</div>
<div class="line"><span class="lineno"> 1106</span> SYSTEM_INFO sysInfo;</div>
<div class="line"><span class="lineno"> 1107</span> GetSystemInfo(&amp;sysInfo);</div>
<div class="line"><span class="lineno"> 1108</span> ImGui::Text(<span class="stringliteral">&quot;Processeur: %s&quot;</span>, cpu_name_.c_str());</div>
<div class="line"><span class="lineno"> 1109</span> ImGui::Text(<span class="stringliteral">&quot;Nombre de coeurs: %u&quot;</span>, sysInfo.dwNumberOfProcessors);</div>
<div class="line"><span class="lineno"> 1110</span> ImGui::Text(<span class="stringliteral">&quot;Architecture: %s&quot;</span>, (sysInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) ? <span class="stringliteral">&quot;x64&quot;</span> : <span class="stringliteral">&quot;x86&quot;</span>);</div>
<div class="line"><span class="lineno"> 1111</span> ImGui::Text(<span class="stringliteral">&quot;Taille de la page: %u octets&quot;</span>, sysInfo.dwPageSize);</div>
<div class="line"><span class="lineno"> 1112</span> ImGui::Text(<span class="stringliteral">&quot;Taille du cache: %u octets&quot;</span>, sysInfo.dwAllocationGranularity);</div>
<div class="line"><span class="lineno"> 1113</span> ImGui::Text(<span class="stringliteral">&quot;Type de processeur: %u&quot;</span>, sysInfo.wProcessorLevel);</div>
<div class="line"><span class="lineno"> 1114</span> ImGui::Text(<span class="stringliteral">&quot;Version du processeur: %u&quot;</span>, sysInfo.wProcessorRevision);</div>
<div class="line"><span class="lineno"> 1115</span> }</div>
<div class="line"><span class="lineno"> 1116</span> </div>
<div class="line"><span class="lineno"> 1117</span> ImGui::NextColumn();</div>
<div class="line"><span class="lineno"> 1118</span> </div>
<div class="line"><span class="lineno"> 1119</span> <span class="keywordflow">if</span> (ImGui::CollapsingHeader(<span class="stringliteral">&quot;Informations RAM&quot;</span>))</div>
<div class="line"><span class="lineno"> 1120</span> {</div>
<div class="line"><span class="lineno"> 1121</span> MEMORYSTATUSEX mem_info;</div>
<div class="line"><span class="lineno"> 1122</span> mem_info.dwLength = <span class="keyword">sizeof</span>(MEMORYSTATUSEX);</div>
<div class="line"><span class="lineno"> 1123</span> GlobalMemoryStatusEx(&amp;mem_info);</div>
<div class="line"><span class="lineno"> 1124</span> ImGui::Text(<span class="stringliteral">&quot;Memoire totale: %llu Mo&quot;</span>, mem_info.ullTotalPhys / (1024 * 1024));</div>
<div class="line"><span class="lineno"> 1125</span> ImGui::Text(<span class="stringliteral">&quot;Memoire disponible: %llu Mo&quot;</span>, mem_info.ullAvailPhys / (1024 * 1024));</div>
<div class="line"><span class="lineno"> 1126</span> ImGui::Text(<span class="stringliteral">&quot;Memoire utilisee: %llu Mo&quot;</span>, (mem_info.ullTotalPhys - mem_info.ullAvailPhys) / (1024 * 1024));</div>
<div class="line"><span class="lineno"> 1127</span> }</div>
<div class="line"><span class="lineno"> 1128</span> </div>
<div class="line"><span class="lineno"> 1129</span> ImGui::Columns(1);</div>
<div class="line"><span class="lineno"> 1130</span> </div>
<div class="line"><span class="lineno"> 1131</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 1132</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab8dfce7344b08009a6e4343f66418cbf" name="ab8dfce7344b08009a6e4343f66418cbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8dfce7344b08009a6e4343f66418cbf">&#9670;&#160;</a></span>WidgetRenderWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetRenderWindow </td>
<td>(</td>
<td class="paramtype">ImVec2</td> <td class="paramname"><span class="paramname"><em>availableSize</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the scene. This window isn't used anymore. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00972">972</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 973</span>{</div>
<div class="line"><span class="lineno"> 974</span> ImGui::Begin(<span class="stringliteral">&quot;render Window&quot;</span>);</div>
<div class="line"><span class="lineno"> 975</span> </div>
<div class="line"><span class="lineno"> 976</span> ImVec2 oldWindowSize = windowSize;</div>
<div class="line"><span class="lineno"> 977</span> windowSize = ImGui::GetContentRegionAvail();</div>
<div class="line"><span class="lineno"> 978</span> </div>
<div class="line"><span class="lineno"> 979</span> <span class="comment">// Si la taille de la fen<65>tre a chang<6E>, ajustez la taille de la fen<65>tre de l&#39;application</span></div>
<div class="line"><span class="lineno"> 980</span> <span class="keywordflow">if</span> (oldWindowSize.x != windowSize.x || oldWindowSize.y != windowSize.y)</div>
<div class="line"><span class="lineno"> 981</span> {</div>
<div class="line"><span class="lineno"> 982</span> app_-&gt;set_window_size(windowSize);</div>
<div class="line"><span class="lineno"> 983</span> }</div>
<div class="line"><span class="lineno"> 984</span> </div>
<div class="line"><span class="lineno"> 985</span> </div>
<div class="line"><span class="lineno"> 986</span> <span class="comment">// Get the aspect ratio of the scene in app</span></div>
<div class="line"><span class="lineno"> 987</span> <span class="keywordtype">float</span> aspectRatio = app_-&gt;get_aspect_ratio();</div>
<div class="line"><span class="lineno"> 988</span> <span class="comment">// calculate the size of the window</span></div>
<div class="line"><span class="lineno"> 989</span> <span class="keywordflow">if</span> (windowSize.x / windowSize.y &gt; aspectRatio)</div>
<div class="line"><span class="lineno"> 990</span> {</div>
<div class="line"><span class="lineno"> 991</span> windowSize.x = windowSize.y * aspectRatio;</div>
<div class="line"><span class="lineno"> 992</span> }</div>
<div class="line"><span class="lineno"> 993</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 994</span> {</div>
<div class="line"><span class="lineno"> 995</span> windowSize.y = windowSize.x / aspectRatio;</div>
<div class="line"><span class="lineno"> 996</span> }</div>
<div class="line"><span class="lineno"> 997</span> </div>
<div class="line"><span class="lineno"> 998</span> ID3D11ShaderResourceView* texture = app_-&gt;get_scene_texture()-&gt;GetShaderResourceView();</div>
<div class="line"><span class="lineno"> 999</span> <span class="keywordflow">if</span> (texture)</div>
<div class="line"><span class="lineno"> 1000</span> {</div>
<div class="line"><span class="lineno"> 1001</span> </div>
<div class="line"><span class="lineno"> 1002</span> <span class="comment">// Affichez la scenne projet<65> sur texture dans une fen<65>tre ImGui</span></div>
<div class="line"><span class="lineno"> 1003</span> <span class="comment">// alpha blend is not enable to render the texture</span></div>
<div class="line"><span class="lineno"> 1004</span> </div>
<div class="line"><span class="lineno"> 1005</span> app_-&gt;get_direct_3d()-&gt;turn_z_buffer_off();</div>
<div class="line"><span class="lineno"> 1006</span> app_-&gt;get_direct_3d()-&gt;enable_alpha_blending();</div>
<div class="line"><span class="lineno"> 1007</span> </div>
<div class="line"><span class="lineno"> 1008</span> ImGui::Image((ImTextureID)texture, windowSize, ImVec2(0, 0), ImVec2(1, 1), ImVec4(1, 1, 1, 1));</div>
<div class="line"><span class="lineno"> 1009</span> }</div>
<div class="line"><span class="lineno"> 1010</span> <span class="keywordflow">else</span></div>
<div class="line"><span class="lineno"> 1011</span> {</div>
<div class="line"><span class="lineno"> 1012</span> ImGui::Text(<span class="stringliteral">&quot;render texture is not available.&quot;</span>);</div>
<div class="line"><span class="lineno"> 1013</span> }</div>
<div class="line"><span class="lineno"> 1014</span> </div>
<div class="line"><span class="lineno"> 1015</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 1016</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="af69a453ffe53d8db207fd7d4d76f20ab" name="af69a453ffe53d8db207fd7d4d76f20ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af69a453ffe53d8db207fd7d4d76f20ab">&#9670;&#160;</a></span>WidgetSpeedSlider()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetSpeedSlider </td>
<td>(</td>
<td class="paramtype">float *</td> <td class="paramname"><span class="paramname"><em>speed</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a slider widget to control the speed of the demo spinning cube. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">speed</td><td></td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00281">281</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 282</span>{</div>
<div class="line"><span class="lineno"> 283</span> ImGui::SliderFloat(<span class="stringliteral">&quot;Speed&quot;</span>, speed, 0.0f, 100.0f);</div>
<div class="line"><span class="lineno"> 284</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab5bc0ab6cfd9369bdadb72d589716e0d" name="ab5bc0ab6cfd9369bdadb72d589716e0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5bc0ab6cfd9369bdadb72d589716e0d">&#9670;&#160;</a></span>WidgetTerrainWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void imguiManager::WidgetTerrainWindow </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a window to display the terrain generation options. </p>
<p class="definition">Definition at line <a class="el" href="imgui_manager_8cpp_source.html#l00701">701</a> of file <a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 702</span>{</div>
<div class="line"><span class="lineno"> 703</span> ImGui::Begin(<span class="stringliteral">&quot;Terrain&quot;</span>, &amp;showTerrainWindow);</div>
<div class="line"><span class="lineno"> 704</span> </div>
<div class="line"><span class="lineno"> 705</span> ImGui::Text(<span class="stringliteral">&quot;Number of terrain cubes: %d&quot;</span>, app_-&gt;get_terrain_entity_count());</div>
<div class="line"><span class="lineno"> 706</span> </div>
<div class="line"><span class="lineno"> 707</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 708</span> </div>
<div class="line"><span class="lineno"> 709</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Generate Flat Terrain&quot;</span>))</div>
<div class="line"><span class="lineno"> 710</span> {</div>
<div class="line"><span class="lineno"> 711</span> app_-&gt;generate_terrain();</div>
<div class="line"><span class="lineno"> 712</span> }</div>
<div class="line"><span class="lineno"> 713</span> </div>
<div class="line"><span class="lineno"> 714</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 715</span> </div>
<div class="line"><span class="lineno"> 716</span> <span class="comment">// Input for the number of cubes on each side</span></div>
<div class="line"><span class="lineno"> 717</span> ImGui::Text(<span class="stringliteral">&quot;Number of cubes on each side: &quot;</span>);</div>
<div class="line"><span class="lineno"> 718</span> ImGui::SameLine();</div>
<div class="line"><span class="lineno"> 719</span> ImGui::InputInt(<span class="stringliteral">&quot;##SideCount&quot;</span>, &amp;m_SideCount);</div>
<div class="line"><span class="lineno"> 720</span> <span class="keywordflow">if</span> (m_SideCount &lt; 1)</div>
<div class="line"><span class="lineno"> 721</span> {</div>
<div class="line"><span class="lineno"> 722</span> m_SideCount = 1;</div>
<div class="line"><span class="lineno"> 723</span> }</div>
<div class="line"><span class="lineno"> 724</span> </div>
<div class="line"><span class="lineno"> 725</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 726</span> </div>
<div class="line"><span class="lineno"> 727</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Generate BigCube Terrain&quot;</span>))</div>
<div class="line"><span class="lineno"> 728</span> {</div>
<div class="line"><span class="lineno"> 729</span> app_-&gt;create_big_cube(m_SideCount);</div>
<div class="line"><span class="lineno"> 730</span> }</div>
<div class="line"><span class="lineno"> 731</span> </div>
<div class="line"><span class="lineno"> 732</span> ImGui::Separator();</div>
<div class="line"><span class="lineno"> 733</span> </div>
<div class="line"><span class="lineno"> 734</span> <span class="keywordflow">if</span> (ImGui::Button(<span class="stringliteral">&quot;Delete All Terrain Cubes&quot;</span>))</div>
<div class="line"><span class="lineno"> 735</span> {</div>
<div class="line"><span class="lineno"> 736</span> app_-&gt;delete_terrain();</div>
<div class="line"><span class="lineno"> 737</span> }</div>
<div class="line"><span class="lineno"> 738</span> </div>
<div class="line"><span class="lineno"> 739</span> </div>
<div class="line"><span class="lineno"> 740</span> </div>
<div class="line"><span class="lineno"> 741</span> ImGui::End();</div>
<div class="line"><span class="lineno"> 742</span>}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a1715bb75f2b7b1987da8ca4e66f87091" name="a1715bb75f2b7b1987da8ca4e66f87091"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1715bb75f2b7b1987da8ca4e66f87091">&#9670;&#160;</a></span>m_EnableCelShading</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool imguiManager::m_EnableCelShading</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="imgui_manager_8h_source.html#l00146">146</a> of file <a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>enginecustom/src/inc/system/<a class="el" href="imgui_manager_8h_source.html">imguiManager.h</a></li>
<li>enginecustom/src/src/system/<a class="el" href="imgui_manager_8cpp_source.html">imguiManager.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classimgui_manager.html">imguiManager</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
</ul>
</div>
</body>
</html>