Files
dl/document/html/dl__vk_8h_source.html
T
2026-09-16 14:07:40 +08:00

1846 lines
377 KiB
HTML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="zh">
<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.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/vk/dl_vk.h 源文件</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="resize.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">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<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('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_f3f071c0dbef45ad74a3835f45225495.html">vk</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_vk.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__vk_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#ifndef DL_DISABLE_RENDER</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;optional&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="dl__platform_8h.html">system/dl_platform.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#if (DL_PLATFORM != DL_PLATFORM_ANDROID)</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define GLFW_INCLUDE_VULKAN</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;vulkan/vulkan.h&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;vulkan/vulkan_android.h&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &quot;<a class="code" href="dl__android_8h.html">system/dl_android.h</a>&quot;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#if DL_PLATFORM == DL_PLATFORM_APPLE</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;vulkan/vulkan.h&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include &lt;vulkan/vulkan_beta.h&gt;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include &quot;<a class="code" href="dl__log_8h.html">io/dl_log.h</a>&quot;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#include &quot;<a class="code" href="dl__matrix_8h.html">math/dl_matrix.h</a>&quot;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include &quot;<a class="code" href="dl__sprite_8h.html">render/dl_sprite.h</a>&quot;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#include &quot;<a class="code" href="dl__type__user_8h.html">base/dl_type_user.h</a>&quot;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include &quot;<a class="code" href="dl__buffer_8h.html">memory/dl_buffer.h</a>&quot;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#include &quot;<a class="code" href="dl__vertex_8h.html">vk/dl_vertex.h</a>&quot;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#include &quot;<a class="code" href="dl__image_8h.html">render/dl_image.h</a>&quot;</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#include &quot;<a class="code" href="dl__model_8h.html">render/dl_model.h</a>&quot;</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#include &quot;<a class="code" href="dl__color_8h.html">base/dl_color.h</a>&quot;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#include &quot;<a class="code" href="dl__model__object_8h.html">render/dl_model_object.h</a>&quot;</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#include &quot;<a class="code" href="dl__camera_8h.html">render/dl_camera.h</a>&quot;</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#include &quot;<a class="code" href="dl__render__def_8h.html">render/dl_render_def.h</a>&quot;</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#include &quot;<a class="code" href="dl__light_8h.html">render/dl_light.h</a>&quot;</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#include &quot;<a class="code" href="dl__vector__reuse_8h.html">base/dl_vector_reuse.h</a>&quot;</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#include &quot;<a class="code" href="dl__object__pool_8h.html">base/dl_object_pool.h</a>&quot;</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#include &quot;<a class="code" href="dl__thread__task_8h.html">io/dl_thread_task.h</a>&quot;</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>{</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">//交换链支持细节</span></div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structdl_1_1_swap_chain_support_details.html"> 56</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_swap_chain_support_details.html">SwapChainSupportDetails</a></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>{</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structdl_1_1_swap_chain_support_details.html#a84c56804ef0f044e54ef63468c17f32b"> 58</a></span> VkSurfaceCapabilitiesKHR <a class="code hl_variable" href="structdl_1_1_swap_chain_support_details.html#a84c56804ef0f044e54ef63468c17f32b">_capabilities</a>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structdl_1_1_swap_chain_support_details.html#a7924822399a8f7311f2684f89b3db162"> 59</a></span> std::vector&lt;VkSurfaceFormatKHR&gt; <a class="code hl_variable" href="structdl_1_1_swap_chain_support_details.html#a7924822399a8f7311f2684f89b3db162">_formats</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structdl_1_1_swap_chain_support_details.html#a4604df0c3d1614d77c177664cafe8824"> 60</a></span> std::vector&lt;VkPresentModeKHR&gt; <a class="code hl_variable" href="structdl_1_1_swap_chain_support_details.html#a4604df0c3d1614d77c177664cafe8824">_presentModes</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>};</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">//</span></div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="};">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html"> 64</a></span><span class="keyword">struct </span><a class="code hl_function" href="structdl_1_1_texture.html#ae3531cc8486d1a19b4f861c2f3028b4e">Texture</a></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>{</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8"> 66</a></span> VkImage <a class="code hl_variable" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">_image</a>; <span class="comment">// 纹理图像</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#aa5ae7225d74f77c00b3e4c48721066ce"> 67</a></span> VkDeviceMemory <a class="code hl_variable" href="structdl_1_1_texture.html#aa5ae7225d74f77c00b3e4c48721066ce">_memory</a>; <span class="comment">// 纹理图像内存</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#a06c88d7aec6126755b4d487defeeca02"> 68</a></span> VkImageView <a class="code hl_variable" href="structdl_1_1_texture.html#a06c88d7aec6126755b4d487defeeca02">_imageView</a>; <span class="comment">// 纹理图像视图</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// 以下不保证填充</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#aa8548b1bb4e97404147b7914eaa661a9"> 70</a></span> uint32_t <a class="code hl_variable" href="structdl_1_1_texture.html#aa8548b1bb4e97404147b7914eaa661a9">_mipLevel</a>; <span class="comment">// mipmap数(和图像大小有关)</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#a8c9c0ea7feb15dfe6fcb7098ea41c1a6"> 71</a></span> uint32_t <a class="code hl_variable" href="structdl_1_1_texture.html#a8c9c0ea7feb15dfe6fcb7098ea41c1a6">_width</a>; <span class="comment">// 宽,仅2d管线的纹理填充</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#aea31659ec6e955704f6c840150b6055c"> 72</a></span> uint32_t <a class="code hl_variable" href="structdl_1_1_texture.html#aea31659ec6e955704f6c840150b6055c">_height</a>; <span class="comment">// 高,仅2d管线的纹理填充</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="foldopen" id="foldopen00074" data-start="{" data-end="}">
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#ae3531cc8486d1a19b4f861c2f3028b4e"> 74</a></span> <a class="code hl_function" href="structdl_1_1_texture.html#ae3531cc8486d1a19b4f861c2f3028b4e">Texture</a>() :</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_variable" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">_image</a>{ VK_NULL_HANDLE },</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_variable" href="structdl_1_1_texture.html#aa5ae7225d74f77c00b3e4c48721066ce">_memory</a>{ VK_NULL_HANDLE },</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_variable" href="structdl_1_1_texture.html#a06c88d7aec6126755b4d487defeeca02">_imageView</a>{ VK_NULL_HANDLE },</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_variable" href="structdl_1_1_texture.html#aa8548b1bb4e97404147b7914eaa661a9">_mipLevel</a>{ 0 },</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_variable" href="structdl_1_1_texture.html#a8c9c0ea7feb15dfe6fcb7098ea41c1a6">_width</a>{ 0 },</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_variable" href="structdl_1_1_texture.html#aea31659ec6e955704f6c840150b6055c">_height</a>{ 0 }</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> {}</div>
</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="foldopen" id="foldopen00083" data-start="{" data-end="}">
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#ac1955fe2f1de5a8741a9dd1133827b86"> 83</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structdl_1_1_texture.html#ac1955fe2f1de5a8741a9dd1133827b86">IsVaild</a>()</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">_image</a> != VK_NULL_HANDLE;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="foldopen" id="foldopen00088" data-start="{" data-end="}">
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structdl_1_1_texture.html#a715c53e7eb0602849c0c8cef6249e38b"> 88</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_texture.html#a715c53e7eb0602849c0c8cef6249e38b">Delete</a>(VkDevice device)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> vkDestroyImageView(device, <a class="code hl_variable" href="structdl_1_1_texture.html#a06c88d7aec6126755b4d487defeeca02">_imageView</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> vkDestroyImage(device, <a class="code hl_variable" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">_image</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> vkFreeMemory(device, <a class="code hl_variable" href="structdl_1_1_texture.html#aa5ae7225d74f77c00b3e4c48721066ce">_memory</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <a class="code hl_variable" href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">_image</a> = VK_NULL_HANDLE;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span>};</div>
</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">// 最大图元数</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="namespacedl.html#a0c68591dd4f98c2430a7c2d6e2ecef30"> 99</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a0c68591dd4f98c2430a7c2d6e2ecef30">NUM_MAX_PRIMITIVE</a> = 1024;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">// 最大材质数(ubMaterial</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="namespacedl.html#abd1df5b1aba350d46b9e01f0583c9dc6"> 101</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#abd1df5b1aba350d46b9e01f0583c9dc6">NUM_MAX_MATERIAL</a> = 256;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment">// 最大骨骼实例(ubBone</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="namespacedl.html#aeb7cf92a5d22d874def862e2d7794a6f"> 103</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aeb7cf92a5d22d874def862e2d7794a6f">NUM_MAX_BONE</a> = 128;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">// 单个实例最大骨骼数(ubBone[96])与shader一致</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="namespacedl.html#a04bd47520534f61a9d2c56c7578788a4"> 105</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a04bd47520534f61a9d2c56c7578788a4">NUM_MAX_JOINT</a> = 256;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// 平行光数量 与shader一致</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="namespacedl.html#aa9e306f5969aeaa70bf42e9d22828be7"> 107</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aa9e306f5969aeaa70bf42e9d22828be7">NUM_MAX_LIGHT_DIR</a> = 3;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment">// 点光源数量 与shader一致</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="namespacedl.html#a60ab1d3fd34ce519d28208bb0857fc60"> 109</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a60ab1d3fd34ce519d28208bb0857fc60">NUM_MAX_LIGHT_DOT</a> = 10;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">// 聚光灯数量 与shader一致</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="namespacedl.html#aa750672525173ab3f22fcf9dacd46b74"> 111</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aa750672525173ab3f22fcf9dacd46b74">NUM_MAX_LIGHT_SPOT</a> = 3;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment">// 灯光数量</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="namespacedl.html#ada0b54718331268729bd35158ee1fde1"> 113</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ada0b54718331268729bd35158ee1fde1">NUM_MAX_LIGHT</a> = <a class="code hl_variable" href="namespacedl.html#aa9e306f5969aeaa70bf42e9d22828be7">NUM_MAX_LIGHT_DIR</a> + <a class="code hl_variable" href="namespacedl.html#a60ab1d3fd34ce519d28208bb0857fc60">NUM_MAX_LIGHT_DOT</a> + <a class="code hl_variable" href="namespacedl.html#aa750672525173ab3f22fcf9dacd46b74">NUM_MAX_LIGHT_SPOT</a>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">// csm级数</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="namespacedl.html#a2516f2b5fbe9f3acd68884ef42356298"> 115</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a2516f2b5fbe9f3acd68884ef42356298">NUM_SHADOW_CASCADE</a> = 4;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment">// csm贴图大小</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="namespacedl.html#a6e8914f697e225c95c3cd71c0ff98869"> 117</a></span><span class="keyword">constexpr</span> uint32_t <a class="code hl_variable" href="namespacedl.html#a6e8914f697e225c95c3cd71c0ff98869">SIZE_SHADOW_IMAGE</a> = 2048;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment">// csm贴图格式</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="namespacedl.html#a0dbe99b83ed9ea61ae8356ceb03226cd"> 119</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#a0dbe99b83ed9ea61ae8356ceb03226cd">FORMAT_SHADOW_IMAGE</a> = VK_FORMAT_D32_SFLOAT;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment">// 最大drawcall数(2d</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="namespacedl.html#ade7279a2ffb83b2f5ef74a2680524999"> 124</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ade7279a2ffb83b2f5ef74a2680524999">NUM_MAX_DRAW_CALL_2D</a> = 100;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment">// 最大精灵数</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="namespacedl.html#af91ff7e5e658ad613ab1651b06f3d8e0"> 126</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#af91ff7e5e658ad613ab1651b06f3d8e0">NUM_MAX_2D_SPRITE</a> = 402400;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment">// 单个drawcall索引数(2d</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacedl.html#ac81a62f19054484fae1ee54659dbd3e1"> 128</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ac81a62f19054484fae1ee54659dbd3e1">NUM_2D_INDEX</a> = 6 * <a class="code hl_variable" href="namespacedl.html#af91ff7e5e658ad613ab1651b06f3d8e0">NUM_MAX_2D_SPRITE</a>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment">// 初始Canvas顶点数</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="namespacedl.html#a2c3039411216ea20f44f7e217361d7ef"> 130</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a2c3039411216ea20f44f7e217361d7ef">NUM_START_2D_VERTEX</a> = 4 * 1024;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment">// 最大根坐标系数(2d的cbo数)</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacedl.html#a5375863f23952e6372159f5214e3eab3"> 132</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a5375863f23952e6372159f5214e3eab3">NUM_MAX_ROOT_COOR</a> = 32;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment">// 2d纹理空闲时间后自动释放(毫秒)</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacedl.html#a371350ae491c9592b13c9af249b6e081"> 134</a></span><span class="keyword">constexpr</span> <span class="keywordtype">unsigned</span> <a class="code hl_variable" href="namespacedl.html#a371350ae491c9592b13c9af249b6e081">TIME_FREE_TEXTURE_2D</a> = 60 * 1000;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment">// 2d采样器数量</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="namespacedl.html#ae1798b2a7927f71f7f28a5e522c2d6a8"> 136</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ae1798b2a7927f71f7f28a5e522c2d6a8">NUM_2D_SAMPLER</a> = 3;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment">// 样本着色(更高级的多重采样,基本不会使用)</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="namespacedl.html#a0f023ca98a60547c05a338175fde4558"> 139</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#a0f023ca98a60547c05a338175fde4558">OPEN_SAMPLE_SHADING</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment">// 线框模式(很多设备不支持)</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacedl.html#ac4b23ab1cb534d8bb07b9c98bec19e91"> 141</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#ac4b23ab1cb534d8bb07b9c98bec19e91">OPEN_FILL_MODE_NON_SOLID</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">// 验证层</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor">#ifdef NDEBUG</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248">ENABLE_VALIDATION_LAYERS</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">// linux开启验证层有问题</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor">#if (DL_PLATFORM == DL_PLATFORM_WIN32)</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248"> 149</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248">ENABLE_VALIDATION_LAYERS</a> = <span class="keyword">true</span>;<span class="comment">// obs注入时有问题</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248">ENABLE_VALIDATION_LAYERS</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment">// 最大演员实例数量</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="namespacedl.html#aea4572df7c53151559eb665c602a3563"> 157</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aea4572df7c53151559eb665c602a3563">NUM_MAX_ACTOR</a> = 10240;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment">// gfx顶点数(默认,会自动扩容)</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="namespacedl.html#aaa0846231d4bcabe731952de09f3f5fa"> 160</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aaa0846231d4bcabe731952de09f3f5fa">NUM_GFX_VERTEX</a> = 1024;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">// gfx定义(请勿修改)</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="namespacedl.html#a6425841a05a75a4926fb13ff2e1388e0"> 163</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a6425841a05a75a4926fb13ff2e1388e0">INDEX_GFX_3D_NORMAL_DOT</a> = 0;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="namespacedl.html#aa6886dc5b2b54466f11cead6721ca61d"> 164</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aa6886dc5b2b54466f11cead6721ca61d">INDEX_GFX_3D_NORMAL_LINE</a> = 1;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="namespacedl.html#acd214f144ca1b4c6b06da17ee0e11091"> 165</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#acd214f144ca1b4c6b06da17ee0e11091">INDEX_GFX_3D_NORMAL_TRIANGLE</a> = 2;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="namespacedl.html#a2b7f6b089bf1ba9ba9b5d88b5883829d"> 166</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a2b7f6b089bf1ba9ba9b5d88b5883829d">INDEX_GFX_2D_NORMAL_DOT</a> = 3;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="namespacedl.html#aebf3de85df907155866fa32c238c82f3"> 167</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#aebf3de85df907155866fa32c238c82f3">INDEX_GFX_2D_NORMAL_LINE</a> = 4;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacedl.html#a8ece0740ccacd906701e5308e7818876"> 168</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a8ece0740ccacd906701e5308e7818876">INDEX_GFX_2D_NORMAL_TRIANGLE</a> = 5;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="namespacedl.html#accd0ee3aa1bda9d76d3339ae487def4d"> 169</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#accd0ee3aa1bda9d76d3339ae487def4d">INDEX_GFX_3D_TRANS_DOT</a> = 6;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="namespacedl.html#ad14c01f7796e2034aa82f191ead00aaf"> 170</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ad14c01f7796e2034aa82f191ead00aaf">INDEX_GFX_3D_TRANS_LINE</a> = 7;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacedl.html#ac7069b608583c6ce0ab11ea567818c47"> 171</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ac7069b608583c6ce0ab11ea567818c47">INDEX_GFX_3D_TRANS_TRIANGLE</a> = 8;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="namespacedl.html#a35881f293a0ff74ff06bf0b967282e5c"> 172</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a35881f293a0ff74ff06bf0b967282e5c">INDEX_GFX_2D_TRANS_DOT</a> = 9;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="namespacedl.html#af30269ff81c0aceb566feb5faaceb84b"> 173</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#af30269ff81c0aceb566feb5faaceb84b">INDEX_GFX_2D_TRANS_LINE</a> = 10;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacedl.html#a5c8ebd12426bc92665d96d319f975b9d"> 174</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a5c8ebd12426bc92665d96d319f975b9d">INDEX_GFX_2D_TRANS_TRIANGLE</a> = 11;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="namespacedl.html#ab36081b145974249823be52df1867f95"> 175</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#ab36081b145974249823be52df1867f95">NUM_GFX</a> = 12;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f"> 176</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a> = 6;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d"> 177</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d">NUM_GFX_QUAD</a> = 3;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment">// 持久映射2d ubo(效率似乎差不多)</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="namespacedl.html#a1fd7d6b85400017524ef3bbaf8796c36"> 180</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacedl.html#a1fd7d6b85400017524ef3bbaf8796c36">USE_MAPPED_2D_UBO</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment">// 交换链表面格式</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="namespacedl.html#a39050300432fb6f42f458fa14f4b22ac"> 183</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#a39050300432fb6f42f458fa14f4b22ac">DL_VK_FORMAT_SURFACE</a> = VK_FORMAT_B8G8R8A8_SRGB;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="namespacedl.html#a60cddf3b9c8fee3342852de4c234d6d4"> 184</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#a60cddf3b9c8fee3342852de4c234d6d4">DL_VK_FORMAT_SRGB</a> = VK_FORMAT_B8G8R8A8_SRGB;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="namespacedl.html#a1cb492c10e54ad38c343604042dbcc73"> 185</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#a1cb492c10e54ad38c343604042dbcc73">DL_VK_FORMAT_UNORM</a> = VK_FORMAT_B8G8R8A8_UNORM;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="namespacedl.html#a772647ed3c402de7e89258810346639b"> 186</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#a772647ed3c402de7e89258810346639b">DL_VK_FORMAT_SRGB_TEXTURE</a> = VK_FORMAT_R8G8B8A8_SRGB;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="namespacedl.html#aa305f9d3c5ff152f8f4f2d23ce56864a"> 187</a></span><span class="keyword">constexpr</span> VkFormat <a class="code hl_variable" href="namespacedl.html#aa305f9d3c5ff152f8f4f2d23ce56864a">DL_VK_FORMAT_UNORM_TEXTURE</a> = VK_FORMAT_R8G8B8A8_UNORM;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span></div>
<div class="foldopen" id="foldopen00190" data-start="{" data-end="};">
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html"> 190</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>{</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="};">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_object.html"> 193</a></span> <span class="keyword">struct </span><span class="keyword">alignas</span>(16) <a class="code hl_struct" href="structdl_1_1_v_k_1_1_ub_object.html">UbObject</a></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_object.html#aab305c59dbff7008a3e6cd518b1a3e4d"> 195</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ub_object.html#aab305c59dbff7008a3e6cd518b1a3e4d">_proj</a>;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_object.html#afcc63670bead53cbaa5666c97280ba3e"> 196</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ub_object.html#afcc63670bead53cbaa5666c97280ba3e">_view</a>;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_object.html#a7d056069d7bb7f43bd2bcab84bda1f95"> 197</a></span> <a class="code hl_typedef" href="namespacedl.html#a8caf4bcf54955de2e79b95811306b841">Position3</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ub_object.html#a7d056069d7bb7f43bd2bcab84bda1f95">_camPos</a>;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_object.html#a10a836dd52c513d013e9f1611d4b9f5c"> 198</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ub_object.html#a10a836dd52c513d013e9f1611d4b9f5c">_pad</a>;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> };</div>
</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// push const 至少支持128</span></div>
<div class="foldopen" id="foldopen00201" data-start="{" data-end="};">
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_data.html"> 201</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_push_constant_data.html">PushConstantData</a></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> {</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_data.html#ab281992103fa9be016e4fc81d4fe5519"> 203</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_push_constant_data.html#ab281992103fa9be016e4fc81d4fe5519">_model</a>;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_data.html#a124f27bbcb1418a784e334c20e0f1c99"> 204</a></span> <a class="code hl_typedef" href="namespacedl.html#ab0aa26817739678b786d66b6c9f50ae7">Color</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_push_constant_data.html#a124f27bbcb1418a784e334c20e0f1c99">_color</a>;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }; </div>
</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">static_assert</span>(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structdl_1_1_v_k_1_1_push_constant_data.html">PushConstantData</a>) &lt;= 128);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// 阴影</span></div>
<div class="foldopen" id="foldopen00208" data-start="{" data-end="};">
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_c_s_m.html"> 208</a></span> <span class="keyword">struct </span><span class="keyword">alignas</span>(16) <a class="code hl_struct" href="structdl_1_1_v_k_1_1_ub_c_s_m.html">UbCSM</a></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> {</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ub_c_s_m.html#af437cab30b357a8d03abfcaf51172030"> 210</a></span> std::array&lt;Matrix4, NUM_SHADOW_CASCADE&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ub_c_s_m.html#af437cab30b357a8d03abfcaf51172030">_viewProj</a>;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> };</div>
</div>
<div class="foldopen" id="foldopen00212" data-start="{" data-end="};">
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html"> 212</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html">PushConstantCSM</a></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a864b3dba721156b9f2a4fbccb25666c1"> 214</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a864b3dba721156b9f2a4fbccb25666c1">_model</a>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a38e88e750d82d4d4d623b42598b47faf"> 215</a></span> uint32_t <a class="code hl_variable" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a38e88e750d82d4d4d623b42598b47faf">_cascadeIndex</a>;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> };</div>
</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">static_assert</span>(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html">PushConstantCSM</a>) &lt;= 128);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// 骨骼</span></div>
<div class="foldopen" id="foldopen00219" data-start="{" data-end="};">
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ubo_bone.html"> 219</a></span> <span class="keyword">struct </span><span class="keyword">alignas</span>(16) <a class="code hl_struct" href="structdl_1_1_v_k_1_1_ubo_bone.html">UboBone</a></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_ubo_bone.html#a60b81de6243cc39e2ec54f793906decd"> 221</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_ubo_bone.html#a60b81de6243cc39e2ec54f793906decd">_trans</a>[<a class="code hl_variable" href="namespacedl.html#a04bd47520534f61a9d2c56c7578788a4">NUM_MAX_JOINT</a>];</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> };</div>
</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// 图元,单次draw call,多个实例共享的</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">//(变换和骨骼动画是实例化的,不放这里)</span></div>
<div class="foldopen" id="foldopen00226" data-start="{" data-end="};">
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html"> 226</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_primitive.html">Primitive</a></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#ac7d49b127ee00214c45b0670e07033b4"> 228</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#ac7d49b127ee00214c45b0670e07033b4">_idMaterial</a>;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#a06361352a051427d4232f41af0cebd47"> 229</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#a06361352a051427d4232f41af0cebd47">_idTexDiffuse</a>;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#a9736cde7d13df48b09e6c7231d1603ac"> 230</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#a9736cde7d13df48b09e6c7231d1603ac">_idTexPhysical</a>;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#a65fd9a698f3ae1b062145d2b85ea4563"> 231</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#a65fd9a698f3ae1b062145d2b85ea4563">_idTexNormal</a>;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#a153481f409bac2ee89489182f72595a7"> 232</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#a153481f409bac2ee89489182f72595a7">_idTexAo</a>;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_primitive.html#afbb8a4fb77aac123cfd678d0f1b14525"> 233</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_primitive.html#afbb8a4fb77aac123cfd678d0f1b14525">_idTexEmissive</a>;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> };</div>
</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="foldopen" id="foldopen00236" data-start="{" data-end="};">
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html"> 236</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#a36e1e3e43091a38828cf52548b719499">Canvas</a></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735"> 238</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a>; <span class="comment">// 【带锁】当前使用纹理</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113"> 239</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a>; <span class="comment">// 【带锁】创建full后,旧的fast纹理存这里</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383"> 240</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383">_tkcUsed</a>; <span class="comment">// 使用时间戳</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50"> 241</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a>; <span class="comment">// 0.不需要动态加载 1.使用的小图 2.加载中 3.待更新描述符 4.使用的大图</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a"> 242</a></span> std::mutex <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7"> 244</a></span> std::string <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7">_pathTextureFull</a>; <span class="comment">// 为空表示本身就是使用的full纹理</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f"> 245</a></span> std::vector&lt;VkBuffer&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f">_vertexBuffer</a>; <span class="comment">// 顶点缓冲(每帧改变)</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a6c50337063a7db962d0aaa24fc53c8aa"> 246</a></span> std::vector&lt;VkDeviceMemory&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a6c50337063a7db962d0aaa24fc53c8aa">_vertexBufferMemory</a>;<span class="comment">// 顶点缓冲内存</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#ae87a2e1de85bd48544f15e01138a1c0b"> 247</a></span> std::vector&lt;VkDeviceSize&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae87a2e1de85bd48544f15e01138a1c0b">_vertexBufferSize</a>; <span class="comment">// 顶点缓冲大小</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a067de92365d4c72d306d1b1a3a87345a"> 249</a></span> std::vector&lt;Sprite*&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a067de92365d4c72d306d1b1a3a87345a">_allSprite</a>;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#af35cc6e9200740bca27907f871a172ab"> 250</a></span> std::vector&lt;Sprite*&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#af35cc6e9200740bca27907f871a172ab">_allSpriteTrans</a>;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a43efdb2eff106355dfc9e05ff2b9eaf4"> 252</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a43efdb2eff106355dfc9e05ff2b9eaf4">_id</a>;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#adfad6b6945d0f7e4f14d41573154eca2"> 253</a></span> std::vector&lt;size_t&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#adfad6b6945d0f7e4f14d41573154eca2">_numVertex</a>;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="foldopen" id="foldopen00255" data-start="{" data-end="}">
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a36e1e3e43091a38828cf52548b719499"> 255</a></span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#a36e1e3e43091a38828cf52548b719499">Canvas</a>(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk) :</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383">_tkcUsed</a>{ 0 },</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a>{ 0 }</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> {</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f">_vertexBuffer</a>.resize(vk-&gt;_countFrame);</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a6c50337063a7db962d0aaa24fc53c8aa">_vertexBufferMemory</a>.resize(vk-&gt;_countFrame);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae87a2e1de85bd48544f15e01138a1c0b">_vertexBufferSize</a>.resize(vk-&gt;_countFrame);</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#adfad6b6945d0f7e4f14d41573154eca2">_numVertex</a>.resize(vk-&gt;_countFrame);</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> }</div>
</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="foldopen" id="foldopen00265" data-start="{" data-end="}">
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#ae77869746a244d96395f36ca80c7acb2"> 265</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#ae77869746a244d96395f36ca80c7acb2">TryRelase</a>(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk, <span class="keywordtype">unsigned</span> tkc)</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> != 4)</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">bool</span> clear = <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383">_tkcUsed</a> &amp;&amp; tkc &gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383">_tkcUsed</a> + <a class="code hl_variable" href="namespacedl.html#a371350ae491c9592b13c9af249b6e081">TIME_FREE_TEXTURE_2D</a>;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (!clear)</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// 尝试锁住纹理</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.try_lock())</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> vkDeviceWaitIdle(vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181">GetDevice</a>());</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="comment">// 释放大图</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a>.Delete(vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181">GetDevice</a>());</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// 切换至小图</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a> = <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a>;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a> = <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a>{};</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// 更新描述符</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#aebce2badac2dd76f69fe4947881a34d3">UpdateCanvasDescriptor</a>(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.unlock();</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> = 1;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <a class="code hl_define" href="dl__log_8h.html#a156fd6dffd62306e07b5b77739680688">log_msg</a>(<span class="stringliteral">&quot;Canvas纹理释放:{}&quot;</span>, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7">_pathTextureFull</a>);</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> }</div>
</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> </div>
<div class="foldopen" id="foldopen00290" data-start="{" data-end="}">
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#af33b94b67bd7218d758f834f1748b0c1"> 290</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#af33b94b67bd7218d758f834f1748b0c1">TryLoad</a>(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk)</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> == 1)</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> = 2;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html">TextureManager::TaskLoad</a> task;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> task.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html#abf71301d27ad5d8fd00340bb2140c90b">_idCanvas</a> = <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a43efdb2eff106355dfc9e05ff2b9eaf4">_id</a>;</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> vk-&gt;_textureMgr._mtt.AddTask(task);</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> == 3)</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> {</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> vkDeviceWaitIdle(vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181">GetDevice</a>());</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#aebce2badac2dd76f69fe4947881a34d3">UpdateCanvasDescriptor</a>(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> = 4;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <a class="code hl_define" href="dl__log_8h.html#a156fd6dffd62306e07b5b77739680688">log_msg</a>(<span class="stringliteral">&quot;Canvas纹理加载:{}&quot;</span>, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7">_pathTextureFull</a>);</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// 【多线程调用】</span></div>
<div class="foldopen" id="foldopen00309" data-start="{" data-end="}">
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#a3af786f87cd62fa7e81cfb46a1eb4fcd"> 309</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#a3af786f87cd62fa7e81cfb46a1eb4fcd">RealLoad</a>(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk)</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> {</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> assert(<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> == 2);</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> tex;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> vk-&gt;_create_texture_ktx(<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7">_pathTextureFull</a>, tex);</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.lock();</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a> =<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a>;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a> = tex;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.unlock();</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">_textureState</a> = 3;</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> }</div>
</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> </div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="foldopen" id="foldopen00322" data-start="{" data-end="}">
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_canvas.html#aef28bd28fd2500f5ed46e9c676d468c7"> 322</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#aef28bd28fd2500f5ed46e9c676d468c7">Delete</a>(VkDevice device)</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> {</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.lock();</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">_texture</a>.Delete(device);</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a>.IsVaild())</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">_textureFast</a>.Delete(device);</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">_mutex</a>.unlock();</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f">_vertexBuffer</a>.size(); ++i)</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> {</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> vkDestroyBuffer(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f">_vertexBuffer</a>[i], <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> vkFreeMemory(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_canvas.html#a6c50337063a7db962d0aaa24fc53c8aa">_vertexBufferMemory</a>[i], <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> }</div>
</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> };</div>
</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#abb89ce215bc6fa4e5d9e9fd1185a1248"> 338</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classdl_1_1_v_k.html#abb89ce215bc6fa4e5d9e9fd1185a1248">Viewport</a> = <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;float, 4&gt;</a>;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// 2dDrawCall 按 以下优先级排序拆分(每一项都不同产生拆分,所以跨Canvas必然产生拆分)</span></div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// 1.半透明最后(放入单独的list处理)</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="comment">// 2.Canvas(顶点 + 纹理)</span></div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="comment">// 3.矩阵</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="comment">// 4.视口</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="comment">// 5.裁剪</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="comment">// 6.采样器</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="comment">// 7.混合</span></div>
<div class="foldopen" id="foldopen00347" data-start="{" data-end="};">
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html"> 347</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call.html">DrawCall</a></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> {</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#a98d32e5425c7129438042fc75182fc44"> 349</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a98d32e5425c7129438042fc75182fc44">_canvas</a>;</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#a8980786c4a9a562b4f048858d164a3e5"> 350</a></span> <a class="code hl_class" href="classdl_1_1_coor.html">Coor</a>* <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a8980786c4a9a562b4f048858d164a3e5">_rootCoor</a>;</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#ae6fd7bf19f3e4ceae35162f6e83db92a"> 351</a></span> <a class="code hl_typedef" href="classdl_1_1_v_k.html#abb89ce215bc6fa4e5d9e9fd1185a1248">Viewport</a>* <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#ae6fd7bf19f3e4ceae35162f6e83db92a">_viewport</a>;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#aad972f25d2993eb93c39277ca66528f4"> 352</a></span> <a class="code hl_typedef" href="namespacedl.html#ac239c3e197b60bee840b9583cf35db65">Rect</a>* <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#aad972f25d2993eb93c39277ca66528f4">_scissorRect</a>;</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#a7f884119f7699b8d7030670f31249b4b"> 353</a></span> <a class="code hl_enumeration" href="classdl_1_1_sprite.html#ad5d569a513c629222a75400e7cd8ced4">Sprite::Sampler</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a7f884119f7699b8d7030670f31249b4b">_sampler</a>;</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#addfa934ad575eb81dc75d327c9c93861"> 354</a></span> <a class="code hl_enumeration" href="classdl_1_1_sprite.html#aff40ece16d9f27ad0106fd2f48565dac">Sprite::Blend</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#addfa934ad575eb81dc75d327c9c93861">_blend</a>;</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// 现修改为顶点位置</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#a313f2960df1223b65d01cad92f4c64bf"> 357</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a313f2960df1223b65d01cad92f4c64bf">_beg</a>;</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#a32d68f0f9cdc1077ca3e83815f5f5a58"> 358</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a32d68f0f9cdc1077ca3e83815f5f5a58">_end</a>;</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
<div class="foldopen" id="foldopen00360" data-start="{" data-end="}">
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call.html#ad907373f07745c590bd18cc3fc5a3b22"> 360</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_draw_call.html#ad907373f07745c590bd18cc3fc5a3b22">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call.html">DrawCall</a>&amp; b)<span class="keyword"> const</span></div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a98d32e5425c7129438042fc75182fc44">_canvas</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a98d32e5425c7129438042fc75182fc44">_canvas</a></div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a8980786c4a9a562b4f048858d164a3e5">_rootCoor</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a8980786c4a9a562b4f048858d164a3e5">_rootCoor</a></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#ae6fd7bf19f3e4ceae35162f6e83db92a">_viewport</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#ae6fd7bf19f3e4ceae35162f6e83db92a">_viewport</a></div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#aad972f25d2993eb93c39277ca66528f4">_scissorRect</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#aad972f25d2993eb93c39277ca66528f4">_scissorRect</a></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a7f884119f7699b8d7030670f31249b4b">_sampler</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#a7f884119f7699b8d7030670f31249b4b">_sampler</a></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#addfa934ad575eb81dc75d327c9c93861">_blend</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call.html#addfa934ad575eb81dc75d327c9c93861">_blend</a>;</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> }</div>
</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> };</div>
</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// dc和它拥有的sprite</span></div>
<div class="foldopen" id="foldopen00371" data-start="{" data-end="};">
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_list.html"> 371</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_list.html">DrawCallList</a></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> {</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_list.html#a5641e395ad76cf746ecb9eeec1a63b4d"> 373</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call.html">DrawCall</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_list.html#a5641e395ad76cf746ecb9eeec1a63b4d">_dc</a>;</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_list.html#aa6b861d679cf30f33f1d103e243eb68c"> 374</a></span> std::vector&lt;Sprite*&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_list.html#aa6b861d679cf30f33f1d103e243eb68c">_listSpr</a>;</div>
<div class="foldopen" id="foldopen00375" data-start="{" data-end="}">
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_list.html#a68dbc457ac82ae29c100069613372b2f"> 375</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_draw_call_list.html#a68dbc457ac82ae29c100069613372b2f">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_list.html">DrawCallList</a>&amp; b)</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> {</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_list.html#a5641e395ad76cf746ecb9eeec1a63b4d">_dc</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_list.html#a5641e395ad76cf746ecb9eeec1a63b4d">_dc</a>;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> };</div>
</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="comment">// 按z排序</span></div>
<div class="foldopen" id="foldopen00381" data-start="{" data-end="};">
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_z.html"> 381</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_z.html">DrawCallZ</a></div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> {</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_z.html#abf35a89e36dc98410b9390497a5efc42"> 383</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#abf35a89e36dc98410b9390497a5efc42">_z</a>;</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_z.html#a1ee1086caf0043fb80c341f9372ed7d7"> 384</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_list.html">DrawCallList</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#a1ee1086caf0043fb80c341f9372ed7d7">_dcl</a>;</div>
<div class="foldopen" id="foldopen00385" data-start="{" data-end="}">
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_draw_call_z.html#ab9626c7d39e2c58742c87e3c7fc21721"> 385</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_draw_call_z.html#ab9626c7d39e2c58742c87e3c7fc21721">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_z.html">DrawCallZ</a>&amp; b)</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> {</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#abf35a89e36dc98410b9390497a5efc42">_z</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#abf35a89e36dc98410b9390497a5efc42">_z</a></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> &amp;&amp; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#a1ee1086caf0043fb80c341f9372ed7d7">_dcl</a> == b.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_draw_call_z.html#a1ee1086caf0043fb80c341f9372ed7d7">_dcl</a>;</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> }</div>
</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> };</div>
</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
<div class="foldopen" id="foldopen00392" data-start="{" data-end="};">
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html"> 392</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k2_d.html">VK2D</a></div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> {</div>
<div class="foldopen" id="foldopen00394" data-start="{" data-end="};">
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html"> 394</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html">UBO</a></div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> {</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html#a979dbc7a1f3afaa775c8d8c55048122c"> 396</a></span> <span class="keyword">alignas</span>(16) <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html#a979dbc7a1f3afaa775c8d8c55048122c">_viewProj</a>;</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> };</div>
</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="foldopen" id="foldopen00399" data-start="{" data-end="};">
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html"> 399</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html">CBO</a></div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> {</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#ab2dbb027a5c366b4fb45b007dc62fd2e"> 401</a></span> <span class="keyword">alignas</span>(16) <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#ab2dbb027a5c366b4fb45b007dc62fd2e">_model</a>;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#aa48637dc015462b7a68319a5dce9a9a1"> 402</a></span> uint32_t <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#aa48637dc015462b7a68319a5dce9a9a1">_samplerIndex</a>;</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> };</div>
</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#afe5e16f2d2ef6b78fdde33723f643f7d"> 406</a></span> VkPipelineLayout <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#afe5e16f2d2ef6b78fdde33723f643f7d">_pipelineLayout</a>; <span class="comment">// 管线布局</span></div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a45ee0561976e1458a2037aeaaeda2a46"> 407</a></span> VkPipeline <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a45ee0561976e1458a2037aeaaeda2a46">_graphicsPipeline</a>; <span class="comment">// 图形管线(无半透明)</span></div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a2cd96c11e28da0773b7bf4cbb9617b38"> 408</a></span> VkPipeline <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a2cd96c11e28da0773b7bf4cbb9617b38">_graphicsPipelineTrans</a>; <span class="comment">// 图形管线(alpha混合)</span></div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#acac3a82ade87381c3409ff9f6eb38181"> 409</a></span> VkPipeline <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#acac3a82ade87381c3409ff9f6eb38181">_graphicsPipelineEffect</a>; <span class="comment">// 图形管线(特效混合)</span></div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a552ee89feb7422923011cf879fffc1f6"> 410</a></span> VkPipeline <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a552ee89feb7422923011cf879fffc1f6">_graphicsPipelineGray</a>; <span class="comment">// 图形管线(灰度绘制)</span></div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a28bd82a1b313d177030b5d2545d39033"> 411</a></span> VkDescriptorSetLayout <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a28bd82a1b313d177030b5d2545d39033">_descriptorSetLayout0</a>; <span class="comment">// 描述符集合布局(全局)</span></div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a242781ca5292592bd63964b3baa5374d"> 412</a></span> VkDescriptorSetLayout <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a242781ca5292592bd63964b3baa5374d">_descriptorSetLayout1</a>; <span class="comment">// 描述符集合布局</span></div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad7425165bbdddc84034a471daccfa49f"> 413</a></span> std::vector&lt;VkBuffer&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad7425165bbdddc84034a471daccfa49f">_uniformBuffers</a>; <span class="comment">// 统一缓冲</span></div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a11904370eebd650f851140951e150b59"> 414</a></span> std::vector&lt;VkDeviceMemory&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a11904370eebd650f851140951e150b59">_uniformBuffersMemory</a>; <span class="comment">// 统一缓冲内存</span></div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f573a35762a5fb06a629438c1e8ede0"> 415</a></span> std::vector&lt;void*&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f573a35762a5fb06a629438c1e8ede0">_uniformBuffersMapped</a>; <span class="comment">// 统一缓冲映射</span></div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ab71cba4f6037c3539382fd8369bfd9d5"> 416</a></span> VkDescriptorPool <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ab71cba4f6037c3539382fd8369bfd9d5">_descriptorPool</a>; <span class="comment">// 描述符池</span></div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a379ab41dab36056a796e66acedea97d9"> 417</a></span> std::vector&lt;VkDescriptorSet&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a379ab41dab36056a796e66acedea97d9">_descriptorSets0</a>; <span class="comment">// 所有描述符集</span></div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a78305343cf4e0a586fb6d49ecd551b35"> 418</a></span> std::vector&lt;VkDescriptorSet&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a78305343cf4e0a586fb6d49ecd551b35">_descriptorSets1</a>; <span class="comment">// 所有描述符集</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ac082d6f537b73ba1fff8115e4805f162"> 419</a></span> VkBuffer <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ac082d6f537b73ba1fff8115e4805f162">_indexBuffer</a>; <span class="comment">// 索引缓冲(注意是32位)</span></div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ab600e8fc58a24de24d3a1d96786deb33"> 420</a></span> VkDeviceMemory <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ab600e8fc58a24de24d3a1d96786deb33">_indexBufferMemory</a>; <span class="comment">// 索引缓冲内存</span></div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a30e13783a51fc62182a4039b050d3b94"> 421</a></span> VkSampler <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a30e13783a51fc62182a4039b050d3b94">_textureSampler</a>; <span class="comment">// 2d纹理采样器</span></div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a3824072edfdb835b9143aad46b4edefc"> 422</a></span> VkSampler <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a3824072edfdb835b9143aad46b4edefc">_textureSamplerPixel</a>; <span class="comment">// 2d纹理采样器</span></div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#aee3d66875fc52397c4101a93614c40b3"> 423</a></span> VkSampler <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#aee3d66875fc52397c4101a93614c40b3">_textureSamplerUI</a>; <span class="comment">// 2d纹理采样器</span></div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a2140635024bb9cbcee97e0a15c821879"> 424</a></span> std::array&lt;CBO, NUM_MAX_ROOT_COOR&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a2140635024bb9cbcee97e0a15c821879">_allCBO</a>; <span class="comment">// 常量缓冲</span></div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a846dcbe15f8043868c3d47d30f3379e6"> 425</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a846dcbe15f8043868c3d47d30f3379e6">_curPushConstant</a>; <span class="comment">// 当前使用 常量缓冲 下标</span></div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a9b6a80d89f2108d30c6e3169f213f075"> 426</a></span> std::array&lt;Coor*, NUM_MAX_ROOT_COOR&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a9b6a80d89f2108d30c6e3169f213f075">_allRootCoor</a>; <span class="comment">// 所有根坐标系</span></div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad023205ada7fbce46ec05d23b0c9f073"> 427</a></span> std::array&lt;Matrix4, NUM_MAX_ROOT_COOR&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad023205ada7fbce46ec05d23b0c9f073">_allRootCoorMat</a>; <span class="comment">// 所有根坐标系矩阵</span></div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad67a262dc19c721746d7a54392628186"> 428</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ad67a262dc19c721746d7a54392628186">_mat2D</a>; <span class="comment">// 2d世界坐标系</span></div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#aba72cbecdd55c746d8b2b55bba8ba74d"> 429</a></span> std::unordered_map&lt;size_t, Canvas*&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#aba72cbecdd55c746d8b2b55bba8ba74d">_allCanvas</a>; <span class="comment">// 画布(RenderTarget + 静态 + Register精灵)</span></div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a11a6e06566474d9e7e4625c97687e957"> 430</a></span> <a class="code hl_struct" href="structdl_1_1_render_info2_d.html">RenderInfo2D</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a11a6e06566474d9e7e4625c97687e957">_renderInfo</a>; <span class="comment">// 绘制信息</span></div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="comment">//------------------------缓存区域(避免每帧重分配内存)-----------------------</span></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a697551d084d49388339476ec8597e836"> 432</a></span> std::vector&lt;VK::DrawCall&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a697551d084d49388339476ec8597e836">_vecDc</a>;</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f86c37e62f7a12875bfff5583bfa305"> 433</a></span> std::vector&lt;VK::DrawCall&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f86c37e62f7a12875bfff5583bfa305">_vecDcTrans</a>;</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#abfba586f6b83e09e60560b89752f2952"> 434</a></span> <a class="code hl_class" href="classdl_1_1_vector_reuse.html">VectorReuse&lt;DrawCallList&gt;</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#abfba586f6b83e09e60560b89752f2952">_vecDcList</a>;</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#ac030b3285b8338e17f1380a09ba526db"> 435</a></span> <a class="code hl_class" href="classdl_1_1_vector_reuse.html">VectorReuse&lt;DrawCallZ&gt;</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#ac030b3285b8338e17f1380a09ba526db">_vecDcListZ</a>;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k2_d.html#a4d6dbfa4f0c0bf00224d0ed00609593c"> 436</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_draw_call_z.html">DrawCallZ</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k2_d.html#a4d6dbfa4f0c0bf00224d0ed00609593c">_tempDcListZ</a>;</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> };</div>
</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> </div>
<div class="foldopen" id="foldopen00439" data-start="{" data-end="};">
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html"> 439</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html">VertexBufferGfx</a></div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> {</div>
<div class="foldopen" id="foldopen00441" data-start="{" data-end="};">
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html"> 441</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a028b8ac5da303e2f12d33abc7f039fce">Frame</a></div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> {</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#acb4476de163c01557b2f25a7f353d1a9"> 443</a></span> VkBuffer <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#acb4476de163c01557b2f25a7f353d1a9">_vertexBuffer</a>; <span class="comment">// 顶点缓冲(每帧改变)</span></div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c"> 444</a></span> VkDeviceMemory <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c">_vertexBufferMemory</a>; <span class="comment">// 顶点缓冲内存</span></div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a928e5c32a8f9f135ec737f73d67b4226"> 445</a></span> VkDeviceSize <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a928e5c32a8f9f135ec737f73d67b4226">_vertexBufferSize</a>; <span class="comment">// 顶点缓冲大小</span></div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd"> 447</a></span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>* <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd">_vertex</a>;</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac95f63861127f9e70d33b1c8a4e379c5"> 448</a></span> std::size_t <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac95f63861127f9e70d33b1c8a4e379c5">_index</a>;</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a918ddc42e2494fdeb31db3c03591ac2c"> 449</a></span> std::size_t <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a918ddc42e2494fdeb31db3c03591ac2c">_num</a>;</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
<div class="foldopen" id="foldopen00451" data-start="{" data-end="}">
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a028b8ac5da303e2f12d33abc7f039fce"> 451</a></span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a028b8ac5da303e2f12d33abc7f039fce">Frame</a>() :</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd">_vertex</a>{ nullptr },</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac95f63861127f9e70d33b1c8a4e379c5">_index</a>{ 0 },</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a918ddc42e2494fdeb31db3c03591ac2c">_num</a>{ 0 }</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> {}</div>
</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> </div>
<div class="foldopen" id="foldopen00457" data-start="{" data-end="}">
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a956588256d18b86116218f3776f1fa1f"> 457</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a956588256d18b86116218f3776f1fa1f">Lock</a>(VkDevice device)</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> vkMapMemory(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c">_vertexBufferMemory</a>, 0, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a928e5c32a8f9f135ec737f73d67b4226">_vertexBufferSize</a>, 0, (<span class="keywordtype">void</span>**)&amp;<a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd">_vertex</a>);</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> }</div>
</div>
<div class="foldopen" id="foldopen00461" data-start="{" data-end="}">
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a687eadf6cbbec579e5622df534aa0a15"> 461</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a687eadf6cbbec579e5622df534aa0a15">Unlock</a>(VkDevice device)</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> {</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd">_vertex</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> vkUnmapMemory(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c">_vertexBufferMemory</a>);</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> }</div>
</div>
<div class="foldopen" id="foldopen00466" data-start="{" data-end="}">
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a7ebb34b24cf252214cea447d23f67a5e"> 466</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a7ebb34b24cf252214cea447d23f67a5e">Delete</a>(VkDevice device)</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> {</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> vkDestroyBuffer(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#acb4476de163c01557b2f25a7f353d1a9">_vertexBuffer</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> vkFreeMemory(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c">_vertexBufferMemory</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> }</div>
</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> };</div>
</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2"> 473</a></span> std::vector&lt;Frame&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">_frame</a>;</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> </div>
<div class="foldopen" id="foldopen00475" data-start="{" data-end="}">
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#ab0372b79a9038e294e86e1e12ab6b118"> 475</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#ab0372b79a9038e294e86e1e12ab6b118">Init</a>(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk)</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">_frame</a>.resize(vk-&gt;_countFrame);</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> }</div>
</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> </div>
<div class="foldopen" id="foldopen00480" data-start="{" data-end="}">
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af69732e554af4ed5ba1189868da9b943"> 480</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html">Frame</a>&amp; <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af69732e554af4ed5ba1189868da9b943">operator[]</a>(<span class="keywordtype">size_t</span> i)</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> {</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">_frame</a>[i];</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> }</div>
</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
<div class="foldopen" id="foldopen00485" data-start="{" data-end="}">
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af4da5da1cf99dc477802360efcc21958"> 485</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af4da5da1cf99dc477802360efcc21958">Delete</a>(VkDevice device)</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> {</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">_frame</a>.size(); ++i)</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> {</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">_frame</a>[i].Delete(device);</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> }</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> }</div>
</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> };</div>
</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> </div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> </div>
<div class="foldopen" id="foldopen00495" data-start="{" data-end="};">
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html"> 495</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_gfx.html">VKGfx</a></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> {</div>
<div class="foldopen" id="foldopen00497" data-start="{" data-end="};">
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html"> 497</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html">UBO</a></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> {</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html#a3f568c53f04036c74eb72866fc8bed04"> 499</a></span> <a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html#a3f568c53f04036c74eb72866fc8bed04">_viewProj</a>;</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> };</div>
</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a4249dab74cc31367a679b96cf87a7727"> 501</a></span> VkPipelineLayout <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a4249dab74cc31367a679b96cf87a7727">_pipelineLayout</a>; <span class="comment">//管线布局</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <span class="comment">// 3d和2d共用管线,但透明度需要区分</span></div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="comment">// 点、线、三角形(半透明x2)</span></div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a42316cdf9d189988cbae8eab77b30c27"> 504</a></span> std::array&lt;VkPipeline, NUM_GFX_HALF&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a42316cdf9d189988cbae8eab77b30c27">_vecGraphicsPipeline</a>;<span class="comment">// 图形管线</span></div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// uniform为 帧数 * 2 3d2d 各一个)</span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a76c967351d8491556ed85d793bc060b6"> 506</a></span> VkDescriptorSetLayout <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a76c967351d8491556ed85d793bc060b6">_descriptorSetLayout</a>; <span class="comment">//描述符集合布局</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#acea78839b98cbd0a06fa69c18928e592"> 507</a></span> std::vector&lt;VkBuffer&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#acea78839b98cbd0a06fa69c18928e592">_uniformBuffers</a>; <span class="comment">//统一缓冲</span></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1373a98727ca64c48931db48867fa65d"> 508</a></span> std::vector&lt;VkDeviceMemory&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1373a98727ca64c48931db48867fa65d">_uniformBuffersMemory</a>; <span class="comment">//统一缓冲内存</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1cbe2a267d10d70cc81813ab6c4ada53"> 509</a></span> VkDescriptorPool <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1cbe2a267d10d70cc81813ab6c4ada53">_descriptorPool</a>; <span class="comment">//描述符池</span></div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a624323c31bed6bca443ed8823d17c72f"> 510</a></span> std::vector&lt;VkDescriptorSet&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#a624323c31bed6bca443ed8823d17c72f">_descriptorSets</a>; <span class="comment">//所有描述符集</span></div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// 点、线、三角形、2d点、2d线、2d三角形(半透明x2)</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#ad42858809d1c1f205ee46166828d9b31"> 513</a></span> std::array&lt;VertexBufferGfx, NUM_GFX&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#ad42858809d1c1f205ee46166828d9b31">_arrVB</a>;</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> <span class="comment">// CPU写入缓冲区</span></div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_gfx.html#aa163ca27dda74e1577bc294b7f22fcec"> 515</a></span> std::array&lt;std::vector&lt;VertexGfx&gt;, <a class="code hl_variable" href="namespacedl.html#ab36081b145974249823be52df1867f95">NUM_GFX</a>&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_gfx.html#aa163ca27dda74e1577bc294b7f22fcec">_allVertex</a>;</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> };</div>
</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="comment">// 渲染目标(3d默认具有0下标)</span></div>
<div class="foldopen" id="foldopen00519" data-start="{" data-end="};">
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html"> 519</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_render_target.html">VKRenderTarget</a></div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> {</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2b7258465b216856af5dd4438c89dbea"> 521</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2b7258465b216856af5dd4438c89dbea">_texColor</a>;</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2901f98a5d503d1c93effa9da2c309be"> 522</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2901f98a5d503d1c93effa9da2c309be">_texDepth</a>;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a67e69fabeb394ab2ee21b747b9ae03b3"> 523</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a67e69fabeb394ab2ee21b747b9ae03b3">_texColorOut</a>; <span class="comment">// 由Canvas释放</span></div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a3adc4a4da3a8218d6dae6e00dbc76363"> 524</a></span> VkFramebuffer <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a3adc4a4da3a8218d6dae6e00dbc76363">_frameBuffer</a>;</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="foldopen" id="foldopen00526" data-start="{" data-end="}">
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a7e5b2bf09350c5e8fe716e08144f55ba"> 526</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a7e5b2bf09350c5e8fe716e08144f55ba">Delete</a>(VkDevice device)</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> {</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> vkDestroyFramebuffer(device, <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a3adc4a4da3a8218d6dae6e00dbc76363">_frameBuffer</a>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2b7258465b216856af5dd4438c89dbea">_texColor</a>.Delete(device);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2901f98a5d503d1c93effa9da2c309be">_texDepth</a>.Delete(device);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> }</div>
</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> };</div>
</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> </div>
<div class="foldopen" id="foldopen00534" data-start="{" data-end="}">
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf"> 534</a></span> <a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>(<a class="code hl_struct" href="structdl_1_1_g_l_f_wwindow.html">GLFWwindow</a>* window) :</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> _currentFrame{ 0 },</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> _bFrameBufferResize{ false },</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> _textureMgr{ this }</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> {</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> _allValidationLayer =</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> {</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="stringliteral">&quot;VK_LAYER_KHRONOS_validation&quot;</span></div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> };</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> _allDeviceExtension =</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> {</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> VK_KHR_SWAPCHAIN_EXTENSION_NAME</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> };</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span><span class="preprocessor">#if DL_PLATFORM == DL_PLATFORM_APPLE</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> _allDeviceExtension.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> _init(window);</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> }</div>
</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span></div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ae93b7b39f25982803e3ffd5ab31ce1b7"> 557</a></span> VkShaderModule <a class="code hl_function" href="classdl_1_1_v_k.html#ae93b7b39f25982803e3ffd5ab31ce1b7">CreateShaderModule</a>(<a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a>&amp; buf);</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span></div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#adfc3935faf73dd531eb7dac2ca94aa2c"> 562</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#adfc3935faf73dd531eb7dac2ca94aa2c">Update</a>();</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span></div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ac29ba01335b5f4a70ee981002fedeb04"> 567</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ac29ba01335b5f4a70ee981002fedeb04">Render</a>(<a class="code hl_struct" href="structdl_1_1_g_l_f_wwindow.html">GLFWwindow</a>* window);</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span></div>
<div class="foldopen" id="foldopen00572" data-start="{" data-end="}">
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a05c97a24d8f567a0df426e5beef00a81"> 572</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a05c97a24d8f567a0df426e5beef00a81">RenderEnd</a>()</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> {</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> _curPushConstant = 1;</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> }</div>
</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a8bd5e1b36f670b91289d95a574d366aa"> 580</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a8bd5e1b36f670b91289d95a574d366aa">SetFrameBufferResize</a>() { _bFrameBufferResize = <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span></div>
<div class="foldopen" id="foldopen00583" data-start="{" data-end="}">
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a1d320f5ae25275dd989aac75b8337505"> 583</a></span> <span class="keyword">static</span> VKAPI_ATTR VkBool32 VKAPI_CALL <a class="code hl_function" href="classdl_1_1_v_k.html#a1d320f5ae25275dd989aac75b8337505">CallbackDebug</a>(</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> VkDebugUtilsMessageTypeFlagsEXT messageType,</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keyword">const</span> VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordtype">void</span>* pUserData)</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> {</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">if</span> (messageSeverity == VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT)</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <a class="code hl_function" href="namespacedl.html#a67b560c4a363a94234124eed5687d577">log_test0</a>(pCallbackData-&gt;pMessage);</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (messageSeverity == VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_function" href="namespacedl.html#a64b07a8f4a166efa94a36b2490bcc3ec">log_info0</a>(pCallbackData-&gt;pMessage);</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">return</span> VK_FALSE;</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> }</div>
</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span></div>
<div class="foldopen" id="foldopen00597" data-start="{" data-end="}">
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a0381387521c55277d7ac2579c9804ebf"> 597</a></span> <span class="keyword">static</span> VkResult <a class="code hl_function" href="classdl_1_1_v_k.html#a0381387521c55277d7ac2579c9804ebf">CreateDebugUtilsMessengerEXT</a>(VkInstance instance,</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">const</span> VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keyword">const</span> VkAllocationCallbacks* pAllocator,</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> VkDebugUtilsMessengerEXT* pDebugMessenger)</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> {</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">auto</span> func = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, <span class="stringliteral">&quot;vkCreateDebugUtilsMessengerEXT&quot;</span>);</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">if</span> (func != <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">return</span> func(instance, pCreateInfo, pAllocator, pDebugMessenger);</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">return</span> VK_ERROR_EXTENSION_NOT_PRESENT;</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> }</div>
</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span></div>
<div class="foldopen" id="foldopen00609" data-start="{" data-end="}">
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#acaa4549cf199039f0e5207aee8986f54"> 609</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#acaa4549cf199039f0e5207aee8986f54">DestroyDebugUtilsMessengerEXT</a>(VkInstance instance,</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> VkDebugUtilsMessengerEXT debugMessenger,</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keyword">const</span> VkAllocationCallbacks* pAllocator)</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> {</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keyword">auto</span> func = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, <span class="stringliteral">&quot;vkDestroyDebugUtilsMessengerEXT&quot;</span>);</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">if</span> (func != <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> func(instance, debugMessenger, pAllocator);</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span></div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a8874244dd423f5855b2b11d06b2fb3bd"> 618</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a8874244dd423f5855b2b11d06b2fb3bd">PopulateDebugMessengerCreateInfo</a>(VkDebugUtilsMessengerCreateInfoEXT&amp; createInfo);</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a452c2a8987b7431073f4db46b2afdc0a"> 622</a></span> uint32_t <a class="code hl_function" href="classdl_1_1_v_k.html#a452c2a8987b7431073f4db46b2afdc0a">FindMemoryType</a>(uint32_t typeFilter, VkMemoryPropertyFlags properties);</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66"> 626</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(VkDeviceSize size,</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> VkBuffer&amp; buffer, VkDeviceMemory&amp; bufferMemory);</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a9b7d38b6682c649d227c40666bc9254d"> 632</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a9b7d38b6682c649d227c40666bc9254d">CopyBuffer</a>(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size);</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a608b75bc911613e637d4b8bee4fbb668"> 636</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a608b75bc911613e637d4b8bee4fbb668">CopyBufferToImage</a>(VkBuffer buffer, VkImage image, </div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> uint32_t width, uint32_t height, uint32_t mip_level);</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a74bab350d0cf83af2a85e9f534e185c7"> 641</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a74bab350d0cf83af2a85e9f534e185c7">CopyBufferToImageMulti</a>(</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keyword">const</span> std::array&lt;VkBuffer, NUM_MIPMAP_2D&gt;&amp; vec_buffer,</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> VkImage image, <span class="keyword">const</span> std::array&lt;Size, NUM_MIPMAP_2D&gt;&amp; vec_size);</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00649" data-start="{" data-end="}">
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a76f040f94a0674f7112c2a6f13d0e124"> 649</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a76f040f94a0674f7112c2a6f13d0e124">CreateVertexBufferGPU</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; vertices,</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> VkBuffer&amp; vertexBuffer,</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> VkDeviceMemory&amp; vertexBufferMemory)</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> {</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> VkDeviceSize bufferSize = <span class="keyword">sizeof</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>) * vertices.size();</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> </div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> VkBuffer stagingBuffer;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> VkDeviceMemory stagingBufferMemory;</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT,</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> stagingBuffer, stagingBufferMemory);</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> </div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <span class="keywordtype">void</span>* data;</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> vkMapMemory(_device, stagingBufferMemory, 0, bufferSize, 0, &amp;data);</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> memcpy(data, vertices.data(), (<span class="keywordtype">size_t</span>)bufferSize);</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> vkUnmapMemory(_device, stagingBufferMemory);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(bufferSize,</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> vertexBuffer, vertexBufferMemory);</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> </div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a9b7d38b6682c649d227c40666bc9254d">CopyBuffer</a>(stagingBuffer, vertexBuffer, bufferSize);</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> </div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> vkDestroyBuffer(_device, stagingBuffer, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> vkFreeMemory(_device, stagingBufferMemory, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> }</div>
</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span></div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00680" data-start="{" data-end="}">
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a4e623b5f4f8b63b66f319b49f13fd960"> 680</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a4e623b5f4f8b63b66f319b49f13fd960">CreateVertexBufferCPU</a>(<span class="keywordtype">size_t</span> vertex_num,</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> VkBuffer&amp; vertexBuffer, VkDeviceMemory&amp; vertexBufferMemory, VkDeviceSize&amp; bufferSize)</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> {</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> bufferSize = <span class="keyword">sizeof</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>) * vertex_num;</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(bufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> vertexBuffer, vertexBufferMemory);</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> </div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="comment">//映射内存</span></div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="comment">/*void* data;</span></div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span><span class="comment"> vkMapMemory(_device, vertexBufferMemory, 0, bufferSize, 0, &amp;data);</span></div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span><span class="comment"> memcpy(data, vertices.data(), (size_t)bufferSize);</span></div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span><span class="comment"> vkUnmapMemory(_device, vertexBufferMemory);*/</span></div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> }</div>
</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00701" data-start="{" data-end="}">
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#adb1f741fe6e44afbc95b876fc583ae80"> 701</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#adb1f741fe6e44afbc95b876fc583ae80">CreateIndexBuffer</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; indices, VkBuffer&amp; indexBuffer, VkDeviceMemory&amp; indexBufferMemory)</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> {</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> VkDeviceSize bufferSize = <span class="keyword">sizeof</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>) * indices.size();</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> </div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> VkBuffer stagingBuffer;</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> VkDeviceMemory stagingBufferMemory;</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT,</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> stagingBuffer, stagingBufferMemory);</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordtype">void</span>* data;</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> vkMapMemory(_device, stagingBufferMemory, 0, bufferSize, 0, &amp;data);</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> memcpy(data, indices.data(), (<span class="keywordtype">size_t</span>)bufferSize);</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> vkUnmapMemory(_device, stagingBufferMemory);</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> </div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">CreateBuffer</a>(bufferSize,</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> indexBuffer, indexBufferMemory);</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a9b7d38b6682c649d227c40666bc9254d">CopyBuffer</a>(stagingBuffer, indexBuffer, bufferSize);</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> </div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> vkDestroyBuffer(_device, stagingBuffer, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> vkFreeMemory(_device, stagingBufferMemory, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> }</div>
</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span></div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ad0634421cb34c65ddb5b3493c1f414c9"> 729</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ad0634421cb34c65ddb5b3493c1f414c9">CreateImage</a>(uint32_t w, uint32_t h, uint32_t mip_level, VkSampleCountFlagBits numSamples,</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties,</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> VkImage&amp; image, VkDeviceMemory&amp; imageMemory, uint32_t layers = 1);</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span></div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a2033c2f00586e0d5a18a892ef0bd9391"> 736</a></span> VkImageView <a class="code hl_function" href="classdl_1_1_v_k.html#a2033c2f00586e0d5a18a892ef0bd9391">CreateImageView</a>(VkImage image, VkFormat format,</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> VkImageAspectFlags aspectFlags, uint32_t mip_level);</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span></div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a218ecf6caf191f2a01851c0dd4423cfc"> 742</a></span> VkCommandBuffer <a class="code hl_function" href="classdl_1_1_v_k.html#a218ecf6caf191f2a01851c0dd4423cfc">BeginSingleTimeCommands</a>();</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ad9471e9711c909942dfcb5cf9bbca8ff"> 746</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ad9471e9711c909942dfcb5cf9bbca8ff">EndSingleTimeCommands</a>(VkCommandBuffer commandBuffer);</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ab76c74e271127fce4c783df43d83d984"> 750</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ab76c74e271127fce4c783df43d83d984">TransitionImageLayout</a>(VkImage image, VkFormat format,</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t mip_level);</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a757d8fdd644e8b3ad04a56cea4f8b2b7"> 755</a></span> VkFormat <a class="code hl_function" href="classdl_1_1_v_k.html#a757d8fdd644e8b3ad04a56cea4f8b2b7">FindSupportedFormat</a>(<span class="keyword">const</span> std::vector&lt;VkFormat&gt;&amp; candidates,</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> VkImageTiling tiling, VkFormatFeatureFlags features);</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span></div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a2463bc7e0a3e67db9be1e3a37d0fa483"> 759</a></span> VkFormat <a class="code hl_function" href="classdl_1_1_v_k.html#a2463bc7e0a3e67db9be1e3a37d0fa483">FindDepthFormat</a>();</div>
<div class="foldopen" id="foldopen00761" data-start="{" data-end="}">
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aa6831444e6b5889aae563dd11290464f"> 761</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aa6831444e6b5889aae563dd11290464f">HasStencilComponent</a>(VkFormat format)</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> {</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="keywordflow">return</span> format == VK_FORMAT_D32_SFLOAT_S8_UINT || format == VK_FORMAT_D24_UNORM_S8_UINT;</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> }</div>
</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> </div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181"> 766</a></span> VkDevice <a class="code hl_function" href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181">GetDevice</a>() { <span class="keywordflow">return</span> _device; }</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span></div>
<div class="foldopen" id="foldopen00769" data-start="{" data-end="}">
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a8338b6d0a6e1850e02fd27e95593e902"> 769</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a8338b6d0a6e1850e02fd27e95593e902">CreateMaterial</a>(<a class="code hl_struct" href="structdl_1_1_material.html">Material</a>&amp; m)</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> {</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; _allMaterial.size(); ++i)</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> {</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">if</span> (_allMaterial[i] == m)</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> }</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <span class="keywordtype">size_t</span> <span class="keywordtype">id</span> = _allMaterial.size();</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code hl_variable" href="namespacedl.html#abd1df5b1aba350d46b9e01f0583c9dc6">NUM_MAX_MATERIAL</a>)</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> {</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <a class="code hl_define" href="dl__log_8h.html#a04af09851c431d178f16b24fa1aac1e9">log_warn</a>(<span class="stringliteral">&quot;材质数超过上限!&quot;</span>);</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> }</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="keywordtype">void</span>* data;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> vkMapMemory(_device, _ubMaterialMemory[<span class="keywordtype">id</span>], 0, <span class="keyword">sizeof</span>(m), 0, &amp;data);</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> memcpy(data, &amp;m, <span class="keyword">sizeof</span>(m));</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> vkUnmapMemory(_device, _ubMaterialMemory[<span class="keywordtype">id</span>]);</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> </div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> _allMaterial.push_back(m);</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keywordflow">return</span> id;</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> }</div>
</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span></div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ac9c7c15aec0dbd28415a05268dcefe81"> 792</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ac9c7c15aec0dbd28415a05268dcefe81">CreatePrimitive</a>(<a class="code hl_struct" href="structdl_1_1_model_material.html">ModelMaterial</a>&amp; m);</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> </div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span></div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#acbde0746dc6865dc330a0203da9939bb"> 796</a></span> <a class="code hl_class" href="classdl_1_1_model.html">Model</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#acbde0746dc6865dc330a0203da9939bb">CreateModel</a>(<a class="code hl_class" href="classdl_1_1_model_object.html">ModelObject</a>* <span class="keywordtype">object</span>);</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a893f6da42c38ccc8ee98c3a0c25d6603"> 798</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a893f6da42c38ccc8ee98c3a0c25d6603">RenderModel</a>(VkCommandBuffer command_buffer, <a class="code hl_class" href="classdl_1_1_model.html">Model</a>* model, <span class="keywordtype">size_t</span> shadow);</div>
<div class="foldopen" id="foldopen00800" data-start="{" data-end="}">
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a32e2b879756a3f8efea28b72af8d052d"> 800</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a32e2b879756a3f8efea28b72af8d052d">DeleteModel</a>(<a class="code hl_class" href="classdl_1_1_model.html">Model</a>* model)</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> {</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">if</span> (!model)</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> vkDestroyBuffer(_device, model-&gt;_indexBuffer, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> vkFreeMemory(_device, model-&gt;_indexBufferMemory, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> </div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> vkDestroyBuffer(_device, model-&gt;_vertexBuffer, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> vkFreeMemory(_device, model-&gt;_vertexBufferMemory, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> </div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> <span class="keyword">delete</span> model;</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> }</div>
</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span></div>
<div class="foldopen" id="foldopen00813" data-start="{" data-end="}">
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a903d903e78ccad0794a9d60bedf40c8f"> 813</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a903d903e78ccad0794a9d60bedf40c8f">GetPushConstantNext</a>()</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> {</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> <span class="keywordflow">return</span> _curPushConstant++;</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> }</div>
</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span></div>
<div class="foldopen" id="foldopen00818" data-start="{" data-end="}">
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a682adb523684c5038166b5dfbaf17048"> 818</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_push_constant_data.html">PushConstantData</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#a682adb523684c5038166b5dfbaf17048">GetPushConstant</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>)</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> {</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= _allPushConstant.size())</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> {</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> <a class="code hl_function" href="namespacedl.html#a5bb9ee10db5338251b4bb854939b69b3">log</a>(fmt::format(<span class="stringliteral">&quot;超过 推送常量区上限:{}&quot;</span>, _allPushConstant.size()));</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> }</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">return</span> &amp;_allPushConstant[id];</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> }</div>
</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span></div>
<div class="foldopen" id="foldopen00829" data-start="{" data-end="}">
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a36d5c031c3d3a080c6e25cdeaf2fc541"> 829</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a36d5c031c3d3a080c6e25cdeaf2fc541">UpdateUboBone</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>, std::vector&lt;Matrix4&gt;&amp; trans)</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> {</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <span class="keywordflow">if</span> (trans.empty())</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> <span class="keywordtype">size_t</span> size = <span class="keyword">sizeof</span>(<a class="code hl_typedef" href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">Matrix4</a>) * (std::min)(trans.size(), <a class="code hl_variable" href="namespacedl.html#a04bd47520534f61a9d2c56c7578788a4">NUM_MAX_JOINT</a>);</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="keywordtype">size_t</span> index = <span class="keywordtype">id</span> * _countFrame + _currentFrame;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> </div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="keywordtype">void</span>* data;</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> vkMapMemory(_device, _ubBoneMemory[index], 0, size, 0, &amp;data);</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> memcpy(data, trans.data(), size);</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> vkUnmapMemory(_device, _ubBoneMemory[index]);</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> }</div>
</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span></div>
<div class="foldopen" id="foldopen00843" data-start="{" data-end="}">
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aaa41d99b62853a1665a526626849a655"> 843</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aaa41d99b62853a1665a526626849a655">GetUboBoneFree</a>()</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> {</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; _mapBoneUse.size(); ++i)</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> {</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> <span class="keywordflow">if</span> (!_mapBoneUse[i])</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> }</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> <a class="code hl_function" href="namespacedl.html#a5bb9ee10db5338251b4bb854939b69b3">log</a>(<span class="stringliteral">&quot;无可用骨骼ub&quot;</span>);</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> }</div>
</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span></div>
<div class="foldopen" id="foldopen00854" data-start="{" data-end="}">
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aaed16e93b2b551367f44d5ec51b6b1b7"> 854</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aaed16e93b2b551367f44d5ec51b6b1b7">SetUboBoneFree</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>)</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> {</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> assert(_mapBoneUse[<span class="keywordtype">id</span>]);</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> _mapBoneUse[id] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> }</div>
</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span></div>
<div class="foldopen" id="foldopen00860" data-start="{" data-end="}">
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a98806e16ac68f8247e968c4826287b89"> 860</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a98806e16ac68f8247e968c4826287b89">SetUboBoneUse</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>)</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> {</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> assert(!_mapBoneUse[<span class="keywordtype">id</span>]);</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> _mapBoneUse[id] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> }</div>
</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> </div>
<div class="foldopen" id="foldopen00866" data-start="{" data-end="}">
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ac699d88c172c7f613e2ec670b779d9a3"> 866</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ac699d88c172c7f613e2ec670b779d9a3">SetDebugView</a>(<a class="code hl_enumeration" href="namespacedl.html#ae6d22d798e0e50d8494ec9b3e848c7bd">DebugView3D</a> type)</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> {</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> _pass._debugView = (float)type;</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> }</div>
</div>
<div class="foldopen" id="foldopen00870" data-start="{" data-end="}">
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a311809e67ab667b93ef1c98910f699bb"> 870</a></span> <a class="code hl_enumeration" href="namespacedl.html#ae6d22d798e0e50d8494ec9b3e848c7bd">DebugView3D</a> <a class="code hl_function" href="classdl_1_1_v_k.html#a311809e67ab667b93ef1c98910f699bb">GetDebugView</a>()</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> {</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> <span class="keywordflow">return</span> (<a class="code hl_enumeration" href="namespacedl.html#ae6d22d798e0e50d8494ec9b3e848c7bd">DebugView3D</a>)_pass._debugView;</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> }</div>
</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span></div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a75aaceb6742700912b4aa375f75c70e3"> 876</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a75aaceb6742700912b4aa375f75c70e3">CreateTextureReal</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* image, <span class="keywordtype">bool</span> srgb, <span class="keywordtype">bool</span> delete_image);</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a7177b069ad7935f23dd5df84713e985b"> 883</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a7177b069ad7935f23dd5df84713e985b">CreateTexture</a>(std::string_view path_name, <span class="keywordtype">bool</span> srgb = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> </div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span></div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <span class="comment">// 初始使用fast_tex,后续动态加载完整tex</span></div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a5a8488ca3f4f95781bf5a35d166beef0"> 888</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a5a8488ca3f4f95781bf5a35d166beef0">CreateCanvas</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>, <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> tex, std::string_view path_tex_full);</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a4eb1a9bb0fc8e0dcf2d32ece620536eb"> 889</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a4eb1a9bb0fc8e0dcf2d32ece620536eb">CreateCanvasImage</a>(<span class="keywordtype">size_t</span> tex_id, <span class="keyword">const</span> std::array&lt;Image*, NUM_MIPMAP_2D&gt;&amp; vec_image);</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a790b03a291818b50e894bae6417c2805"> 890</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a790b03a291818b50e894bae6417c2805">CreateCanvasImageKtx</a>(<span class="keywordtype">size_t</span> tex_id, std::string_view path_name, std::string_view path_tex_full);</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a967c2c42ca42088ae598166b4add4a87"> 891</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a967c2c42ca42088ae598166b4add4a87">CreateCanvasRenderTarget</a>(<span class="keywordtype">size_t</span> rt_id, <a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_render_target.html">VKRenderTarget</a>&amp; rt);</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> </div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#add1151effe473a0739bac63030624bf5"> 893</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#add1151effe473a0739bac63030624bf5">UpdateCanvasRenderTarget</a>(<span class="keywordtype">size_t</span> rt_id, <a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_render_target.html">VKRenderTarget</a>&amp; rt);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> </div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="comment">// 需要canvas【加锁】 只能主线程调用</span></div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aebce2badac2dd76f69fe4947881a34d3"> 896</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aebce2badac2dd76f69fe4947881a34d3">UpdateCanvasDescriptor</a>(<a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* canvas);</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> </div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aa873b1725b397f9598668d419372c1a2"> 898</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#aa873b1725b397f9598668d419372c1a2">GetCanvas</a>(<span class="keywordtype">size_t</span> <span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a77d64190ba3f498e313870fa377bb1a0"> 899</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#a77d64190ba3f498e313870fa377bb1a0">GetCanvasByTexture</a>(<span class="keywordtype">size_t</span> tex_id);</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#acfe500505213f9703cfe391500fd1011"> 900</a></span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#acfe500505213f9703cfe391500fd1011">GetCanvasByRenderTarget</a>(<span class="keywordtype">size_t</span> rt_id);</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> </div>
<div class="foldopen" id="foldopen00902" data-start="{" data-end="}">
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a43b10d224aadd7606502b6939e848e3f"> 902</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a43b10d224aadd7606502b6939e848e3f">GetCanvasSize</a>()</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> {</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="keywordflow">return</span> _2d._allCanvas.size();</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> }</div>
</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span></div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a220569b39366b7fc3437d054eed77e43"> 908</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_function" href="classdl_1_1_v_k.html#a220569b39366b7fc3437d054eed77e43">CreateTexture2D</a>(<span class="keyword">const</span> std::array&lt;Image*, NUM_MIPMAP_2D&gt;&amp; vec_image);</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span></div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="comment">// 仅更新2d的动态纹理</span></div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <span class="comment">// 必须通过暂存缓冲更新</span></div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a0160fd8c4e9de3c14dcd11177991771c"> 913</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a0160fd8c4e9de3c14dcd11177991771c">UpdateTexture2D</a>(<a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> tex, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">PointU</a>&amp; xy, <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* image, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">RectU</a>&amp; rect);</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> </div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <span class="comment">//!导出交换链图像</span></div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a88e651da84e9d7ab4210fbe06e989718"> 916</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a88e651da84e9d7ab4210fbe06e989718">ScreenShot</a>(std::string_view path_name);</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> </div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <span class="comment">//!导出图像</span></div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#afbf152bd0733858de586a202b366cd41"> 919</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#afbf152bd0733858de586a202b366cd41">ExportTexture</a>(<a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> tex, std::string_view path_name);</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a1f97d42f2395522b6db5f8a789d00c29"> 921</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a1f97d42f2395522b6db5f8a789d00c29">ExportTextureCanvas</a>(std::string_view path);</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span></div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ad980af66528bd0deec7ddcabffcf4abc"> 924</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#ad980af66528bd0deec7ddcabffcf4abc">GenerateMipmaps</a>(VkImage image, VkFormat imageFormat, int32_t texWidth, int32_t texHeight, uint32_t mipLevels);</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span></div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#afa838d54c4aebca4666c98573d2a0aff"> 927</a></span> VkSampleCountFlagBits <a class="code hl_function" href="classdl_1_1_v_k.html#afa838d54c4aebca4666c98573d2a0aff">GetMaxUsableSampleCount</a>();</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span></div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a2101a906c6248eecbfc0354994e85f99"> 930</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a2101a906c6248eecbfc0354994e85f99">LoadSkybox</a>(std::string_view path);</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a1b5be859e32a1b606f7824d6fe78bcbb"> 932</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a1b5be859e32a1b606f7824d6fe78bcbb">SetSkybox</a>(<span class="keywordtype">size_t</span> i);</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> </div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> </div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="comment">//</span></div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aa7c05528eb7a593c775f4a19ada7ffea"> 936</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aa7c05528eb7a593c775f4a19ada7ffea">CreateRenderTargetReal</a>(<span class="keywordtype">size_t</span> i, <a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_render_target.html">VKRenderTarget</a>&amp; rt);</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#aa503fc4e69fe495b6828c3e7a753f1ef"> 937</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#aa503fc4e69fe495b6828c3e7a753f1ef">CreateRenderTarget</a>();</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span></div>
<div class="foldopen" id="foldopen00940" data-start="{" data-end="}">
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a76884ef7a7cd8053971c5d1eb652419e"> 940</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_render_info2_d.html">RenderInfo2D</a>&amp; <a class="code hl_function" href="classdl_1_1_v_k.html#a76884ef7a7cd8053971c5d1eb652419e">GetRenderInfo2D</a>()</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> {</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <span class="keywordflow">return</span> _2d._renderInfo;</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> }</div>
</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> </div>
<div class="foldopen" id="foldopen00945" data-start="{" data-end="}">
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#abf11282c01c47ca789688e447a3007c1"> 945</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_render_info3_d.html">RenderInfo3D</a>&amp; <a class="code hl_function" href="classdl_1_1_v_k.html#abf11282c01c47ca789688e447a3007c1">GetRenderInfo3D</a>()</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> {</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">return</span> _renderInfo;</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> }</div>
</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span></div>
<div class="foldopen" id="foldopen00951" data-start="{" data-end="}">
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a4625524f03d4784e7cf66a120cac24d5"> 951</a></span> <a class="code hl_class" href="classdl_1_1_camera.html">Camera</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#a4625524f03d4784e7cf66a120cac24d5">GetCamera</a>()</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> {</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">return</span> _camera;</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> }</div>
</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span></div>
<div class="foldopen" id="foldopen00957" data-start="{" data-end="}">
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#af23eded69b86bc3a0b98ffb0eabb1096"> 957</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#af23eded69b86bc3a0b98ffb0eabb1096">Release</a>()</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> {</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> vkDeviceWaitIdle(_device);</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> _release_swap_chain();</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> }</div>
</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> </div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#ac050e68da2a75a38d65e952b0b8a3e2d"> 963</a></span> <a class="code hl_function" href="classdl_1_1_v_k.html#ac050e68da2a75a38d65e952b0b8a3e2d">~VK</a>();</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> </div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> VkInstance _instance; <span class="comment">// vk实例</span></div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> std::vector&lt;VkExtensionProperties&gt; _allExtension; <span class="comment">// 所有扩展,返回获得</span></div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> std::vector&lt;VkLayerProperties&gt; _allLayer; <span class="comment">// 所有层,返回获得</span></div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> std::vector&lt;const char*&gt; _allValidationLayer; <span class="comment">// 验证层,手动设置</span></div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> VkPhysicalDevice _physicalDevice; <span class="comment">// 所选物理设备</span></div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> std::vector&lt;VkPhysicalDevice&gt; _allPhysicalDevice; <span class="comment">// 所有物理设备</span></div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> VkDevice _device; <span class="comment">// 逻辑设备</span></div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> VkQueue _graphicsQueue; <span class="comment">// 图形队列</span></div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> VkSurfaceKHR _surface; <span class="comment">// 窗口表面</span></div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> VkQueue _presentQueue; <span class="comment">// 呈现队列</span></div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> std::vector&lt;const char*&gt; _allDeviceExtension; <span class="comment">// 物理设备所需扩展,手动设置</span></div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> VkSwapchainKHR _swapChain; <span class="comment">// 交换链</span></div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> uint32_t _countFrame; <span class="comment">// 交换链 frame数</span></div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> std::vector&lt;VkImage&gt; _allImageSwapChain; <span class="comment">// 交换链图像</span></div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> VkFormat _formatSwapChainImage; <span class="comment">// 交换链图像格式</span></div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> VkExtent2D _extentSwapChain; <span class="comment">// 交换链范围</span></div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> std::vector&lt;VkImageView&gt; _allImageViewSwapChain; <span class="comment">// 交换链图像视图</span></div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> VkRenderPass _renderPass3D; <span class="comment">// 3d渲染流程</span></div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> VkRenderPass _renderPass2D; <span class="comment">// 2d渲染流程</span></div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> VkPipelineLayout _pipelineLayout; <span class="comment">// 管线布局</span></div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> VkPipelineLayout _pipelineLayoutBone; <span class="comment">// 管线布局(骨骼动画)</span></div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> VkPipeline _graphicsPipeline; <span class="comment">// 图形管线</span></div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> VkPipeline _graphicsPipelineBone; <span class="comment">// 图形管线(骨骼动画)</span></div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> std::vector&lt;VkFramebuffer&gt; _allFrameBufferSwapChain;<span class="comment">// 交换链帧缓冲区</span></div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> VkCommandPool _commandPool; <span class="comment">// 命令池</span></div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> std::vector&lt;VkCommandBuffer&gt; _allCommandBuffer; <span class="comment">// 命令缓冲区(依赖于命令池,自动释放)</span></div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> std::vector&lt;VkSemaphore&gt; _allSemaphoreImageAvailable;<span class="comment">// 同步对象(交换链图像可用)</span></div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> std::vector&lt;VkSemaphore&gt; _allSemaphoreRenderFinished;<span class="comment">// 同步对象(绘制完成)</span></div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> std::vector&lt;VkFence&gt; _allFenceInFlight; <span class="comment">// 同步对象(绘制过程)</span></div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> VkCommandPool _commandPoolUpload; <span class="comment">// 命令池(上传)</span></div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> VkQueue _transferQueue; <span class="comment">// 传输队列</span></div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> uint32_t _currentFrame; <span class="comment">//当前帧</span></div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <span class="keywordtype">bool</span> _bFrameBufferResize; <span class="comment">//帧缓冲大小发生变化</span></div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> VkDebugUtilsMessengerEXT _debugMessenger; <span class="comment">//调试信使</span></div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> VkDescriptorSetLayout _descriptorSetLayout; <span class="comment">//描述符集合布局</span></div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> VkDescriptorSetLayout _descriptorSetLayoutTex; <span class="comment">//描述符集合布局(纹理贴图)</span></div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> VkDescriptorSetLayout _descriptorSetLayoutBone; <span class="comment">//描述符集合布局(骨骼动画)</span></div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> std::vector&lt;VkBuffer&gt; _uniformBuffers; <span class="comment">//统一缓冲</span></div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> std::vector&lt;VkDeviceMemory&gt; _uniformBuffersMemory; <span class="comment">//统一缓冲内存</span></div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> VkDescriptorPool _descriptorPool; <span class="comment">//描述符池</span></div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> std::vector&lt;VkDescriptorSet&gt; _descriptorSets; <span class="comment">// 描述符集(ubo、matrial、pass、cascade、ibl、brdf</span></div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> std::vector&lt;VkDescriptorSet&gt; _descriptorSetsTex; <span class="comment">// 描述符集(纹理)</span></div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> std::vector&lt;VkDescriptorSet&gt; _descriptorSetsBone; <span class="comment">// 描述符集(带骨骼动画)</span></div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> VkSampler _standardSampler; <span class="comment">// 纹理采样器(标准)</span></div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> VkSampler _pointSampler; <span class="comment">// 纹理采样器(physical、mask</span></div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> VkImage _depthImage; <span class="comment">//深度图像</span></div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> VkDeviceMemory _depthImageMemory; <span class="comment">//深度图像内存</span></div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> VkImageView _depthImageView; <span class="comment">//深度图像视图</span></div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> std::array&lt;PushConstantData, NUM_MAX_ACTOR&gt; _allPushConstant;<span class="comment">//常量缓冲</span></div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordtype">size_t</span> _curPushConstant; <span class="comment">//当前使用 常量缓冲 下标</span></div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <a class="code hl_class" href="classdl_1_1_camera.html">Camera</a>* _camera; <span class="comment">//当前摄像机(设置vp矩阵)</span></div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <a class="code hl_class" href="classdl_1_1_camera.html">Camera</a> _cameraDefault; <span class="comment">//默认相机</span></div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> std::vector&lt;Texture&gt; _allTexture3D; <span class="comment">//3d使用的所有贴图</span></div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> std::unordered_map&lt;std::string, size_t&gt; _mapPath2Texture; <span class="comment">//文件路径 -&gt; 纹理下标</span></div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> std::vector&lt;VkBuffer&gt; _ubMaterial; <span class="comment">// 材质缓冲</span></div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> std::vector&lt;VkDeviceMemory&gt; _ubMaterialMemory; <span class="comment">// 材质缓冲内存</span></div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> std::vector&lt;VkBuffer&gt; _ubPass; <span class="comment">// 通用缓冲</span></div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> std::vector&lt;VkDeviceMemory&gt; _ubPassMemory; <span class="comment">// 通用缓冲内存</span></div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> std::vector&lt;Material&gt; _allMaterial; <span class="comment">// 所有已添加材质(计数和避免重复)</span></div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> std::vector&lt;VkBuffer&gt; _ubBone; <span class="comment">// 骨骼ub</span></div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> std::vector&lt;VkDeviceMemory&gt; _ubBoneMemory; <span class="comment">// 骨骼ub内存</span></div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> std::vector&lt;bool&gt; _mapBoneUse; <span class="comment">// 骨骼ub使用表</span></div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> std::vector&lt;Primitive&gt; _allPrimitive; <span class="comment">// 所有图元</span></div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> VkImage _colorImage; <span class="comment">// 离屏图像</span></div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> VkDeviceMemory _colorImageMemory; <span class="comment">// 离屏图像内存</span></div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> VkImageView _colorImageView; <span class="comment">// 离屏图像视图</span></div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> std::vector&lt;VKRenderTarget&gt; _allRenderTarget; <span class="comment">// 所有rt0为默认3d渲染使用 </span></div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> </div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keyword">struct </span>TextureManager</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> {</div>
<div class="foldopen" id="foldopen01037" data-start="{" data-end="};">
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html"> 1037</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html">TaskLoad</a></div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> {</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html#abf71301d27ad5d8fd00340bb2140c90b"> 1039</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html#abf71301d27ad5d8fd00340bb2140c90b">_idCanvas</a>;</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> };</div>
</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <a class="code hl_class" href="classdl_1_1_multi_thread_task.html">MultiThreadTask&lt;TaskLoad&gt;</a> _mtt;</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> TextureManager(<a class="code hl_function" href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">VK</a>* vk) </div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> {</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> _mtt.<a class="code hl_function" href="classdl_1_1_multi_thread_task.html#a8d7a5d27fed3bfbabe79a72e058f81e2">Init</a>([vk](<a class="code hl_struct" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html">TaskLoad</a>&amp; task) {</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_canvas.html">Canvas</a>* canvas = vk-&gt;<a class="code hl_function" href="classdl_1_1_v_k.html#aa873b1725b397f9598668d419372c1a2">GetCanvas</a>(task.<a class="code hl_variable" href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html#abf71301d27ad5d8fd00340bb2140c90b">_idCanvas</a>);</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> canvas-&gt;<a class="code hl_function" href="structdl_1_1_v_k_1_1_canvas.html#a3af786f87cd62fa7e81cfb46a1eb4fcd">RealLoad</a>(vk);</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> }, 1);</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> }</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> };</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> TextureManager _textureMgr;</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">//---------------------灯光数据(每帧重建)----------------------------</span></div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> std::vector&lt;LightDir&gt; _allLightDir;</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> std::vector&lt;LightDot&gt; _allLightDot;</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> std::vector&lt;LightSpot&gt; _allLightSpot;</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> UbPass _pass;</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">// 天空盒</span></div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keyword">struct </span>Skybox</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> {</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> VkPipelineLayout _pipelineLayout; <span class="comment">// 管线布局</span></div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> VkPipeline _graphicsPipeline; <span class="comment">// 图形管线</span></div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> VkDescriptorSetLayout _descriptorSetLayout; <span class="comment">// 描述符布局</span></div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> std::vector&lt;VkDescriptorSet&gt; _descriptorSets; <span class="comment">// 描述符集</span></div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> VkBuffer _vertexBuffer; <span class="comment">// 顶点缓冲(每帧改变)</span></div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> VkDeviceMemory _vertexBufferMemory; <span class="comment">// 顶点缓冲内存</span></div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> VkDeviceSize _vertexBufferSize; <span class="comment">// 顶点缓冲大小</span></div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> VkBuffer _indexBuffer; <span class="comment">// 顶点缓冲(每帧改变)</span></div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> VkDeviceMemory _indexBufferMemory; <span class="comment">// 顶点缓冲内存</span></div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> </div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> VkSampler _envSampler; <span class="comment">// env 采样器</span></div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> VkSampler _iblSampler; <span class="comment">// ibl 采样器</span></div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> VkSampler _brdfSampler; <span class="comment">// brdf 采样器</span></div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> </div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> Texture _texBrdf; <span class="comment">// brdf</span></div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> </div>
<div class="foldopen" id="foldopen01077" data-start="{" data-end="};">
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html"> 1077</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html">Instance</a></div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> {</div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#adfa79e09116508d708fe9628631ac3bc"> 1079</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#adfa79e09116508d708fe9628631ac3bc">_texEnv</a>; <span class="comment">// env cube</span></div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#ae75c4e70526b6c4c46c1ba48d7fe819c"> 1080</a></span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> <a class="code hl_variable" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#ae75c4e70526b6c4c46c1ba48d7fe819c">_texIbl</a>; <span class="comment">// ibl cube</span></div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#a788e878e3b61c4bb454723a87bbfdf3a"> 1081</a></span> std::array&lt;Position4, 9&gt; <a class="code hl_variable" href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#a788e878e3b61c4bb454723a87bbfdf3a">_sh</a>; <span class="comment">// 球谐环境光</span></div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> };</div>
</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> std::vector&lt;Instance&gt; _vec;</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <span class="keywordtype">size_t</span> _current;</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> };</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> Skybox _skybox;</div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> </div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">// 阴影</span></div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="keyword">struct </span>Shadow</div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> {</div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> VkRenderPass _renderPass;</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> VkDescriptorSetLayout _descriptorSetLayout; <span class="comment">// 描述符布局 set0</span></div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> std::vector&lt;VkDescriptorSet&gt; _descriptorSets; <span class="comment">// 描述符集(ubo</span></div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> VkPipelineLayout _layout;</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> VkPipeline _pipeline;</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> VkPipeline _pipelineBone;</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> VkSampler _sampler; <span class="comment">// 采样器</span></div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <a class="code hl_struct" href="structdl_1_1_texture.html">Texture</a> _tex;</div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> </div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> std::vector&lt;VkBuffer&gt; _ubCsmBuffer;</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> std::vector&lt;VkDeviceMemory&gt; _ubCsmMemory;</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
<div class="foldopen" id="foldopen01103" data-start="{" data-end="};">
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html"> 1103</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html">Cascade</a></div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> {</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a9c60d927f84f8e6392611fc4c063a540"> 1105</a></span> VkImageView <a class="code hl_variable" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a9c60d927f84f8e6392611fc4c063a540">_imageView</a>;</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a5c2747383c4d75e42f466c7b32c1adf6"> 1106</a></span> VkFramebuffer <a class="code hl_variable" href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a5c2747383c4d75e42f466c7b32c1adf6">_frameBuffer</a>;</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> };</div>
</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> std::vector&lt;Cascade&gt; _cascade;</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> };</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> Shadow _shadow;</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> </div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <a class="code hl_struct" href="structdl_1_1_render_info3_d.html">RenderInfo3D</a> _renderInfo;</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> </div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">// 图元在描述符的实际下标如下:</span></div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">//index = _idPrimitive * NUM_MAX_FRAME_IN_FLIGHT + _currentFrame;</span></div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k2_d.html">VK2D</a> _2d; <span class="comment">//2d管线</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> <a class="code hl_struct" href="structdl_1_1_v_k_1_1_v_k_gfx.html">VKGfx</a> _gfx; <span class="comment">// gfx管线</span></div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> std::vector&lt;std::vector&lt;Model*&gt;&gt; _allMulModel;<span class="comment">// 3d可绘制实例</span></div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> </div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordtype">void</span> _init(<a class="code hl_struct" href="structdl_1_1_g_l_f_wwindow.html">GLFWwindow</a>* window);</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">// 检查拓展支持数</span></div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordtype">void</span> _check_extension();</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">// 返回需要的扩展(根据验证层)</span></div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> std::vector&lt;const char*&gt; _get_required_extensions();</div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">// 创建实例</span></div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> <span class="keywordtype">void</span> _create_instance();</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="comment">// 创建验证层</span></div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keywordtype">void</span> _check_layer();</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <span class="comment">// 检查调试层支持</span></div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> <span class="keywordtype">bool</span> _check_validation_layer();</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> </div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="comment">//开启调试信使</span></div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> <span class="keywordtype">void</span> _create_debug_messenger()</div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> {</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248">ENABLE_VALIDATION_LAYERS</a>)</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> VkDebugUtilsMessengerCreateInfoEXT createInfo;</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a8874244dd423f5855b2b11d06b2fb3bd">PopulateDebugMessengerCreateInfo</a>(createInfo);</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> </div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classdl_1_1_v_k.html#a0381387521c55277d7ac2579c9804ebf">CreateDebugUtilsMessengerEXT</a>(_instance, &amp;createInfo,</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> <span class="keyword">nullptr</span>, &amp;_debugMessenger) != VK_SUCCESS)</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> {</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <a class="code hl_function" href="namespacedl.html#a63038d8670ad1704740ccba95c1c4341">log_err0</a>(<span class="stringliteral">&quot;开启调试信使失败!&quot;</span>);</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> }</div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> }</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> </div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">// 创建物理设备</span></div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> <span class="keywordtype">void</span> _create_physical_device();</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">// 检查物理设备是否可用</span></div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> <span class="keywordtype">bool</span> _is_device_suitable(VkPhysicalDevice device);</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">// 检查物理设备扩展支持</span></div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <span class="keywordtype">bool</span> _check_device_extension(VkPhysicalDevice device);</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> <span class="comment">// 物理设备返回队列族 0.通用 1.传输</span></div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordtype">bool</span> _find_queue_families(VkPhysicalDevice device, uint32_t&amp; index, <span class="keywordtype">int</span> type = 0);</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> </div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">// 创建逻辑设备</span></div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <span class="keywordtype">void</span> _create_logical_device();</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">// 创建窗口表面</span></div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> <span class="keywordtype">void</span> _create_surface(GLFWwindow* window);</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> </div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> <span class="comment">// 返回交换链支持细节</span></div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> SwapChainSupportDetails _query_swap_chain_support(VkPhysicalDevice device);</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">// 选择交换链合适的表面格式</span></div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> VkSurfaceFormatKHR _choose_swap_surface_format(<span class="keyword">const</span> std::vector&lt;VkSurfaceFormatKHR&gt;&amp; availableFormats);</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">// 选择交换链合适的呈现模式</span></div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> VkPresentModeKHR _choose_swap_present_mode(<span class="keyword">const</span> std::vector&lt;VkPresentModeKHR&gt;&amp; availablePresentModes);</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> </div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">// 选择交换链分辨率</span></div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> VkExtent2D _choose_swap_extent(<span class="keyword">const</span> VkSurfaceCapabilitiesKHR&amp; capabilities,</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> GLFWwindow* window);</div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> </div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">// 创建交换链</span></div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> <span class="keywordtype">void</span> _create_swap_chain(GLFWwindow* window);</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">// 创建交换链图像视图</span></div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> <span class="keywordtype">void</span> _create_image_view();</div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> </div>
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">// 创建绘图流程</span></div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> <span class="keywordtype">void</span> _create_render_pass();</div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> <span class="comment">// 创建图形管道</span></div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> <span class="keywordtype">void</span> _create_pipeline_layout_3d();</div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordtype">void</span> _create_pipeline_layout_skybox();</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> </div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> <span class="comment">//-------------------骨骼动画-----------------</span></div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> <span class="keywordtype">void</span> _create_descriptor_set_layout_bone();<span class="comment">//布局</span></div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> <span class="keywordtype">void</span> _create_pipeline_layout_bone();<span class="comment">//管线</span></div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> <span class="keywordtype">void</span> _create_uniform_bone();<span class="comment">//统一缓冲</span></div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> </div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> <span class="keywordtype">void</span> _create_ibl();</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> </div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">// 从ktx创建纹理</span></div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="keywordtype">void</span> _create_texture_ktx(std::string_view path, Texture&amp; tex);</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> </div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> <span class="comment">// 创建交换链帧缓冲区</span></div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> <span class="keywordtype">void</span> _create_frame_buffer();</div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> </div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">// 创建命令池</span></div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> <span class="keywordtype">void</span> _create_command_pool();</div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <span class="comment">// 创建命令缓冲区</span></div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span> <span class="keywordtype">void</span> _create_command_buffer();</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> </div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> <span class="comment">// 创建同步对象</span></div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> <span class="keywordtype">void</span> _create_sync_objects();</div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> </div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> <span class="comment">// 上传队列</span></div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> <span class="keywordtype">void</span> _create_command_upload();</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">// 记录命令</span></div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordtype">void</span> _record_command_buffer(VkCommandBuffer command_buffer, uint32_t index_image);</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> <span class="comment">// 重建交换链</span></div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a641bc3cad3f34e494752a3db7ecbd005"> 1212</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a641bc3cad3f34e494752a3db7ecbd005">_rebuild_swap_chain</a>(<a class="code hl_struct" href="structdl_1_1_g_l_f_wwindow.html">GLFWwindow</a>* window);</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> </div>
<div class="foldopen" id="foldopen01214" data-start="{" data-end="}">
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a43eee2103e533eff47ca356e376f2633"> 1214</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a43eee2103e533eff47ca356e376f2633">_render_light</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_light_dir.html">LightDir</a>&amp; l)</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> {</div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> _allLightDir.push_back(l);</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> }</div>
</div>
<div class="foldopen" id="foldopen01218" data-start="{" data-end="}">
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a7098dcdbc8b89c185347be49d218c363"> 1218</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a7098dcdbc8b89c185347be49d218c363">_render_light</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_light_dot.html">LightDot</a>&amp; l)</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> {</div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> _allLightDot.push_back(l);</div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> }</div>
</div>
<div class="foldopen" id="foldopen01222" data-start="{" data-end="}">
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a0624ab53c1e834bd470aeb7690027401"> 1222</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a0624ab53c1e834bd470aeb7690027401">_render_light</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_light_spot.html">LightSpot</a>&amp; l)</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> {</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> _allLightSpot.push_back(l);</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> }</div>
</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">//释放交换链相关资源</span></div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordtype">void</span> _release_swap_chain();</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> </div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> </div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">//创建描述符布局(管线依赖)</span></div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <span class="keywordtype">void</span> _create_descriptor_set_layout();</div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> <span class="keywordtype">void</span> _create_descriptor_set_layout_texture();</div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> </div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">//创建统一缓冲</span></div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordtype">void</span> _create_uniform_buffers();</div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> </div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> <span class="comment">//更新统一缓冲</span></div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> <span class="keywordtype">void</span> _update_uniform_buffer();</div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> <span class="keywordtype">void</span> _update_uniform_light();</div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> </div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> <span class="comment">// 创建描述符池</span></div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> <span class="keywordtype">void</span> _create_descriptor_pool();</div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> </div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> <span class="comment">// 创建描述符集</span></div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> <span class="keywordtype">void</span> _create_descriptor_sets();</div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> </div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">// 创建纹理采样器</span></div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> <span class="keywordtype">void</span> _create_texture_sampler();</div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">// 创建深度缓存资源</span></div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <span class="keywordtype">void</span> _create_depth_resources();</div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">// 创建msaa资源</span></div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> <span class="keywordtype">void</span> _create_color_resources();</div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> </div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> </div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">//2d管线</span></div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> <span class="keywordtype">void</span> _create_2d();</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> <span class="keywordtype">void</span> _delete_2d();</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> </div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">// gfx管线</span></div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordtype">void</span> _create_gfx();</div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordtype">void</span> _delete_gfx();</div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> </div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">// skybox管线</span></div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> <span class="keywordtype">void</span> _create_skybox();</div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordtype">void</span> _delete_skybox();</div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> <span class="keywordtype">void</span> _create_descriptor_set_layout_skybox();</div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> </div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> </div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> <span class="comment">// shadow管线</span></div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordtype">void</span> _create_shadow();</div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> <span class="keywordtype">void</span> _delete_shadow();</div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> <span class="keywordtype">void</span> _create_render_pass_shadow();</div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> </div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> VkPipelineLayout _create_pipline_layout_shadow();</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> </div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> VkPipeline _create_graphics_pipeline_shadow(</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> std::string_view vs, std::string_view ps,</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> VkVertexInputBindingDescription* bind_desc, VkVertexInputAttributeDescription* attr_desc,</div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> <span class="keywordtype">size_t</span> num_attr, VkPipelineLayout layout);</div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> <span class="keywordtype">void</span> _create_descriptor_set_layout_shadow();</div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> </div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> <span class="keywordtype">bool</span> _check_gfx_vertex(VertexBufferGfx::Frame&amp; f_old);</div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> </div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">//------------------------------管线-------------------------------------</span></div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> </div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordtype">void</span> _create_pipeline_all();</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordtype">void</span> _delete_pipeline_all();</div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> </div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> <span class="keywordtype">void</span> _create_pipeline_gfx();</div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> <span class="keywordtype">void</span> _create_pipeline_2d();</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> <span class="keywordtype">void</span> _create_pipeline_3d();</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> <span class="keywordtype">void</span> _create_pipeline_bone();</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> <span class="keywordtype">void</span> _create_pipeline_skybox();</div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> <span class="keywordtype">void</span> _create_pipeline_shadow();</div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">// 动态参数</span></div>
<div class="foldopen" id="foldopen01298" data-start="{" data-end="};">
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_render_param.html"> 1298</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structdl_1_1_v_k_1_1_render_param.html">RenderParam</a></div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> {</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"><a class="line" href="structdl_1_1_v_k_1_1_render_param.html#a23e1307e2207a8058b9e6d9eab2aed6f"> 1300</a></span> VkSampleCountFlagBits <a class="code hl_variable" href="structdl_1_1_v_k_1_1_render_param.html#a23e1307e2207a8058b9e6d9eab2aed6f">_msaaLevel</a>;</div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> </div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a0d75da5b13339299c3739757b60e28e8"> 1302</a></span> }<a class="code hl_variable" href="classdl_1_1_v_k.html#a0d75da5b13339299c3739757b60e28e8">_param</a>;</div>
</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> </div>
<div class="foldopen" id="foldopen01304" data-start="{" data-end="}">
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a748d3c706d79504feec163ddf974b8a4"> 1304</a></span> uint32_t <a class="code hl_function" href="classdl_1_1_v_k.html#a748d3c706d79504feec163ddf974b8a4">GetCurrentFrame</a>()</div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> {</div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> <span class="keywordflow">return</span> _currentFrame;</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> }</div>
</div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> </div>
<div class="foldopen" id="foldopen01309" data-start="{" data-end="}">
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a7dd9faedd3305571607db228f72f7795"> 1309</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a7dd9faedd3305571607db228f72f7795">GfxPushDot</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v)</div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> {</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[0 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a>];</div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> vec.push_back(v);</div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> }</div>
</div>
<div class="foldopen" id="foldopen01315" data-start="{" data-end="}">
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a8b7c2b6adf81f9be52e44d4312f29758"> 1315</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a8b7c2b6adf81f9be52e44d4312f29758">GfxPushLine</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v0, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v1)</div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> {</div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v0.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v1.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[1 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a>];</div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> vec.push_back(v0);</div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> vec.push_back(v1);</div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> }</div>
</div>
<div class="foldopen" id="foldopen01322" data-start="{" data-end="}">
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a2ccb72abc4fa611dc3062c1465104cbe"> 1322</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a2ccb72abc4fa611dc3062c1465104cbe">GfxPushTriangle</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v0, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v1, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v2)</div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> {</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v0.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v1.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v2.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[2 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a>];</div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> vec.push_back(v0);</div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> vec.push_back(v1);</div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> vec.push_back(v2);</div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> }</div>
</div>
<div class="foldopen" id="foldopen01330" data-start="{" data-end="}">
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a4419d1e9fa59d402c64d032cd6bf8886"> 1330</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a4419d1e9fa59d402c64d032cd6bf8886">GfxPushDot2D</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v)</div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> {</div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[0 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a> + <a class="code hl_variable" href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d">NUM_GFX_QUAD</a>];</div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> vec.push_back(v);</div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> }</div>
</div>
<div class="foldopen" id="foldopen01336" data-start="{" data-end="}">
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#af0f2444ff9a351dd892cdc30bda90ffb"> 1336</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#af0f2444ff9a351dd892cdc30bda90ffb">GfxPushLine2D</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v0, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v1)</div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> {</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v0.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v1.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[1 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a> + <a class="code hl_variable" href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d">NUM_GFX_QUAD</a>];</div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> vec.push_back(v0);</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> vec.push_back(v1);</div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> }</div>
</div>
<div class="foldopen" id="foldopen01343" data-start="{" data-end="}">
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a31d97e9bec4856022b85ffa0059b4690"> 1343</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a31d97e9bec4856022b85ffa0059b4690">GfxPushTriangle2D</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v0, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v1, <span class="keyword">const</span> <a class="code hl_struct" href="structdl_1_1_vertex_gfx.html">VertexGfx</a>&amp; v2)</div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> {</div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordtype">bool</span> opaque = <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v0.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v1.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>) &amp;&amp; <a class="code hl_function" href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">isColorOpaque</a>(v2.<a class="code hl_variable" href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">_color</a>);</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> <span class="keyword">auto</span>&amp; vec = _gfx._allVertex[2 + !opaque * <a class="code hl_variable" href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">NUM_GFX_HALF</a> + <a class="code hl_variable" href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d">NUM_GFX_QUAD</a>];</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> vec.push_back(v0);</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> vec.push_back(v1);</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> vec.push_back(v2);</div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> }</div>
</div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> </div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#af473a3d931084f3ae6199eb5a6c855d7"> 1352</a></span> <a class="code hl_class" href="classdl_1_1_coor.html">Coor</a>* <a class="code hl_function" href="classdl_1_1_v_k.html#af473a3d931084f3ae6199eb5a6c855d7">GetRootCoor</a>(<span class="keywordtype">size_t</span> index);</div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> </div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a25f109ec4f3677448b6a28385a8cf7da"> 1354</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a25f109ec4f3677448b6a28385a8cf7da">GetMulModelSize</a>() { <span class="keywordflow">return</span> _allMulModel.size(); }</div>
<div class="foldopen" id="foldopen01355" data-start="{" data-end="}">
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a4dbc129d92b9a804ba465e424fd7db17"> 1355</a></span> std::vector&lt;Model*&gt;&amp; <a class="code hl_function" href="classdl_1_1_v_k.html#a4dbc129d92b9a804ba465e424fd7db17">GetMulModel</a>(<span class="keywordtype">size_t</span> i)</div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> {</div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> <span class="keywordflow">return</span> _allMulModel[i];</div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> }</div>
</div>
<div class="foldopen" id="foldopen01359" data-start="{" data-end="}">
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"><a class="line" href="classdl_1_1_v_k.html#a350716ae8e942a098acb296e34e678d9"> 1359</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_v_k.html#a350716ae8e942a098acb296e34e678d9">AddMulModel</a>(std::vector&lt;Model*&gt;&amp; vec)</div>
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> {</div>
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> _allMulModel.push_back(vec);</div>
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> }</div>
</div>
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span>};</div>
</div>
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span> </div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span><span class="keyword">extern</span> VK* <a class="code hl_variable" href="namespacedl.html#a2a529100d9a24ebc78d54dae30c13b70">g_vk</a>;</div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> </div>
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span>}</div>
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> </div>
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> </div>
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassdl_1_1_array_html"><div class="ttname"><a href="classdl_1_1_array.html">dl::Array</a></div><div class="ttdoc">Array</div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00028">dl_array.h:29</a></div></div>
<div class="ttc" id="aclassdl_1_1_buffer_html"><div class="ttname"><a href="classdl_1_1_buffer.html">dl::Buffer</a></div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00028">dl_buffer.h:29</a></div></div>
<div class="ttc" id="aclassdl_1_1_camera_html"><div class="ttname"><a href="classdl_1_1_camera.html">dl::Camera</a></div><div class="ttdoc">3d相机</div><div class="ttdef"><b>定义</b> <a href="dl__camera_8h_source.html#l00021">dl_camera.h:22</a></div></div>
<div class="ttc" id="aclassdl_1_1_coor_html"><div class="ttname"><a href="classdl_1_1_coor.html">dl::Coor</a></div><div class="ttdoc">2d坐标系</div><div class="ttdef"><b>定义</b> <a href="dl__coor_8h_source.html#l00026">dl_coor.h:27</a></div></div>
<div class="ttc" id="aclassdl_1_1_light_dir_html"><div class="ttname"><a href="classdl_1_1_light_dir.html">dl::LightDir</a></div><div class="ttdoc">平行光</div><div class="ttdef"><b>定义</b> <a href="dl__light_8h_source.html#l00021">dl_light.h:22</a></div></div>
<div class="ttc" id="aclassdl_1_1_light_dot_html"><div class="ttname"><a href="classdl_1_1_light_dot.html">dl::LightDot</a></div><div class="ttdoc">点光源</div><div class="ttdef"><b>定义</b> <a href="dl__light_8h_source.html#l00059">dl_light.h:60</a></div></div>
<div class="ttc" id="aclassdl_1_1_light_spot_html"><div class="ttname"><a href="classdl_1_1_light_spot.html">dl::LightSpot</a></div><div class="ttdoc">聚光灯</div><div class="ttdef"><b>定义</b> <a href="dl__light_8h_source.html#l00104">dl_light.h:105</a></div></div>
<div class="ttc" id="aclassdl_1_1_model_html"><div class="ttname"><a href="classdl_1_1_model.html">dl::Model</a></div><div class="ttdef"><b>定义</b> <a href="dl__model_8h_source.html#l00024">dl_model.h:25</a></div></div>
<div class="ttc" id="aclassdl_1_1_model_object_html"><div class="ttname"><a href="classdl_1_1_model_object.html">dl::ModelObject</a></div><div class="ttdef"><b>定义</b> <a href="dl__model__object_8h_source.html#l00031">dl_model_object.h:32</a></div></div>
<div class="ttc" id="aclassdl_1_1_multi_thread_task_html"><div class="ttname"><a href="classdl_1_1_multi_thread_task.html">dl::MultiThreadTask</a></div><div class="ttdoc">多线程任务</div><div class="ttdef"><b>定义</b> <a href="dl__thread__task_8h_source.html#l00024">dl_thread_task.h:25</a></div></div>
<div class="ttc" id="aclassdl_1_1_multi_thread_task_html_a8d7a5d27fed3bfbabe79a72e058f81e2"><div class="ttname"><a href="classdl_1_1_multi_thread_task.html#a8d7a5d27fed3bfbabe79a72e058f81e2">dl::MultiThreadTask::Init</a></div><div class="ttdeci">void Init(FnDoTask fn_do_task, size_t thread_num=(size_t) std::thread::hardware_concurrency())</div><div class="ttdef"><b>定义</b> <a href="dl__thread__task_8h_source.html#l00030">dl_thread_task.h:30</a></div></div>
<div class="ttc" id="aclassdl_1_1_sprite_html_ad5d569a513c629222a75400e7cd8ced4"><div class="ttname"><a href="classdl_1_1_sprite.html#ad5d569a513c629222a75400e7cd8ced4">dl::Sprite::Sampler</a></div><div class="ttdeci">Sampler</div><div class="ttdef"><b>定义</b> <a href="dl__sprite_8h_source.html#l00074">dl_sprite.h:75</a></div></div>
<div class="ttc" id="aclassdl_1_1_sprite_html_aff40ece16d9f27ad0106fd2f48565dac"><div class="ttname"><a href="classdl_1_1_sprite.html#aff40ece16d9f27ad0106fd2f48565dac">dl::Sprite::Blend</a></div><div class="ttdeci">Blend</div><div class="ttdef"><b>定义</b> <a href="dl__sprite_8h_source.html#l00080">dl_sprite.h:81</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a0160fd8c4e9de3c14dcd11177991771c"><div class="ttname"><a href="classdl_1_1_v_k.html#a0160fd8c4e9de3c14dcd11177991771c">dl::VK::UpdateTexture2D</a></div><div class="ttdeci">void UpdateTexture2D(Texture tex, const PointU &amp;xy, Image *image, const RectU &amp;rect)</div><div class="ttdoc">更新纹理区域(自动生成mipmap</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a0381387521c55277d7ac2579c9804ebf"><div class="ttname"><a href="classdl_1_1_v_k.html#a0381387521c55277d7ac2579c9804ebf">dl::VK::CreateDebugUtilsMessengerEXT</a></div><div class="ttdeci">static VkResult CreateDebugUtilsMessengerEXT(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugUtilsMessengerEXT *pDebugMessenger)</div><div class="ttdoc">验证层代理函数</div><div class="ttdef"><b>定义</b> <a href="#l00597">dl_vk.h:597</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a05c97a24d8f567a0df426e5beef00a81"><div class="ttname"><a href="classdl_1_1_v_k.html#a05c97a24d8f567a0df426e5beef00a81">dl::VK::RenderEnd</a></div><div class="ttdeci">void RenderEnd()</div><div class="ttdoc">帧尾清理工作</div><div class="ttdef"><b>定义</b> <a href="#l00572">dl_vk.h:572</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a0624ab53c1e834bd470aeb7690027401"><div class="ttname"><a href="classdl_1_1_v_k.html#a0624ab53c1e834bd470aeb7690027401">dl::VK::_render_light</a></div><div class="ttdeci">void _render_light(const LightSpot &amp;l)</div><div class="ttdef"><b>定义</b> <a href="#l01222">dl_vk.h:1222</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a066a8775186453dcc6ba4a5e2b5fec66"><div class="ttname"><a href="classdl_1_1_v_k.html#a066a8775186453dcc6ba4a5e2b5fec66">dl::VK::CreateBuffer</a></div><div class="ttdeci">bool CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &amp;buffer, VkDeviceMemory &amp;bufferMemory)</div><div class="ttdoc">创建缓冲区</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a0d75da5b13339299c3739757b60e28e8"><div class="ttname"><a href="classdl_1_1_v_k.html#a0d75da5b13339299c3739757b60e28e8">dl::VK::_param</a></div><div class="ttdeci">struct dl::VK::RenderParam _param</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a132bca0e2b445f92493cd7fa8d7ea181"><div class="ttname"><a href="classdl_1_1_v_k.html#a132bca0e2b445f92493cd7fa8d7ea181">dl::VK::GetDevice</a></div><div class="ttdeci">VkDevice GetDevice()</div><div class="ttdef"><b>定义</b> <a href="#l00766">dl_vk.h:766</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a1b5be859e32a1b606f7824d6fe78bcbb"><div class="ttname"><a href="classdl_1_1_v_k.html#a1b5be859e32a1b606f7824d6fe78bcbb">dl::VK::SetSkybox</a></div><div class="ttdeci">void SetSkybox(size_t i)</div><div class="ttdoc">设置当前天空盒</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a1d320f5ae25275dd989aac75b8337505"><div class="ttname"><a href="classdl_1_1_v_k.html#a1d320f5ae25275dd989aac75b8337505">dl::VK::CallbackDebug</a></div><div class="ttdeci">static VKAPI_ATTR VkBool32 VKAPI_CALL CallbackDebug(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData)</div><div class="ttdoc">调试回调函数</div><div class="ttdef"><b>定义</b> <a href="#l00583">dl_vk.h:583</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a1f97d42f2395522b6db5f8a789d00c29"><div class="ttname"><a href="classdl_1_1_v_k.html#a1f97d42f2395522b6db5f8a789d00c29">dl::VK::ExportTextureCanvas</a></div><div class="ttdeci">void ExportTextureCanvas(std::string_view path)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a2033c2f00586e0d5a18a892ef0bd9391"><div class="ttname"><a href="classdl_1_1_v_k.html#a2033c2f00586e0d5a18a892ef0bd9391">dl::VK::CreateImageView</a></div><div class="ttdeci">VkImageView CreateImageView(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, uint32_t mip_level)</div><div class="ttdoc">创建图像视图</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a2101a906c6248eecbfc0354994e85f99"><div class="ttname"><a href="classdl_1_1_v_k.html#a2101a906c6248eecbfc0354994e85f99">dl::VK::LoadSkybox</a></div><div class="ttdeci">size_t LoadSkybox(std::string_view path)</div><div class="ttdoc">加载天空盒</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a218ecf6caf191f2a01851c0dd4423cfc"><div class="ttname"><a href="classdl_1_1_v_k.html#a218ecf6caf191f2a01851c0dd4423cfc">dl::VK::BeginSingleTimeCommands</a></div><div class="ttdeci">VkCommandBuffer BeginSingleTimeCommands()</div><div class="ttdoc">开始命令记录</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a220569b39366b7fc3437d054eed77e43"><div class="ttname"><a href="classdl_1_1_v_k.html#a220569b39366b7fc3437d054eed77e43">dl::VK::CreateTexture2D</a></div><div class="ttdeci">Texture CreateTexture2D(const std::array&lt; Image *, NUM_MIPMAP_2D &gt; &amp;vec_image)</div><div class="ttdoc">真正的创建一个2d管线纹理</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a2463bc7e0a3e67db9be1e3a37d0fa483"><div class="ttname"><a href="classdl_1_1_v_k.html#a2463bc7e0a3e67db9be1e3a37d0fa483">dl::VK::FindDepthFormat</a></div><div class="ttdeci">VkFormat FindDepthFormat()</div><div class="ttdoc">查找支持的深度测试</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a25f109ec4f3677448b6a28385a8cf7da"><div class="ttname"><a href="classdl_1_1_v_k.html#a25f109ec4f3677448b6a28385a8cf7da">dl::VK::GetMulModelSize</a></div><div class="ttdeci">size_t GetMulModelSize()</div><div class="ttdef"><b>定义</b> <a href="#l01354">dl_vk.h:1354</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a2ccb72abc4fa611dc3062c1465104cbe"><div class="ttname"><a href="classdl_1_1_v_k.html#a2ccb72abc4fa611dc3062c1465104cbe">dl::VK::GfxPushTriangle</a></div><div class="ttdeci">void GfxPushTriangle(const VertexGfx &amp;v0, const VertexGfx &amp;v1, const VertexGfx &amp;v2)</div><div class="ttdef"><b>定义</b> <a href="#l01322">dl_vk.h:1322</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a311809e67ab667b93ef1c98910f699bb"><div class="ttname"><a href="classdl_1_1_v_k.html#a311809e67ab667b93ef1c98910f699bb">dl::VK::GetDebugView</a></div><div class="ttdeci">DebugView3D GetDebugView()</div><div class="ttdef"><b>定义</b> <a href="#l00870">dl_vk.h:870</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a31d97e9bec4856022b85ffa0059b4690"><div class="ttname"><a href="classdl_1_1_v_k.html#a31d97e9bec4856022b85ffa0059b4690">dl::VK::GfxPushTriangle2D</a></div><div class="ttdeci">void GfxPushTriangle2D(const VertexGfx &amp;v0, const VertexGfx &amp;v1, const VertexGfx &amp;v2)</div><div class="ttdef"><b>定义</b> <a href="#l01343">dl_vk.h:1343</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a32e2b879756a3f8efea28b72af8d052d"><div class="ttname"><a href="classdl_1_1_v_k.html#a32e2b879756a3f8efea28b72af8d052d">dl::VK::DeleteModel</a></div><div class="ttdeci">void DeleteModel(Model *model)</div><div class="ttdoc">删除模型</div><div class="ttdef"><b>定义</b> <a href="#l00800">dl_vk.h:800</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a350716ae8e942a098acb296e34e678d9"><div class="ttname"><a href="classdl_1_1_v_k.html#a350716ae8e942a098acb296e34e678d9">dl::VK::AddMulModel</a></div><div class="ttdeci">void AddMulModel(std::vector&lt; Model * &gt; &amp;vec)</div><div class="ttdef"><b>定义</b> <a href="#l01359">dl_vk.h:1359</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a36d5c031c3d3a080c6e25cdeaf2fc541"><div class="ttname"><a href="classdl_1_1_v_k.html#a36d5c031c3d3a080c6e25cdeaf2fc541">dl::VK::UpdateUboBone</a></div><div class="ttdeci">void UpdateUboBone(size_t id, std::vector&lt; Matrix4 &gt; &amp;trans)</div><div class="ttdoc">更新骨骼ubo(实例id)</div><div class="ttdef"><b>定义</b> <a href="#l00829">dl_vk.h:829</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a43b10d224aadd7606502b6939e848e3f"><div class="ttname"><a href="classdl_1_1_v_k.html#a43b10d224aadd7606502b6939e848e3f">dl::VK::GetCanvasSize</a></div><div class="ttdeci">size_t GetCanvasSize()</div><div class="ttdef"><b>定义</b> <a href="#l00902">dl_vk.h:902</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a43eee2103e533eff47ca356e376f2633"><div class="ttname"><a href="classdl_1_1_v_k.html#a43eee2103e533eff47ca356e376f2633">dl::VK::_render_light</a></div><div class="ttdeci">void _render_light(const LightDir &amp;l)</div><div class="ttdef"><b>定义</b> <a href="#l01214">dl_vk.h:1214</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a4419d1e9fa59d402c64d032cd6bf8886"><div class="ttname"><a href="classdl_1_1_v_k.html#a4419d1e9fa59d402c64d032cd6bf8886">dl::VK::GfxPushDot2D</a></div><div class="ttdeci">void GfxPushDot2D(const VertexGfx &amp;v)</div><div class="ttdef"><b>定义</b> <a href="#l01330">dl_vk.h:1330</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a452c2a8987b7431073f4db46b2afdc0a"><div class="ttname"><a href="classdl_1_1_v_k.html#a452c2a8987b7431073f4db46b2afdc0a">dl::VK::FindMemoryType</a></div><div class="ttdeci">uint32_t FindMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties)</div><div class="ttdoc">查找内存类型</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a4625524f03d4784e7cf66a120cac24d5"><div class="ttname"><a href="classdl_1_1_v_k.html#a4625524f03d4784e7cf66a120cac24d5">dl::VK::GetCamera</a></div><div class="ttdeci">Camera * GetCamera()</div><div class="ttdoc">返回当前相机</div><div class="ttdef"><b>定义</b> <a href="#l00951">dl_vk.h:951</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a4dbc129d92b9a804ba465e424fd7db17"><div class="ttname"><a href="classdl_1_1_v_k.html#a4dbc129d92b9a804ba465e424fd7db17">dl::VK::GetMulModel</a></div><div class="ttdeci">std::vector&lt; Model * &gt; &amp; GetMulModel(size_t i)</div><div class="ttdef"><b>定义</b> <a href="#l01355">dl_vk.h:1355</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a4e623b5f4f8b63b66f319b49f13fd960"><div class="ttname"><a href="classdl_1_1_v_k.html#a4e623b5f4f8b63b66f319b49f13fd960">dl::VK::CreateVertexBufferCPU</a></div><div class="ttdeci">bool CreateVertexBufferCPU(size_t vertex_num, VkBuffer &amp;vertexBuffer, VkDeviceMemory &amp;vertexBufferMemory, VkDeviceSize &amp;bufferSize)</div><div class="ttdoc">创建顶点缓冲(CPU可访问,用于2d管线)</div><div class="ttdef"><b>定义</b> <a href="#l00680">dl_vk.h:680</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a4eb1a9bb0fc8e0dcf2d32ece620536eb"><div class="ttname"><a href="classdl_1_1_v_k.html#a4eb1a9bb0fc8e0dcf2d32ece620536eb">dl::VK::CreateCanvasImage</a></div><div class="ttdeci">void CreateCanvasImage(size_t tex_id, const std::array&lt; Image *, NUM_MIPMAP_2D &gt; &amp;vec_image)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a5a8488ca3f4f95781bf5a35d166beef0"><div class="ttname"><a href="classdl_1_1_v_k.html#a5a8488ca3f4f95781bf5a35d166beef0">dl::VK::CreateCanvas</a></div><div class="ttdeci">void CreateCanvas(size_t id, Texture tex, std::string_view path_tex_full)</div><div class="ttdoc">创建Canvas2d管线资源)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a608b75bc911613e637d4b8bee4fbb668"><div class="ttname"><a href="classdl_1_1_v_k.html#a608b75bc911613e637d4b8bee4fbb668">dl::VK::CopyBufferToImage</a></div><div class="ttdeci">void CopyBufferToImage(VkBuffer buffer, VkImage image, uint32_t width, uint32_t height, uint32_t mip_level)</div><div class="ttdoc">复制缓冲区 到 图像</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a641bc3cad3f34e494752a3db7ecbd005"><div class="ttname"><a href="classdl_1_1_v_k.html#a641bc3cad3f34e494752a3db7ecbd005">dl::VK::_rebuild_swap_chain</a></div><div class="ttdeci">void _rebuild_swap_chain(GLFWwindow *window)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a682adb523684c5038166b5dfbaf17048"><div class="ttname"><a href="classdl_1_1_v_k.html#a682adb523684c5038166b5dfbaf17048">dl::VK::GetPushConstant</a></div><div class="ttdeci">PushConstantData * GetPushConstant(size_t id)</div><div class="ttdoc">返回 推送常量</div><div class="ttdef"><b>定义</b> <a href="#l00818">dl_vk.h:818</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a7098dcdbc8b89c185347be49d218c363"><div class="ttname"><a href="classdl_1_1_v_k.html#a7098dcdbc8b89c185347be49d218c363">dl::VK::_render_light</a></div><div class="ttdeci">void _render_light(const LightDot &amp;l)</div><div class="ttdef"><b>定义</b> <a href="#l01218">dl_vk.h:1218</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a7177b069ad7935f23dd5df84713e985b"><div class="ttname"><a href="classdl_1_1_v_k.html#a7177b069ad7935f23dd5df84713e985b">dl::VK::CreateTexture</a></div><div class="ttdeci">size_t CreateTexture(std::string_view path_name, bool srgb=true)</div><div class="ttdoc">创建Texture</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a748d3c706d79504feec163ddf974b8a4"><div class="ttname"><a href="classdl_1_1_v_k.html#a748d3c706d79504feec163ddf974b8a4">dl::VK::GetCurrentFrame</a></div><div class="ttdeci">uint32_t GetCurrentFrame()</div><div class="ttdef"><b>定义</b> <a href="#l01304">dl_vk.h:1304</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a74bab350d0cf83af2a85e9f534e185c7"><div class="ttname"><a href="classdl_1_1_v_k.html#a74bab350d0cf83af2a85e9f534e185c7">dl::VK::CopyBufferToImageMulti</a></div><div class="ttdeci">void CopyBufferToImageMulti(const std::array&lt; VkBuffer, NUM_MIPMAP_2D &gt; &amp;vec_buffer, VkImage image, const std::array&lt; Size, NUM_MIPMAP_2D &gt; &amp;vec_size)</div><div class="ttdoc">复制缓冲区 到 图像(mipmap</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a757d8fdd644e8b3ad04a56cea4f8b2b7"><div class="ttname"><a href="classdl_1_1_v_k.html#a757d8fdd644e8b3ad04a56cea4f8b2b7">dl::VK::FindSupportedFormat</a></div><div class="ttdeci">VkFormat FindSupportedFormat(const std::vector&lt; VkFormat &gt; &amp;candidates, VkImageTiling tiling, VkFormatFeatureFlags features)</div><div class="ttdoc">查找支持的格式</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a75aaceb6742700912b4aa375f75c70e3"><div class="ttname"><a href="classdl_1_1_v_k.html#a75aaceb6742700912b4aa375f75c70e3">dl::VK::CreateTextureReal</a></div><div class="ttdeci">size_t CreateTextureReal(Image *image, bool srgb, bool delete_image)</div><div class="ttdoc">真正的创建一个纹理,失败返回0</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a76884ef7a7cd8053971c5d1eb652419e"><div class="ttname"><a href="classdl_1_1_v_k.html#a76884ef7a7cd8053971c5d1eb652419e">dl::VK::GetRenderInfo2D</a></div><div class="ttdeci">const RenderInfo2D &amp; GetRenderInfo2D()</div><div class="ttdoc">返回绘制信息</div><div class="ttdef"><b>定义</b> <a href="#l00940">dl_vk.h:940</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a76f040f94a0674f7112c2a6f13d0e124"><div class="ttname"><a href="classdl_1_1_v_k.html#a76f040f94a0674f7112c2a6f13d0e124">dl::VK::CreateVertexBufferGPU</a></div><div class="ttdeci">void CreateVertexBufferGPU(const std::vector&lt; T &gt; &amp;vertices, VkBuffer &amp;vertexBuffer, VkDeviceMemory &amp;vertexBufferMemory)</div><div class="ttdoc">创建顶点缓冲(CPU不可访问,用于模型)</div><div class="ttdef"><b>定义</b> <a href="#l00649">dl_vk.h:649</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a77d64190ba3f498e313870fa377bb1a0"><div class="ttname"><a href="classdl_1_1_v_k.html#a77d64190ba3f498e313870fa377bb1a0">dl::VK::GetCanvasByTexture</a></div><div class="ttdeci">Canvas * GetCanvasByTexture(size_t tex_id)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a790b03a291818b50e894bae6417c2805"><div class="ttname"><a href="classdl_1_1_v_k.html#a790b03a291818b50e894bae6417c2805">dl::VK::CreateCanvasImageKtx</a></div><div class="ttdeci">void CreateCanvasImageKtx(size_t tex_id, std::string_view path_name, std::string_view path_tex_full)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a7dd9faedd3305571607db228f72f7795"><div class="ttname"><a href="classdl_1_1_v_k.html#a7dd9faedd3305571607db228f72f7795">dl::VK::GfxPushDot</a></div><div class="ttdeci">void GfxPushDot(const VertexGfx &amp;v)</div><div class="ttdef"><b>定义</b> <a href="#l01309">dl_vk.h:1309</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a8338b6d0a6e1850e02fd27e95593e902"><div class="ttname"><a href="classdl_1_1_v_k.html#a8338b6d0a6e1850e02fd27e95593e902">dl::VK::CreateMaterial</a></div><div class="ttdeci">size_t CreateMaterial(Material &amp;m)</div><div class="ttdoc">创建一个材质(检查重复)</div><div class="ttdef"><b>定义</b> <a href="#l00769">dl_vk.h:769</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a8874244dd423f5855b2b11d06b2fb3bd"><div class="ttname"><a href="classdl_1_1_v_k.html#a8874244dd423f5855b2b11d06b2fb3bd">dl::VK::PopulateDebugMessengerCreateInfo</a></div><div class="ttdeci">void PopulateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT &amp;createInfo)</div><div class="ttdoc">填充调试信使结构</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a88e651da84e9d7ab4210fbe06e989718"><div class="ttname"><a href="classdl_1_1_v_k.html#a88e651da84e9d7ab4210fbe06e989718">dl::VK::ScreenShot</a></div><div class="ttdeci">void ScreenShot(std::string_view path_name)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a893f6da42c38ccc8ee98c3a0c25d6603"><div class="ttname"><a href="classdl_1_1_v_k.html#a893f6da42c38ccc8ee98c3a0c25d6603">dl::VK::RenderModel</a></div><div class="ttdeci">void RenderModel(VkCommandBuffer command_buffer, Model *model, size_t shadow)</div><div class="ttdoc">绘制模型</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a8b7c2b6adf81f9be52e44d4312f29758"><div class="ttname"><a href="classdl_1_1_v_k.html#a8b7c2b6adf81f9be52e44d4312f29758">dl::VK::GfxPushLine</a></div><div class="ttdeci">void GfxPushLine(const VertexGfx &amp;v0, const VertexGfx &amp;v1)</div><div class="ttdef"><b>定义</b> <a href="#l01315">dl_vk.h:1315</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a8bd5e1b36f670b91289d95a574d366aa"><div class="ttname"><a href="classdl_1_1_v_k.html#a8bd5e1b36f670b91289d95a574d366aa">dl::VK::SetFrameBufferResize</a></div><div class="ttdeci">void SetFrameBufferResize()</div><div class="ttdoc">设置帧缓冲大小发生变化</div><div class="ttdef"><b>定义</b> <a href="#l00580">dl_vk.h:580</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a903d903e78ccad0794a9d60bedf40c8f"><div class="ttname"><a href="classdl_1_1_v_k.html#a903d903e78ccad0794a9d60bedf40c8f">dl::VK::GetPushConstantNext</a></div><div class="ttdeci">size_t GetPushConstantNext()</div><div class="ttdoc">返回 下一个可用推送常量</div><div class="ttdef"><b>定义</b> <a href="#l00813">dl_vk.h:813</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a967c2c42ca42088ae598166b4add4a87"><div class="ttname"><a href="classdl_1_1_v_k.html#a967c2c42ca42088ae598166b4add4a87">dl::VK::CreateCanvasRenderTarget</a></div><div class="ttdeci">void CreateCanvasRenderTarget(size_t rt_id, VKRenderTarget &amp;rt)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a98806e16ac68f8247e968c4826287b89"><div class="ttname"><a href="classdl_1_1_v_k.html#a98806e16ac68f8247e968c4826287b89">dl::VK::SetUboBoneUse</a></div><div class="ttdeci">void SetUboBoneUse(size_t id)</div><div class="ttdoc">设置蒙皮id占用(描述符创建时就已经映射)</div><div class="ttdef"><b>定义</b> <a href="#l00860">dl_vk.h:860</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_a9b7d38b6682c649d227c40666bc9254d"><div class="ttname"><a href="classdl_1_1_v_k.html#a9b7d38b6682c649d227c40666bc9254d">dl::VK::CopyBuffer</a></div><div class="ttdeci">void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size)</div><div class="ttdoc">复制缓冲区</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aa503fc4e69fe495b6828c3e7a753f1ef"><div class="ttname"><a href="classdl_1_1_v_k.html#aa503fc4e69fe495b6828c3e7a753f1ef">dl::VK::CreateRenderTarget</a></div><div class="ttdeci">size_t CreateRenderTarget()</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aa6831444e6b5889aae563dd11290464f"><div class="ttname"><a href="classdl_1_1_v_k.html#aa6831444e6b5889aae563dd11290464f">dl::VK::HasStencilComponent</a></div><div class="ttdeci">bool HasStencilComponent(VkFormat format)</div><div class="ttdoc">格式含有模板通道</div><div class="ttdef"><b>定义</b> <a href="#l00761">dl_vk.h:761</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aa7c05528eb7a593c775f4a19ada7ffea"><div class="ttname"><a href="classdl_1_1_v_k.html#aa7c05528eb7a593c775f4a19ada7ffea">dl::VK::CreateRenderTargetReal</a></div><div class="ttdeci">bool CreateRenderTargetReal(size_t i, VKRenderTarget &amp;rt)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aa873b1725b397f9598668d419372c1a2"><div class="ttname"><a href="classdl_1_1_v_k.html#aa873b1725b397f9598668d419372c1a2">dl::VK::GetCanvas</a></div><div class="ttdeci">Canvas * GetCanvas(size_t id)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aa8b53d357c1dc50ff330bba34869dddf"><div class="ttname"><a href="classdl_1_1_v_k.html#aa8b53d357c1dc50ff330bba34869dddf">dl::VK::VK</a></div><div class="ttdeci">VK(GLFWwindow *window)</div><div class="ttdef"><b>定义</b> <a href="#l00534">dl_vk.h:534</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aaa41d99b62853a1665a526626849a655"><div class="ttname"><a href="classdl_1_1_v_k.html#aaa41d99b62853a1665a526626849a655">dl::VK::GetUboBoneFree</a></div><div class="ttdeci">size_t GetUboBoneFree()</div><div class="ttdoc">返回可用蒙皮id(注意设置不可用)</div><div class="ttdef"><b>定义</b> <a href="#l00843">dl_vk.h:843</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aaed16e93b2b551367f44d5ec51b6b1b7"><div class="ttname"><a href="classdl_1_1_v_k.html#aaed16e93b2b551367f44d5ec51b6b1b7">dl::VK::SetUboBoneFree</a></div><div class="ttdeci">void SetUboBoneFree(size_t id)</div><div class="ttdoc">设置蒙皮id可用</div><div class="ttdef"><b>定义</b> <a href="#l00854">dl_vk.h:854</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ab76c74e271127fce4c783df43d83d984"><div class="ttname"><a href="classdl_1_1_v_k.html#ab76c74e271127fce4c783df43d83d984">dl::VK::TransitionImageLayout</a></div><div class="ttdeci">void TransitionImageLayout(VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t mip_level)</div><div class="ttdoc">转换图像布局</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_abb89ce215bc6fa4e5d9e9fd1185a1248"><div class="ttname"><a href="classdl_1_1_v_k.html#abb89ce215bc6fa4e5d9e9fd1185a1248">dl::VK::Viewport</a></div><div class="ttdeci">Array&lt; float, 4 &gt; Viewport</div><div class="ttdef"><b>定义</b> <a href="#l00338">dl_vk.h:338</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_abf11282c01c47ca789688e447a3007c1"><div class="ttname"><a href="classdl_1_1_v_k.html#abf11282c01c47ca789688e447a3007c1">dl::VK::GetRenderInfo3D</a></div><div class="ttdeci">const RenderInfo3D &amp; GetRenderInfo3D()</div><div class="ttdef"><b>定义</b> <a href="#l00945">dl_vk.h:945</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ac050e68da2a75a38d65e952b0b8a3e2d"><div class="ttname"><a href="classdl_1_1_v_k.html#ac050e68da2a75a38d65e952b0b8a3e2d">dl::VK::~VK</a></div><div class="ttdeci">~VK()</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ac29ba01335b5f4a70ee981002fedeb04"><div class="ttname"><a href="classdl_1_1_v_k.html#ac29ba01335b5f4a70ee981002fedeb04">dl::VK::Render</a></div><div class="ttdeci">void Render(GLFWwindow *window)</div><div class="ttdoc">绘制一帧</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ac699d88c172c7f613e2ec670b779d9a3"><div class="ttname"><a href="classdl_1_1_v_k.html#ac699d88c172c7f613e2ec670b779d9a3">dl::VK::SetDebugView</a></div><div class="ttdeci">void SetDebugView(DebugView3D type)</div><div class="ttdef"><b>定义</b> <a href="#l00866">dl_vk.h:866</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ac9c7c15aec0dbd28415a05268dcefe81"><div class="ttname"><a href="classdl_1_1_v_k.html#ac9c7c15aec0dbd28415a05268dcefe81">dl::VK::CreatePrimitive</a></div><div class="ttdeci">size_t CreatePrimitive(ModelMaterial &amp;m)</div><div class="ttdoc">创建一个图元(材质)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_acaa4549cf199039f0e5207aee8986f54"><div class="ttname"><a href="classdl_1_1_v_k.html#acaa4549cf199039f0e5207aee8986f54">dl::VK::DestroyDebugUtilsMessengerEXT</a></div><div class="ttdeci">static void DestroyDebugUtilsMessengerEXT(VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks *pAllocator)</div><div class="ttdoc">验证层代理函数</div><div class="ttdef"><b>定义</b> <a href="#l00609">dl_vk.h:609</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_acbde0746dc6865dc330a0203da9939bb"><div class="ttname"><a href="classdl_1_1_v_k.html#acbde0746dc6865dc330a0203da9939bb">dl::VK::CreateModel</a></div><div class="ttdeci">Model * CreateModel(ModelObject *object)</div><div class="ttdoc">创建模型 ModelObject -&gt; Model</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_acfe500505213f9703cfe391500fd1011"><div class="ttname"><a href="classdl_1_1_v_k.html#acfe500505213f9703cfe391500fd1011">dl::VK::GetCanvasByRenderTarget</a></div><div class="ttdeci">Canvas * GetCanvasByRenderTarget(size_t rt_id)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ad0634421cb34c65ddb5b3493c1f414c9"><div class="ttname"><a href="classdl_1_1_v_k.html#ad0634421cb34c65ddb5b3493c1f414c9">dl::VK::CreateImage</a></div><div class="ttdeci">void CreateImage(uint32_t w, uint32_t h, uint32_t mip_level, VkSampleCountFlagBits numSamples, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties, VkImage &amp;image, VkDeviceMemory &amp;imageMemory, uint32_t layers=1)</div><div class="ttdoc">创建图像</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ad9471e9711c909942dfcb5cf9bbca8ff"><div class="ttname"><a href="classdl_1_1_v_k.html#ad9471e9711c909942dfcb5cf9bbca8ff">dl::VK::EndSingleTimeCommands</a></div><div class="ttdeci">void EndSingleTimeCommands(VkCommandBuffer commandBuffer)</div><div class="ttdoc">结束命令记录</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ad980af66528bd0deec7ddcabffcf4abc"><div class="ttname"><a href="classdl_1_1_v_k.html#ad980af66528bd0deec7ddcabffcf4abc">dl::VK::GenerateMipmaps</a></div><div class="ttdeci">void GenerateMipmaps(VkImage image, VkFormat imageFormat, int32_t texWidth, int32_t texHeight, uint32_t mipLevels)</div><div class="ttdoc">生成mipmap</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_adb1f741fe6e44afbc95b876fc583ae80"><div class="ttname"><a href="classdl_1_1_v_k.html#adb1f741fe6e44afbc95b876fc583ae80">dl::VK::CreateIndexBuffer</a></div><div class="ttdeci">void CreateIndexBuffer(const std::vector&lt; T &gt; &amp;indices, VkBuffer &amp;indexBuffer, VkDeviceMemory &amp;indexBufferMemory)</div><div class="ttdoc">创建索引缓冲(CPU不可访问)</div><div class="ttdef"><b>定义</b> <a href="#l00701">dl_vk.h:701</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_add1151effe473a0739bac63030624bf5"><div class="ttname"><a href="classdl_1_1_v_k.html#add1151effe473a0739bac63030624bf5">dl::VK::UpdateCanvasRenderTarget</a></div><div class="ttdeci">void UpdateCanvasRenderTarget(size_t rt_id, VKRenderTarget &amp;rt)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_adfc3935faf73dd531eb7dac2ca94aa2c"><div class="ttname"><a href="classdl_1_1_v_k.html#adfc3935faf73dd531eb7dac2ca94aa2c">dl::VK::Update</a></div><div class="ttdeci">void Update()</div><div class="ttdoc">一帧逻辑(无需等待上帧完成的操作)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_ae93b7b39f25982803e3ffd5ab31ce1b7"><div class="ttname"><a href="classdl_1_1_v_k.html#ae93b7b39f25982803e3ffd5ab31ce1b7">dl::VK::CreateShaderModule</a></div><div class="ttdeci">VkShaderModule CreateShaderModule(Buffer &amp;buf)</div><div class="ttdoc">创建shader模块</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_aebce2badac2dd76f69fe4947881a34d3"><div class="ttname"><a href="classdl_1_1_v_k.html#aebce2badac2dd76f69fe4947881a34d3">dl::VK::UpdateCanvasDescriptor</a></div><div class="ttdeci">void UpdateCanvasDescriptor(Canvas *canvas)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_af0f2444ff9a351dd892cdc30bda90ffb"><div class="ttname"><a href="classdl_1_1_v_k.html#af0f2444ff9a351dd892cdc30bda90ffb">dl::VK::GfxPushLine2D</a></div><div class="ttdeci">void GfxPushLine2D(const VertexGfx &amp;v0, const VertexGfx &amp;v1)</div><div class="ttdef"><b>定义</b> <a href="#l01336">dl_vk.h:1336</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_af23eded69b86bc3a0b98ffb0eabb1096"><div class="ttname"><a href="classdl_1_1_v_k.html#af23eded69b86bc3a0b98ffb0eabb1096">dl::VK::Release</a></div><div class="ttdeci">void Release()</div><div class="ttdoc">释放操作起始</div><div class="ttdef"><b>定义</b> <a href="#l00957">dl_vk.h:957</a></div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_af473a3d931084f3ae6199eb5a6c855d7"><div class="ttname"><a href="classdl_1_1_v_k.html#af473a3d931084f3ae6199eb5a6c855d7">dl::VK::GetRootCoor</a></div><div class="ttdeci">Coor * GetRootCoor(size_t index)</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_afa838d54c4aebca4666c98573d2a0aff"><div class="ttname"><a href="classdl_1_1_v_k.html#afa838d54c4aebca4666c98573d2a0aff">dl::VK::GetMaxUsableSampleCount</a></div><div class="ttdeci">VkSampleCountFlagBits GetMaxUsableSampleCount()</div><div class="ttdoc">最大msaa采样数</div></div>
<div class="ttc" id="aclassdl_1_1_v_k_html_afbf152bd0733858de586a202b366cd41"><div class="ttname"><a href="classdl_1_1_v_k.html#afbf152bd0733858de586a202b366cd41">dl::VK::ExportTexture</a></div><div class="ttdeci">void ExportTexture(Texture tex, std::string_view path_name)</div></div>
<div class="ttc" id="aclassdl_1_1_vector_reuse_html"><div class="ttname"><a href="classdl_1_1_vector_reuse.html">dl::VectorReuse</a></div><div class="ttdoc">复用容器</div><div class="ttdef"><b>定义</b> <a href="dl__vector__reuse_8h_source.html#l00021">dl_vector_reuse.h:22</a></div></div>
<div class="ttc" id="adl__android_8h_html"><div class="ttname"><a href="dl__android_8h.html">dl_android.h</a></div><div class="ttdoc">安卓相关</div></div>
<div class="ttc" id="adl__buffer_8h_html"><div class="ttname"><a href="dl__buffer_8h.html">dl_buffer.h</a></div><div class="ttdoc">表示一段内存</div></div>
<div class="ttc" id="adl__camera_8h_html"><div class="ttname"><a href="dl__camera_8h.html">dl_camera.h</a></div><div class="ttdoc">摄像机(3d</div></div>
<div class="ttc" id="adl__color_8h_html"><div class="ttname"><a href="dl__color_8h.html">dl_color.h</a></div><div class="ttdoc">颜色</div></div>
<div class="ttc" id="adl__image_8h_html"><div class="ttname"><a href="dl__image_8h.html">dl_image.h</a></div><div class="ttdoc">图像对象</div></div>
<div class="ttc" id="adl__light_8h_html"><div class="ttname"><a href="dl__light_8h.html">dl_light.h</a></div><div class="ttdoc">灯光对象</div></div>
<div class="ttc" id="adl__log_8h_html"><div class="ttname"><a href="dl__log_8h.html">dl_log.h</a></div><div class="ttdoc">日志系统</div></div>
<div class="ttc" id="adl__log_8h_html_a04af09851c431d178f16b24fa1aac1e9"><div class="ttname"><a href="dl__log_8h.html#a04af09851c431d178f16b24fa1aac1e9">log_warn</a></div><div class="ttdeci">#define log_warn(...)</div><div class="ttdef"><b>定义</b> <a href="dl__log_8h_source.html#l00283">dl_log.h:283</a></div></div>
<div class="ttc" id="adl__log_8h_html_a156fd6dffd62306e07b5b77739680688"><div class="ttname"><a href="dl__log_8h.html#a156fd6dffd62306e07b5b77739680688">log_msg</a></div><div class="ttdeci">#define log_msg(...)</div><div class="ttdef"><b>定义</b> <a href="dl__log_8h_source.html#l00281">dl_log.h:281</a></div></div>
<div class="ttc" id="adl__matrix_8h_html"><div class="ttname"><a href="dl__matrix_8h.html">dl_matrix.h</a></div><div class="ttdoc">矩阵(列存储)</div></div>
<div class="ttc" id="adl__model_8h_html"><div class="ttname"><a href="dl__model_8h.html">dl_model.h</a></div><div class="ttdoc">模型类</div></div>
<div class="ttc" id="adl__model__object_8h_html"><div class="ttname"><a href="dl__model__object_8h.html">dl_model_object.h</a></div><div class="ttdoc">中转模型数据</div></div>
<div class="ttc" id="adl__object__pool_8h_html"><div class="ttname"><a href="dl__object__pool_8h.html">dl_object_pool.h</a></div><div class="ttdoc">对象池</div></div>
<div class="ttc" id="adl__platform_8h_html"><div class="ttname"><a href="dl__platform_8h.html">dl_platform.h</a></div><div class="ttdoc">平台宏</div></div>
<div class="ttc" id="adl__render__def_8h_html"><div class="ttname"><a href="dl__render__def_8h.html">dl_render_def.h</a></div><div class="ttdoc">绘图相关常量定义</div></div>
<div class="ttc" id="adl__sprite_8h_html"><div class="ttname"><a href="dl__sprite_8h.html">dl_sprite.h</a></div><div class="ttdoc">2d绘图元素</div></div>
<div class="ttc" id="adl__thread__task_8h_html"><div class="ttname"><a href="dl__thread__task_8h.html">dl_thread_task.h</a></div><div class="ttdoc">多线程任务</div></div>
<div class="ttc" id="adl__type__user_8h_html"><div class="ttname"><a href="dl__type__user_8h.html">dl_type_user.h</a></div><div class="ttdoc">常用类型</div></div>
<div class="ttc" id="adl__vector__reuse_8h_html"><div class="ttname"><a href="dl__vector__reuse_8h.html">dl_vector_reuse.h</a></div><div class="ttdoc">复用容器,避免元素重分配,但会一直占用内存</div></div>
<div class="ttc" id="adl__vertex_8h_html"><div class="ttname"><a href="dl__vertex_8h.html">dl_vertex.h</a></div><div class="ttdoc">顶点</div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a04bd47520534f61a9d2c56c7578788a4"><div class="ttname"><a href="namespacedl.html#a04bd47520534f61a9d2c56c7578788a4">dl::NUM_MAX_JOINT</a></div><div class="ttdeci">constexpr size_t NUM_MAX_JOINT</div><div class="ttdef"><b>定义</b> <a href="#l00105">dl_vk.h:105</a></div></div>
<div class="ttc" id="anamespacedl_html_a0652e7e35e169e2230c73f0e9074596d"><div class="ttname"><a href="namespacedl.html#a0652e7e35e169e2230c73f0e9074596d">dl::NUM_GFX_QUAD</a></div><div class="ttdeci">constexpr size_t NUM_GFX_QUAD</div><div class="ttdef"><b>定义</b> <a href="#l00177">dl_vk.h:177</a></div></div>
<div class="ttc" id="anamespacedl_html_a0c68591dd4f98c2430a7c2d6e2ecef30"><div class="ttname"><a href="namespacedl.html#a0c68591dd4f98c2430a7c2d6e2ecef30">dl::NUM_MAX_PRIMITIVE</a></div><div class="ttdeci">constexpr size_t NUM_MAX_PRIMITIVE</div><div class="ttdef"><b>定义</b> <a href="#l00099">dl_vk.h:99</a></div></div>
<div class="ttc" id="anamespacedl_html_a0dbe99b83ed9ea61ae8356ceb03226cd"><div class="ttname"><a href="namespacedl.html#a0dbe99b83ed9ea61ae8356ceb03226cd">dl::FORMAT_SHADOW_IMAGE</a></div><div class="ttdeci">constexpr VkFormat FORMAT_SHADOW_IMAGE</div><div class="ttdef"><b>定义</b> <a href="#l00119">dl_vk.h:119</a></div></div>
<div class="ttc" id="anamespacedl_html_a0f023ca98a60547c05a338175fde4558"><div class="ttname"><a href="namespacedl.html#a0f023ca98a60547c05a338175fde4558">dl::OPEN_SAMPLE_SHADING</a></div><div class="ttdeci">constexpr bool OPEN_SAMPLE_SHADING</div><div class="ttdef"><b>定义</b> <a href="#l00139">dl_vk.h:139</a></div></div>
<div class="ttc" id="anamespacedl_html_a1cb492c10e54ad38c343604042dbcc73"><div class="ttname"><a href="namespacedl.html#a1cb492c10e54ad38c343604042dbcc73">dl::DL_VK_FORMAT_UNORM</a></div><div class="ttdeci">constexpr VkFormat DL_VK_FORMAT_UNORM</div><div class="ttdef"><b>定义</b> <a href="#l00185">dl_vk.h:185</a></div></div>
<div class="ttc" id="anamespacedl_html_a1fd7d6b85400017524ef3bbaf8796c36"><div class="ttname"><a href="namespacedl.html#a1fd7d6b85400017524ef3bbaf8796c36">dl::USE_MAPPED_2D_UBO</a></div><div class="ttdeci">constexpr bool USE_MAPPED_2D_UBO</div><div class="ttdef"><b>定义</b> <a href="#l00180">dl_vk.h:180</a></div></div>
<div class="ttc" id="anamespacedl_html_a2516f2b5fbe9f3acd68884ef42356298"><div class="ttname"><a href="namespacedl.html#a2516f2b5fbe9f3acd68884ef42356298">dl::NUM_SHADOW_CASCADE</a></div><div class="ttdeci">constexpr size_t NUM_SHADOW_CASCADE</div><div class="ttdef"><b>定义</b> <a href="#l00115">dl_vk.h:115</a></div></div>
<div class="ttc" id="anamespacedl_html_a2a529100d9a24ebc78d54dae30c13b70"><div class="ttname"><a href="namespacedl.html#a2a529100d9a24ebc78d54dae30c13b70">dl::g_vk</a></div><div class="ttdeci">VK * g_vk</div></div>
<div class="ttc" id="anamespacedl_html_a2b7f6b089bf1ba9ba9b5d88b5883829d"><div class="ttname"><a href="namespacedl.html#a2b7f6b089bf1ba9ba9b5d88b5883829d">dl::INDEX_GFX_2D_NORMAL_DOT</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_NORMAL_DOT</div><div class="ttdef"><b>定义</b> <a href="#l00166">dl_vk.h:166</a></div></div>
<div class="ttc" id="anamespacedl_html_a2c3039411216ea20f44f7e217361d7ef"><div class="ttname"><a href="namespacedl.html#a2c3039411216ea20f44f7e217361d7ef">dl::NUM_START_2D_VERTEX</a></div><div class="ttdeci">constexpr size_t NUM_START_2D_VERTEX</div><div class="ttdef"><b>定义</b> <a href="#l00130">dl_vk.h:130</a></div></div>
<div class="ttc" id="anamespacedl_html_a35881f293a0ff74ff06bf0b967282e5c"><div class="ttname"><a href="namespacedl.html#a35881f293a0ff74ff06bf0b967282e5c">dl::INDEX_GFX_2D_TRANS_DOT</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_TRANS_DOT</div><div class="ttdef"><b>定义</b> <a href="#l00172">dl_vk.h:172</a></div></div>
<div class="ttc" id="anamespacedl_html_a371350ae491c9592b13c9af249b6e081"><div class="ttname"><a href="namespacedl.html#a371350ae491c9592b13c9af249b6e081">dl::TIME_FREE_TEXTURE_2D</a></div><div class="ttdeci">constexpr unsigned TIME_FREE_TEXTURE_2D</div><div class="ttdef"><b>定义</b> <a href="#l00134">dl_vk.h:134</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">dl::KeyCode::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00121">dl_input.h:121</a></div></div>
<div class="ttc" id="anamespacedl_html_a39050300432fb6f42f458fa14f4b22ac"><div class="ttname"><a href="namespacedl.html#a39050300432fb6f42f458fa14f4b22ac">dl::DL_VK_FORMAT_SURFACE</a></div><div class="ttdeci">constexpr VkFormat DL_VK_FORMAT_SURFACE</div><div class="ttdef"><b>定义</b> <a href="#l00183">dl_vk.h:183</a></div></div>
<div class="ttc" id="anamespacedl_html_a5375863f23952e6372159f5214e3eab3"><div class="ttname"><a href="namespacedl.html#a5375863f23952e6372159f5214e3eab3">dl::NUM_MAX_ROOT_COOR</a></div><div class="ttdeci">constexpr size_t NUM_MAX_ROOT_COOR</div><div class="ttdef"><b>定义</b> <a href="#l00132">dl_vk.h:132</a></div></div>
<div class="ttc" id="anamespacedl_html_a54e1a4e2997b6b627d11a3d272ebd12f"><div class="ttname"><a href="namespacedl.html#a54e1a4e2997b6b627d11a3d272ebd12f">dl::NUM_GFX_HALF</a></div><div class="ttdeci">constexpr size_t NUM_GFX_HALF</div><div class="ttdef"><b>定义</b> <a href="#l00176">dl_vk.h:176</a></div></div>
<div class="ttc" id="anamespacedl_html_a5bb9ee10db5338251b4bb854939b69b3"><div class="ttname"><a href="namespacedl.html#a5bb9ee10db5338251b4bb854939b69b3">dl::log</a></div><div class="ttdeci">void log(std::string_view str, DL_SOURCE_LOCATION)</div><div class="ttdoc">以当前设置输出</div></div>
<div class="ttc" id="anamespacedl_html_a5c8ebd12426bc92665d96d319f975b9d"><div class="ttname"><a href="namespacedl.html#a5c8ebd12426bc92665d96d319f975b9d">dl::INDEX_GFX_2D_TRANS_TRIANGLE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_TRANS_TRIANGLE</div><div class="ttdef"><b>定义</b> <a href="#l00174">dl_vk.h:174</a></div></div>
<div class="ttc" id="anamespacedl_html_a60ab1d3fd34ce519d28208bb0857fc60"><div class="ttname"><a href="namespacedl.html#a60ab1d3fd34ce519d28208bb0857fc60">dl::NUM_MAX_LIGHT_DOT</a></div><div class="ttdeci">constexpr size_t NUM_MAX_LIGHT_DOT</div><div class="ttdef"><b>定义</b> <a href="#l00109">dl_vk.h:109</a></div></div>
<div class="ttc" id="anamespacedl_html_a60cddf3b9c8fee3342852de4c234d6d4"><div class="ttname"><a href="namespacedl.html#a60cddf3b9c8fee3342852de4c234d6d4">dl::DL_VK_FORMAT_SRGB</a></div><div class="ttdeci">constexpr VkFormat DL_VK_FORMAT_SRGB</div><div class="ttdef"><b>定义</b> <a href="#l00184">dl_vk.h:184</a></div></div>
<div class="ttc" id="anamespacedl_html_a63038d8670ad1704740ccba95c1c4341"><div class="ttname"><a href="namespacedl.html#a63038d8670ad1704740ccba95c1c4341">dl::log_err0</a></div><div class="ttdeci">void log_err0(std::string_view str, DL_SOURCE_LOCATION)</div></div>
<div class="ttc" id="anamespacedl_html_a6347394cca146fd6b8fedf1d3545de59"><div class="ttname"><a href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">dl::PointU</a></div><div class="ttdeci">Point2U PointU</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00034">dl_type_def.h:34</a></div></div>
<div class="ttc" id="anamespacedl_html_a6425841a05a75a4926fb13ff2e1388e0"><div class="ttname"><a href="namespacedl.html#a6425841a05a75a4926fb13ff2e1388e0">dl::INDEX_GFX_3D_NORMAL_DOT</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_NORMAL_DOT</div><div class="ttdef"><b>定义</b> <a href="#l00163">dl_vk.h:163</a></div></div>
<div class="ttc" id="anamespacedl_html_a64b07a8f4a166efa94a36b2490bcc3ec"><div class="ttname"><a href="namespacedl.html#a64b07a8f4a166efa94a36b2490bcc3ec">dl::log_info0</a></div><div class="ttdeci">void log_info0(std::string_view str, DL_SOURCE_LOCATION)</div></div>
<div class="ttc" id="anamespacedl_html_a67b560c4a363a94234124eed5687d577"><div class="ttname"><a href="namespacedl.html#a67b560c4a363a94234124eed5687d577">dl::log_test0</a></div><div class="ttdeci">void log_test0(std::string_view str, DL_SOURCE_LOCATION)</div></div>
<div class="ttc" id="anamespacedl_html_a6e8914f697e225c95c3cd71c0ff98869"><div class="ttname"><a href="namespacedl.html#a6e8914f697e225c95c3cd71c0ff98869">dl::SIZE_SHADOW_IMAGE</a></div><div class="ttdeci">constexpr uint32_t SIZE_SHADOW_IMAGE</div><div class="ttdef"><b>定义</b> <a href="#l00117">dl_vk.h:117</a></div></div>
<div class="ttc" id="anamespacedl_html_a724a0aef715eff166173ad00086fb59a"><div class="ttname"><a href="namespacedl.html#a724a0aef715eff166173ad00086fb59a">dl::Matrix4</a></div><div class="ttdeci">Matrix&lt; Float, 4, 4 &gt; Matrix4</div><div class="ttdef"><b>定义</b> <a href="dl__matrix_8h_source.html#l00262">dl_matrix.h:262</a></div></div>
<div class="ttc" id="anamespacedl_html_a772647ed3c402de7e89258810346639b"><div class="ttname"><a href="namespacedl.html#a772647ed3c402de7e89258810346639b">dl::DL_VK_FORMAT_SRGB_TEXTURE</a></div><div class="ttdeci">constexpr VkFormat DL_VK_FORMAT_SRGB_TEXTURE</div><div class="ttdef"><b>定义</b> <a href="#l00186">dl_vk.h:186</a></div></div>
<div class="ttc" id="anamespacedl_html_a8caf4bcf54955de2e79b95811306b841"><div class="ttname"><a href="namespacedl.html#a8caf4bcf54955de2e79b95811306b841">dl::Position3</a></div><div class="ttdeci">Array&lt; Float, 3 &gt; Position3</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00042">dl_type_def.h:42</a></div></div>
<div class="ttc" id="anamespacedl_html_a8ece0740ccacd906701e5308e7818876"><div class="ttname"><a href="namespacedl.html#a8ece0740ccacd906701e5308e7818876">dl::INDEX_GFX_2D_NORMAL_TRIANGLE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_NORMAL_TRIANGLE</div><div class="ttdef"><b>定义</b> <a href="#l00168">dl_vk.h:168</a></div></div>
<div class="ttc" id="anamespacedl_html_aa305f9d3c5ff152f8f4f2d23ce56864a"><div class="ttname"><a href="namespacedl.html#aa305f9d3c5ff152f8f4f2d23ce56864a">dl::DL_VK_FORMAT_UNORM_TEXTURE</a></div><div class="ttdeci">constexpr VkFormat DL_VK_FORMAT_UNORM_TEXTURE</div><div class="ttdef"><b>定义</b> <a href="#l00187">dl_vk.h:187</a></div></div>
<div class="ttc" id="anamespacedl_html_aa6886dc5b2b54466f11cead6721ca61d"><div class="ttname"><a href="namespacedl.html#aa6886dc5b2b54466f11cead6721ca61d">dl::INDEX_GFX_3D_NORMAL_LINE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_NORMAL_LINE</div><div class="ttdef"><b>定义</b> <a href="#l00164">dl_vk.h:164</a></div></div>
<div class="ttc" id="anamespacedl_html_aa750672525173ab3f22fcf9dacd46b74"><div class="ttname"><a href="namespacedl.html#aa750672525173ab3f22fcf9dacd46b74">dl::NUM_MAX_LIGHT_SPOT</a></div><div class="ttdeci">constexpr size_t NUM_MAX_LIGHT_SPOT</div><div class="ttdef"><b>定义</b> <a href="#l00111">dl_vk.h:111</a></div></div>
<div class="ttc" id="anamespacedl_html_aa9e306f5969aeaa70bf42e9d22828be7"><div class="ttname"><a href="namespacedl.html#aa9e306f5969aeaa70bf42e9d22828be7">dl::NUM_MAX_LIGHT_DIR</a></div><div class="ttdeci">constexpr size_t NUM_MAX_LIGHT_DIR</div><div class="ttdef"><b>定义</b> <a href="#l00107">dl_vk.h:107</a></div></div>
<div class="ttc" id="anamespacedl_html_aaa0846231d4bcabe731952de09f3f5fa"><div class="ttname"><a href="namespacedl.html#aaa0846231d4bcabe731952de09f3f5fa">dl::NUM_GFX_VERTEX</a></div><div class="ttdeci">constexpr size_t NUM_GFX_VERTEX</div><div class="ttdef"><b>定义</b> <a href="#l00160">dl_vk.h:160</a></div></div>
<div class="ttc" id="anamespacedl_html_ab0aa26817739678b786d66b6c9f50ae7"><div class="ttname"><a href="namespacedl.html#ab0aa26817739678b786d66b6c9f50ae7">dl::Color</a></div><div class="ttdeci">Array&lt; float, 4 &gt; Color</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00058">dl_type_def.h:58</a></div></div>
<div class="ttc" id="anamespacedl_html_ab36081b145974249823be52df1867f95"><div class="ttname"><a href="namespacedl.html#ab36081b145974249823be52df1867f95">dl::NUM_GFX</a></div><div class="ttdeci">constexpr size_t NUM_GFX</div><div class="ttdef"><b>定义</b> <a href="#l00175">dl_vk.h:175</a></div></div>
<div class="ttc" id="anamespacedl_html_ab4acc6e28a53b5034ae7786d915c2b1e"><div class="ttname"><a href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">dl::Image</a></div><div class="ttdeci">Vector2&lt; uint32_t, unsigned &gt; Image</div><div class="ttdef"><b>定义</b> <a href="dl__image_8h_source.html#l00028">dl_image.h:28</a></div></div>
<div class="ttc" id="anamespacedl_html_abd1df5b1aba350d46b9e01f0583c9dc6"><div class="ttname"><a href="namespacedl.html#abd1df5b1aba350d46b9e01f0583c9dc6">dl::NUM_MAX_MATERIAL</a></div><div class="ttdeci">constexpr size_t NUM_MAX_MATERIAL</div><div class="ttdef"><b>定义</b> <a href="#l00101">dl_vk.h:101</a></div></div>
<div class="ttc" id="anamespacedl_html_ac239c3e197b60bee840b9583cf35db65"><div class="ttname"><a href="namespacedl.html#ac239c3e197b60bee840b9583cf35db65">dl::Rect</a></div><div class="ttdeci">Point4 Rect</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00050">dl_type_def.h:50</a></div></div>
<div class="ttc" id="anamespacedl_html_ac4b23ab1cb534d8bb07b9c98bec19e91"><div class="ttname"><a href="namespacedl.html#ac4b23ab1cb534d8bb07b9c98bec19e91">dl::OPEN_FILL_MODE_NON_SOLID</a></div><div class="ttdeci">constexpr bool OPEN_FILL_MODE_NON_SOLID</div><div class="ttdef"><b>定义</b> <a href="#l00141">dl_vk.h:141</a></div></div>
<div class="ttc" id="anamespacedl_html_ac630b67756cfd3694b7885c5958e52a7"><div class="ttname"><a href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">dl::RectU</a></div><div class="ttdeci">Point4U RectU</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00051">dl_type_def.h:51</a></div></div>
<div class="ttc" id="anamespacedl_html_ac7069b608583c6ce0ab11ea567818c47"><div class="ttname"><a href="namespacedl.html#ac7069b608583c6ce0ab11ea567818c47">dl::INDEX_GFX_3D_TRANS_TRIANGLE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_TRANS_TRIANGLE</div><div class="ttdef"><b>定义</b> <a href="#l00171">dl_vk.h:171</a></div></div>
<div class="ttc" id="anamespacedl_html_ac81a62f19054484fae1ee54659dbd3e1"><div class="ttname"><a href="namespacedl.html#ac81a62f19054484fae1ee54659dbd3e1">dl::NUM_2D_INDEX</a></div><div class="ttdeci">constexpr size_t NUM_2D_INDEX</div><div class="ttdef"><b>定义</b> <a href="#l00128">dl_vk.h:128</a></div></div>
<div class="ttc" id="anamespacedl_html_accd0ee3aa1bda9d76d3339ae487def4d"><div class="ttname"><a href="namespacedl.html#accd0ee3aa1bda9d76d3339ae487def4d">dl::INDEX_GFX_3D_TRANS_DOT</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_TRANS_DOT</div><div class="ttdef"><b>定义</b> <a href="#l00169">dl_vk.h:169</a></div></div>
<div class="ttc" id="anamespacedl_html_acd214f144ca1b4c6b06da17ee0e11091"><div class="ttname"><a href="namespacedl.html#acd214f144ca1b4c6b06da17ee0e11091">dl::INDEX_GFX_3D_NORMAL_TRIANGLE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_NORMAL_TRIANGLE</div><div class="ttdef"><b>定义</b> <a href="#l00165">dl_vk.h:165</a></div></div>
<div class="ttc" id="anamespacedl_html_ad14c01f7796e2034aa82f191ead00aaf"><div class="ttname"><a href="namespacedl.html#ad14c01f7796e2034aa82f191ead00aaf">dl::INDEX_GFX_3D_TRANS_LINE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_3D_TRANS_LINE</div><div class="ttdef"><b>定义</b> <a href="#l00170">dl_vk.h:170</a></div></div>
<div class="ttc" id="anamespacedl_html_ad880a39a9b74ef69ecf9a4121685076d"><div class="ttname"><a href="namespacedl.html#ad880a39a9b74ef69ecf9a4121685076d">dl::isColorOpaque</a></div><div class="ttdeci">bool isColorOpaque(const Color &amp;col)</div><div class="ttdoc">不透明(a通道为1</div><div class="ttdef"><b>定义</b> <a href="dl__color_8h_source.html#l00150">dl_color.h:150</a></div></div>
<div class="ttc" id="anamespacedl_html_ada0b54718331268729bd35158ee1fde1"><div class="ttname"><a href="namespacedl.html#ada0b54718331268729bd35158ee1fde1">dl::NUM_MAX_LIGHT</a></div><div class="ttdeci">constexpr size_t NUM_MAX_LIGHT</div><div class="ttdef"><b>定义</b> <a href="#l00113">dl_vk.h:113</a></div></div>
<div class="ttc" id="anamespacedl_html_ade7279a2ffb83b2f5ef74a2680524999"><div class="ttname"><a href="namespacedl.html#ade7279a2ffb83b2f5ef74a2680524999">dl::NUM_MAX_DRAW_CALL_2D</a></div><div class="ttdeci">constexpr size_t NUM_MAX_DRAW_CALL_2D</div><div class="ttdef"><b>定义</b> <a href="#l00124">dl_vk.h:124</a></div></div>
<div class="ttc" id="anamespacedl_html_ae1798b2a7927f71f7f28a5e522c2d6a8"><div class="ttname"><a href="namespacedl.html#ae1798b2a7927f71f7f28a5e522c2d6a8">dl::NUM_2D_SAMPLER</a></div><div class="ttdeci">constexpr size_t NUM_2D_SAMPLER</div><div class="ttdef"><b>定义</b> <a href="#l00136">dl_vk.h:136</a></div></div>
<div class="ttc" id="anamespacedl_html_ae433fd10f0aa99f31a68a2c0433f6248"><div class="ttname"><a href="namespacedl.html#ae433fd10f0aa99f31a68a2c0433f6248">dl::ENABLE_VALIDATION_LAYERS</a></div><div class="ttdeci">constexpr bool ENABLE_VALIDATION_LAYERS</div><div class="ttdef"><b>定义</b> <a href="#l00149">dl_vk.h:149</a></div></div>
<div class="ttc" id="anamespacedl_html_ae6d22d798e0e50d8494ec9b3e848c7bd"><div class="ttname"><a href="namespacedl.html#ae6d22d798e0e50d8494ec9b3e848c7bd">dl::DebugView3D</a></div><div class="ttdeci">DebugView3D</div><div class="ttdoc">调试绘图3d</div><div class="ttdef"><b>定义</b> <a href="dl__type__user_8h_source.html#l00055">dl_type_user.h:56</a></div></div>
<div class="ttc" id="anamespacedl_html_aea4572df7c53151559eb665c602a3563"><div class="ttname"><a href="namespacedl.html#aea4572df7c53151559eb665c602a3563">dl::NUM_MAX_ACTOR</a></div><div class="ttdeci">constexpr size_t NUM_MAX_ACTOR</div><div class="ttdef"><b>定义</b> <a href="#l00157">dl_vk.h:157</a></div></div>
<div class="ttc" id="anamespacedl_html_aeb7cf92a5d22d874def862e2d7794a6f"><div class="ttname"><a href="namespacedl.html#aeb7cf92a5d22d874def862e2d7794a6f">dl::NUM_MAX_BONE</a></div><div class="ttdeci">constexpr size_t NUM_MAX_BONE</div><div class="ttdef"><b>定义</b> <a href="#l00103">dl_vk.h:103</a></div></div>
<div class="ttc" id="anamespacedl_html_aebf3de85df907155866fa32c238c82f3"><div class="ttname"><a href="namespacedl.html#aebf3de85df907155866fa32c238c82f3">dl::INDEX_GFX_2D_NORMAL_LINE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_NORMAL_LINE</div><div class="ttdef"><b>定义</b> <a href="#l00167">dl_vk.h:167</a></div></div>
<div class="ttc" id="anamespacedl_html_af30269ff81c0aceb566feb5faaceb84b"><div class="ttname"><a href="namespacedl.html#af30269ff81c0aceb566feb5faaceb84b">dl::INDEX_GFX_2D_TRANS_LINE</a></div><div class="ttdeci">constexpr size_t INDEX_GFX_2D_TRANS_LINE</div><div class="ttdef"><b>定义</b> <a href="#l00173">dl_vk.h:173</a></div></div>
<div class="ttc" id="anamespacedl_html_af91ff7e5e658ad613ab1651b06f3d8e0"><div class="ttname"><a href="namespacedl.html#af91ff7e5e658ad613ab1651b06f3d8e0">dl::NUM_MAX_2D_SPRITE</a></div><div class="ttdeci">constexpr size_t NUM_MAX_2D_SPRITE</div><div class="ttdef"><b>定义</b> <a href="#l00126">dl_vk.h:126</a></div></div>
<div class="ttc" id="astructdl_1_1_g_l_f_wwindow_html"><div class="ttname"><a href="structdl_1_1_g_l_f_wwindow.html">dl::GLFWwindow</a></div><div class="ttdef"><b>定义</b> <a href="dl__android_8h_source.html#l00074">dl_android.h:74</a></div></div>
<div class="ttc" id="astructdl_1_1_material_html"><div class="ttname"><a href="structdl_1_1_material.html">dl::Material</a></div><div class="ttdoc">材质(pbr 金属度/粗糙度)</div><div class="ttdef"><b>定义</b> <a href="dl__vertex_8h_source.html#l00228">dl_vertex.h:229</a></div></div>
<div class="ttc" id="astructdl_1_1_model_material_html"><div class="ttname"><a href="structdl_1_1_model_material.html">dl::ModelMaterial</a></div><div class="ttdef"><b>定义</b> <a href="dl__model__data_8h_source.html#l00221">dl_model_data.h:222</a></div></div>
<div class="ttc" id="astructdl_1_1_render_info2_d_html"><div class="ttname"><a href="structdl_1_1_render_info2_d.html">dl::RenderInfo2D</a></div><div class="ttdoc">绘图信息2d</div><div class="ttdef"><b>定义</b> <a href="dl__type__user_8h_source.html#l00020">dl_type_user.h:21</a></div></div>
<div class="ttc" id="astructdl_1_1_render_info3_d_html"><div class="ttname"><a href="structdl_1_1_render_info3_d.html">dl::RenderInfo3D</a></div><div class="ttdoc">绘图信息3d</div><div class="ttdef"><b>定义</b> <a href="dl__type__user_8h_source.html#l00038">dl_type_user.h:39</a></div></div>
<div class="ttc" id="astructdl_1_1_swap_chain_support_details_html"><div class="ttname"><a href="structdl_1_1_swap_chain_support_details.html">dl::SwapChainSupportDetails</a></div><div class="ttdef"><b>定义</b> <a href="#l00056">dl_vk.h:57</a></div></div>
<div class="ttc" id="astructdl_1_1_swap_chain_support_details_html_a4604df0c3d1614d77c177664cafe8824"><div class="ttname"><a href="structdl_1_1_swap_chain_support_details.html#a4604df0c3d1614d77c177664cafe8824">dl::SwapChainSupportDetails::_presentModes</a></div><div class="ttdeci">std::vector&lt; VkPresentModeKHR &gt; _presentModes</div><div class="ttdef"><b>定义</b> <a href="#l00060">dl_vk.h:60</a></div></div>
<div class="ttc" id="astructdl_1_1_swap_chain_support_details_html_a7924822399a8f7311f2684f89b3db162"><div class="ttname"><a href="structdl_1_1_swap_chain_support_details.html#a7924822399a8f7311f2684f89b3db162">dl::SwapChainSupportDetails::_formats</a></div><div class="ttdeci">std::vector&lt; VkSurfaceFormatKHR &gt; _formats</div><div class="ttdef"><b>定义</b> <a href="#l00059">dl_vk.h:59</a></div></div>
<div class="ttc" id="astructdl_1_1_swap_chain_support_details_html_a84c56804ef0f044e54ef63468c17f32b"><div class="ttname"><a href="structdl_1_1_swap_chain_support_details.html#a84c56804ef0f044e54ef63468c17f32b">dl::SwapChainSupportDetails::_capabilities</a></div><div class="ttdeci">VkSurfaceCapabilitiesKHR _capabilities</div><div class="ttdef"><b>定义</b> <a href="#l00058">dl_vk.h:58</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html"><div class="ttname"><a href="structdl_1_1_texture.html">dl::Texture</a></div><div class="ttdef"><b>定义</b> <a href="#l00064">dl_vk.h:65</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_a06c88d7aec6126755b4d487defeeca02"><div class="ttname"><a href="structdl_1_1_texture.html#a06c88d7aec6126755b4d487defeeca02">dl::Texture::_imageView</a></div><div class="ttdeci">VkImageView _imageView</div><div class="ttdef"><b>定义</b> <a href="#l00068">dl_vk.h:68</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_a715c53e7eb0602849c0c8cef6249e38b"><div class="ttname"><a href="structdl_1_1_texture.html#a715c53e7eb0602849c0c8cef6249e38b">dl::Texture::Delete</a></div><div class="ttdeci">void Delete(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00088">dl_vk.h:88</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_a8c9c0ea7feb15dfe6fcb7098ea41c1a6"><div class="ttname"><a href="structdl_1_1_texture.html#a8c9c0ea7feb15dfe6fcb7098ea41c1a6">dl::Texture::_width</a></div><div class="ttdeci">uint32_t _width</div><div class="ttdef"><b>定义</b> <a href="#l00071">dl_vk.h:71</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_aa5ae7225d74f77c00b3e4c48721066ce"><div class="ttname"><a href="structdl_1_1_texture.html#aa5ae7225d74f77c00b3e4c48721066ce">dl::Texture::_memory</a></div><div class="ttdeci">VkDeviceMemory _memory</div><div class="ttdef"><b>定义</b> <a href="#l00067">dl_vk.h:67</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_aa8548b1bb4e97404147b7914eaa661a9"><div class="ttname"><a href="structdl_1_1_texture.html#aa8548b1bb4e97404147b7914eaa661a9">dl::Texture::_mipLevel</a></div><div class="ttdeci">uint32_t _mipLevel</div><div class="ttdef"><b>定义</b> <a href="#l00070">dl_vk.h:70</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_ac1955fe2f1de5a8741a9dd1133827b86"><div class="ttname"><a href="structdl_1_1_texture.html#ac1955fe2f1de5a8741a9dd1133827b86">dl::Texture::IsVaild</a></div><div class="ttdeci">bool IsVaild()</div><div class="ttdef"><b>定义</b> <a href="#l00083">dl_vk.h:83</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_ad916fb61ede01145056cbdc88260c4d8"><div class="ttname"><a href="structdl_1_1_texture.html#ad916fb61ede01145056cbdc88260c4d8">dl::Texture::_image</a></div><div class="ttdeci">VkImage _image</div><div class="ttdef"><b>定义</b> <a href="#l00066">dl_vk.h:66</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_ae3531cc8486d1a19b4f861c2f3028b4e"><div class="ttname"><a href="structdl_1_1_texture.html#ae3531cc8486d1a19b4f861c2f3028b4e">dl::Texture::Texture</a></div><div class="ttdeci">Texture()</div><div class="ttdef"><b>定义</b> <a href="#l00074">dl_vk.h:74</a></div></div>
<div class="ttc" id="astructdl_1_1_texture_html_aea31659ec6e955704f6c840150b6055c"><div class="ttname"><a href="structdl_1_1_texture.html#aea31659ec6e955704f6c840150b6055c">dl::Texture::_height</a></div><div class="ttdeci">uint32_t _height</div><div class="ttdef"><b>定义</b> <a href="#l00072">dl_vk.h:72</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html">dl::VK::Canvas</a></div><div class="ttdef"><b>定义</b> <a href="#l00236">dl_vk.h:237</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a067de92365d4c72d306d1b1a3a87345a"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a067de92365d4c72d306d1b1a3a87345a">dl::VK::Canvas::_allSprite</a></div><div class="ttdeci">std::vector&lt; Sprite * &gt; _allSprite</div><div class="ttdef"><b>定义</b> <a href="#l00249">dl_vk.h:249</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a2ae691b16ead05bd590ea955fca121a7"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a2ae691b16ead05bd590ea955fca121a7">dl::VK::Canvas::_pathTextureFull</a></div><div class="ttdeci">std::string _pathTextureFull</div><div class="ttdef"><b>定义</b> <a href="#l00244">dl_vk.h:244</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a36e1e3e43091a38828cf52548b719499"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a36e1e3e43091a38828cf52548b719499">dl::VK::Canvas::Canvas</a></div><div class="ttdeci">Canvas(VK *vk)</div><div class="ttdef"><b>定义</b> <a href="#l00255">dl_vk.h:255</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a37c0047cde12d7403d70ddfb9b9a9735"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a37c0047cde12d7403d70ddfb9b9a9735">dl::VK::Canvas::_texture</a></div><div class="ttdeci">Texture _texture</div><div class="ttdef"><b>定义</b> <a href="#l00238">dl_vk.h:238</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a3af786f87cd62fa7e81cfb46a1eb4fcd"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a3af786f87cd62fa7e81cfb46a1eb4fcd">dl::VK::Canvas::RealLoad</a></div><div class="ttdeci">void RealLoad(VK *vk)</div><div class="ttdef"><b>定义</b> <a href="#l00309">dl_vk.h:309</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a43efdb2eff106355dfc9e05ff2b9eaf4"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a43efdb2eff106355dfc9e05ff2b9eaf4">dl::VK::Canvas::_id</a></div><div class="ttdeci">size_t _id</div><div class="ttdef"><b>定义</b> <a href="#l00252">dl_vk.h:252</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_a6c50337063a7db962d0aaa24fc53c8aa"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#a6c50337063a7db962d0aaa24fc53c8aa">dl::VK::Canvas::_vertexBufferMemory</a></div><div class="ttdeci">std::vector&lt; VkDeviceMemory &gt; _vertexBufferMemory</div><div class="ttdef"><b>定义</b> <a href="#l00246">dl_vk.h:246</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_aa3c11714a616784d541b7ac3993a1113"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#aa3c11714a616784d541b7ac3993a1113">dl::VK::Canvas::_textureFast</a></div><div class="ttdeci">Texture _textureFast</div><div class="ttdef"><b>定义</b> <a href="#l00239">dl_vk.h:239</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_aaae6c2a40a2bf19aa213824b86bd1c50"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#aaae6c2a40a2bf19aa213824b86bd1c50">dl::VK::Canvas::_textureState</a></div><div class="ttdeci">unsigned _textureState</div><div class="ttdef"><b>定义</b> <a href="#l00241">dl_vk.h:241</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_ad538c13dbf0fde73e678a55e03af718a"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#ad538c13dbf0fde73e678a55e03af718a">dl::VK::Canvas::_mutex</a></div><div class="ttdeci">std::mutex _mutex</div><div class="ttdef"><b>定义</b> <a href="#l00242">dl_vk.h:242</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_adfad6b6945d0f7e4f14d41573154eca2"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#adfad6b6945d0f7e4f14d41573154eca2">dl::VK::Canvas::_numVertex</a></div><div class="ttdeci">std::vector&lt; size_t &gt; _numVertex</div><div class="ttdef"><b>定义</b> <a href="#l00253">dl_vk.h:253</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_ae6d150391f261182ef511c4330e7a383"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#ae6d150391f261182ef511c4330e7a383">dl::VK::Canvas::_tkcUsed</a></div><div class="ttdeci">unsigned _tkcUsed</div><div class="ttdef"><b>定义</b> <a href="#l00240">dl_vk.h:240</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_ae77869746a244d96395f36ca80c7acb2"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#ae77869746a244d96395f36ca80c7acb2">dl::VK::Canvas::TryRelase</a></div><div class="ttdeci">void TryRelase(VK *vk, unsigned tkc)</div><div class="ttdef"><b>定义</b> <a href="#l00265">dl_vk.h:265</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_ae87a2e1de85bd48544f15e01138a1c0b"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#ae87a2e1de85bd48544f15e01138a1c0b">dl::VK::Canvas::_vertexBufferSize</a></div><div class="ttdeci">std::vector&lt; VkDeviceSize &gt; _vertexBufferSize</div><div class="ttdef"><b>定义</b> <a href="#l00247">dl_vk.h:247</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_aef28bd28fd2500f5ed46e9c676d468c7"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#aef28bd28fd2500f5ed46e9c676d468c7">dl::VK::Canvas::Delete</a></div><div class="ttdeci">void Delete(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00322">dl_vk.h:322</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_af33b94b67bd7218d758f834f1748b0c1"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#af33b94b67bd7218d758f834f1748b0c1">dl::VK::Canvas::TryLoad</a></div><div class="ttdeci">void TryLoad(VK *vk)</div><div class="ttdef"><b>定义</b> <a href="#l00290">dl_vk.h:290</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_af35cc6e9200740bca27907f871a172ab"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#af35cc6e9200740bca27907f871a172ab">dl::VK::Canvas::_allSpriteTrans</a></div><div class="ttdeci">std::vector&lt; Sprite * &gt; _allSpriteTrans</div><div class="ttdef"><b>定义</b> <a href="#l00250">dl_vk.h:250</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_canvas_html_afa19e187da804fb87faed82363f5c74f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_canvas.html#afa19e187da804fb87faed82363f5c74f">dl::VK::Canvas::_vertexBuffer</a></div><div class="ttdeci">std::vector&lt; VkBuffer &gt; _vertexBuffer</div><div class="ttdef"><b>定义</b> <a href="#l00245">dl_vk.h:245</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html">dl::VK::DrawCall</a></div><div class="ttdef"><b>定义</b> <a href="#l00347">dl_vk.h:348</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_a313f2960df1223b65d01cad92f4c64bf"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#a313f2960df1223b65d01cad92f4c64bf">dl::VK::DrawCall::_beg</a></div><div class="ttdeci">size_t _beg</div><div class="ttdef"><b>定义</b> <a href="#l00357">dl_vk.h:357</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_a32d68f0f9cdc1077ca3e83815f5f5a58"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#a32d68f0f9cdc1077ca3e83815f5f5a58">dl::VK::DrawCall::_end</a></div><div class="ttdeci">size_t _end</div><div class="ttdef"><b>定义</b> <a href="#l00358">dl_vk.h:358</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_a7f884119f7699b8d7030670f31249b4b"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#a7f884119f7699b8d7030670f31249b4b">dl::VK::DrawCall::_sampler</a></div><div class="ttdeci">Sprite::Sampler _sampler</div><div class="ttdef"><b>定义</b> <a href="#l00353">dl_vk.h:353</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_a8980786c4a9a562b4f048858d164a3e5"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#a8980786c4a9a562b4f048858d164a3e5">dl::VK::DrawCall::_rootCoor</a></div><div class="ttdeci">Coor * _rootCoor</div><div class="ttdef"><b>定义</b> <a href="#l00350">dl_vk.h:350</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_a98d32e5425c7129438042fc75182fc44"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#a98d32e5425c7129438042fc75182fc44">dl::VK::DrawCall::_canvas</a></div><div class="ttdeci">Canvas * _canvas</div><div class="ttdef"><b>定义</b> <a href="#l00349">dl_vk.h:349</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_aad972f25d2993eb93c39277ca66528f4"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#aad972f25d2993eb93c39277ca66528f4">dl::VK::DrawCall::_scissorRect</a></div><div class="ttdeci">Rect * _scissorRect</div><div class="ttdef"><b>定义</b> <a href="#l00352">dl_vk.h:352</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_ad907373f07745c590bd18cc3fc5a3b22"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#ad907373f07745c590bd18cc3fc5a3b22">dl::VK::DrawCall::operator==</a></div><div class="ttdeci">bool operator==(const DrawCall &amp;b) const</div><div class="ttdef"><b>定义</b> <a href="#l00360">dl_vk.h:360</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_addfa934ad575eb81dc75d327c9c93861"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#addfa934ad575eb81dc75d327c9c93861">dl::VK::DrawCall::_blend</a></div><div class="ttdeci">Sprite::Blend _blend</div><div class="ttdef"><b>定义</b> <a href="#l00354">dl_vk.h:354</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_html_ae6fd7bf19f3e4ceae35162f6e83db92a"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call.html#ae6fd7bf19f3e4ceae35162f6e83db92a">dl::VK::DrawCall::_viewport</a></div><div class="ttdeci">Viewport * _viewport</div><div class="ttdef"><b>定义</b> <a href="#l00351">dl_vk.h:351</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_list_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_list.html">dl::VK::DrawCallList</a></div><div class="ttdef"><b>定义</b> <a href="#l00371">dl_vk.h:372</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_list_html_a5641e395ad76cf746ecb9eeec1a63b4d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_list.html#a5641e395ad76cf746ecb9eeec1a63b4d">dl::VK::DrawCallList::_dc</a></div><div class="ttdeci">DrawCall _dc</div><div class="ttdef"><b>定义</b> <a href="#l00373">dl_vk.h:373</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_list_html_a68dbc457ac82ae29c100069613372b2f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_list.html#a68dbc457ac82ae29c100069613372b2f">dl::VK::DrawCallList::operator==</a></div><div class="ttdeci">bool operator==(const DrawCallList &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00375">dl_vk.h:375</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_list_html_aa6b861d679cf30f33f1d103e243eb68c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_list.html#aa6b861d679cf30f33f1d103e243eb68c">dl::VK::DrawCallList::_listSpr</a></div><div class="ttdeci">std::vector&lt; Sprite * &gt; _listSpr</div><div class="ttdef"><b>定义</b> <a href="#l00374">dl_vk.h:374</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_z_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_z.html">dl::VK::DrawCallZ</a></div><div class="ttdef"><b>定义</b> <a href="#l00381">dl_vk.h:382</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_z_html_a1ee1086caf0043fb80c341f9372ed7d7"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_z.html#a1ee1086caf0043fb80c341f9372ed7d7">dl::VK::DrawCallZ::_dcl</a></div><div class="ttdeci">DrawCallList _dcl</div><div class="ttdef"><b>定义</b> <a href="#l00384">dl_vk.h:384</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_z_html_ab9626c7d39e2c58742c87e3c7fc21721"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_z.html#ab9626c7d39e2c58742c87e3c7fc21721">dl::VK::DrawCallZ::operator==</a></div><div class="ttdeci">bool operator==(const DrawCallZ &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00385">dl_vk.h:385</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_draw_call_z_html_abf35a89e36dc98410b9390497a5efc42"><div class="ttname"><a href="structdl_1_1_v_k_1_1_draw_call_z.html#abf35a89e36dc98410b9390497a5efc42">dl::VK::DrawCallZ::_z</a></div><div class="ttdeci">float _z</div><div class="ttdef"><b>定义</b> <a href="#l00383">dl_vk.h:383</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html">dl::VK::Primitive</a></div><div class="ttdef"><b>定义</b> <a href="#l00226">dl_vk.h:227</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_a06361352a051427d4232f41af0cebd47"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#a06361352a051427d4232f41af0cebd47">dl::VK::Primitive::_idTexDiffuse</a></div><div class="ttdeci">size_t _idTexDiffuse</div><div class="ttdef"><b>定义</b> <a href="#l00229">dl_vk.h:229</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_a153481f409bac2ee89489182f72595a7"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#a153481f409bac2ee89489182f72595a7">dl::VK::Primitive::_idTexAo</a></div><div class="ttdeci">size_t _idTexAo</div><div class="ttdef"><b>定义</b> <a href="#l00232">dl_vk.h:232</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_a65fd9a698f3ae1b062145d2b85ea4563"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#a65fd9a698f3ae1b062145d2b85ea4563">dl::VK::Primitive::_idTexNormal</a></div><div class="ttdeci">size_t _idTexNormal</div><div class="ttdef"><b>定义</b> <a href="#l00231">dl_vk.h:231</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_a9736cde7d13df48b09e6c7231d1603ac"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#a9736cde7d13df48b09e6c7231d1603ac">dl::VK::Primitive::_idTexPhysical</a></div><div class="ttdeci">size_t _idTexPhysical</div><div class="ttdef"><b>定义</b> <a href="#l00230">dl_vk.h:230</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_ac7d49b127ee00214c45b0670e07033b4"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#ac7d49b127ee00214c45b0670e07033b4">dl::VK::Primitive::_idMaterial</a></div><div class="ttdeci">size_t _idMaterial</div><div class="ttdef"><b>定义</b> <a href="#l00228">dl_vk.h:228</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_primitive_html_afbb8a4fb77aac123cfd678d0f1b14525"><div class="ttname"><a href="structdl_1_1_v_k_1_1_primitive.html#afbb8a4fb77aac123cfd678d0f1b14525">dl::VK::Primitive::_idTexEmissive</a></div><div class="ttdeci">size_t _idTexEmissive</div><div class="ttdef"><b>定义</b> <a href="#l00233">dl_vk.h:233</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_c_s_m_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html">dl::VK::PushConstantCSM</a></div><div class="ttdef"><b>定义</b> <a href="#l00212">dl_vk.h:213</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_c_s_m_html_a38e88e750d82d4d4d623b42598b47faf"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a38e88e750d82d4d4d623b42598b47faf">dl::VK::PushConstantCSM::_cascadeIndex</a></div><div class="ttdeci">uint32_t _cascadeIndex</div><div class="ttdef"><b>定义</b> <a href="#l00215">dl_vk.h:215</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_c_s_m_html_a864b3dba721156b9f2a4fbccb25666c1"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_c_s_m.html#a864b3dba721156b9f2a4fbccb25666c1">dl::VK::PushConstantCSM::_model</a></div><div class="ttdeci">Matrix4 _model</div><div class="ttdef"><b>定义</b> <a href="#l00214">dl_vk.h:214</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_data_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_data.html">dl::VK::PushConstantData</a></div><div class="ttdef"><b>定义</b> <a href="#l00201">dl_vk.h:202</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_data_html_a124f27bbcb1418a784e334c20e0f1c99"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_data.html#a124f27bbcb1418a784e334c20e0f1c99">dl::VK::PushConstantData::_color</a></div><div class="ttdeci">Color _color</div><div class="ttdef"><b>定义</b> <a href="#l00204">dl_vk.h:204</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_push_constant_data_html_ab281992103fa9be016e4fc81d4fe5519"><div class="ttname"><a href="structdl_1_1_v_k_1_1_push_constant_data.html#ab281992103fa9be016e4fc81d4fe5519">dl::VK::PushConstantData::_model</a></div><div class="ttdeci">Matrix4 _model</div><div class="ttdef"><b>定义</b> <a href="#l00203">dl_vk.h:203</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_render_param_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_render_param.html">dl::VK::RenderParam</a></div><div class="ttdef"><b>定义</b> <a href="#l01298">dl_vk.h:1299</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_render_param_html_a23e1307e2207a8058b9e6d9eab2aed6f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_render_param.html#a23e1307e2207a8058b9e6d9eab2aed6f">dl::VK::RenderParam::_msaaLevel</a></div><div class="ttdeci">VkSampleCountFlagBits _msaaLevel</div><div class="ttdef"><b>定义</b> <a href="#l01300">dl_vk.h:1300</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_shadow_1_1_cascade_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html">dl::VK::Shadow::Cascade</a></div><div class="ttdef"><b>定义</b> <a href="#l01103">dl_vk.h:1104</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_shadow_1_1_cascade_html_a5c2747383c4d75e42f466c7b32c1adf6"><div class="ttname"><a href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a5c2747383c4d75e42f466c7b32c1adf6">dl::VK::Shadow::Cascade::_frameBuffer</a></div><div class="ttdeci">VkFramebuffer _frameBuffer</div><div class="ttdef"><b>定义</b> <a href="#l01106">dl_vk.h:1106</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_shadow_1_1_cascade_html_a9c60d927f84f8e6392611fc4c063a540"><div class="ttname"><a href="structdl_1_1_v_k_1_1_shadow_1_1_cascade.html#a9c60d927f84f8e6392611fc4c063a540">dl::VK::Shadow::Cascade::_imageView</a></div><div class="ttdeci">VkImageView _imageView</div><div class="ttdef"><b>定义</b> <a href="#l01105">dl_vk.h:1105</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_skybox_1_1_instance_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html">dl::VK::Skybox::Instance</a></div><div class="ttdef"><b>定义</b> <a href="#l01077">dl_vk.h:1078</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_skybox_1_1_instance_html_a788e878e3b61c4bb454723a87bbfdf3a"><div class="ttname"><a href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#a788e878e3b61c4bb454723a87bbfdf3a">dl::VK::Skybox::Instance::_sh</a></div><div class="ttdeci">std::array&lt; Position4, 9 &gt; _sh</div><div class="ttdef"><b>定义</b> <a href="#l01081">dl_vk.h:1081</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_skybox_1_1_instance_html_adfa79e09116508d708fe9628631ac3bc"><div class="ttname"><a href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#adfa79e09116508d708fe9628631ac3bc">dl::VK::Skybox::Instance::_texEnv</a></div><div class="ttdeci">Texture _texEnv</div><div class="ttdef"><b>定义</b> <a href="#l01079">dl_vk.h:1079</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_skybox_1_1_instance_html_ae75c4e70526b6c4c46c1ba48d7fe819c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_skybox_1_1_instance.html#ae75c4e70526b6c4c46c1ba48d7fe819c">dl::VK::Skybox::Instance::_texIbl</a></div><div class="ttdeci">Texture _texIbl</div><div class="ttdef"><b>定义</b> <a href="#l01080">dl_vk.h:1080</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_texture_manager_1_1_task_load_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html">dl::VK::TextureManager::TaskLoad</a></div><div class="ttdef"><b>定义</b> <a href="#l01037">dl_vk.h:1038</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_texture_manager_1_1_task_load_html_abf71301d27ad5d8fd00340bb2140c90b"><div class="ttname"><a href="structdl_1_1_v_k_1_1_texture_manager_1_1_task_load.html#abf71301d27ad5d8fd00340bb2140c90b">dl::VK::TextureManager::TaskLoad::_idCanvas</a></div><div class="ttdeci">size_t _idCanvas</div><div class="ttdef"><b>定义</b> <a href="#l01039">dl_vk.h:1039</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_c_s_m_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_c_s_m.html">dl::VK::UbCSM</a></div><div class="ttdef"><b>定义</b> <a href="#l00208">dl_vk.h:209</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_c_s_m_html_af437cab30b357a8d03abfcaf51172030"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_c_s_m.html#af437cab30b357a8d03abfcaf51172030">dl::VK::UbCSM::_viewProj</a></div><div class="ttdeci">std::array&lt; Matrix4, NUM_SHADOW_CASCADE &gt; _viewProj</div><div class="ttdef"><b>定义</b> <a href="#l00210">dl_vk.h:210</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_object_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_object.html">dl::VK::UbObject</a></div><div class="ttdef"><b>定义</b> <a href="#l00193">dl_vk.h:194</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_object_html_a10a836dd52c513d013e9f1611d4b9f5c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_object.html#a10a836dd52c513d013e9f1611d4b9f5c">dl::VK::UbObject::_pad</a></div><div class="ttdeci">float _pad</div><div class="ttdef"><b>定义</b> <a href="#l00198">dl_vk.h:198</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_object_html_a7d056069d7bb7f43bd2bcab84bda1f95"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_object.html#a7d056069d7bb7f43bd2bcab84bda1f95">dl::VK::UbObject::_camPos</a></div><div class="ttdeci">Position3 _camPos</div><div class="ttdef"><b>定义</b> <a href="#l00197">dl_vk.h:197</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_object_html_aab305c59dbff7008a3e6cd518b1a3e4d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_object.html#aab305c59dbff7008a3e6cd518b1a3e4d">dl::VK::UbObject::_proj</a></div><div class="ttdeci">Matrix4 _proj</div><div class="ttdef"><b>定义</b> <a href="#l00195">dl_vk.h:195</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ub_object_html_afcc63670bead53cbaa5666c97280ba3e"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ub_object.html#afcc63670bead53cbaa5666c97280ba3e">dl::VK::UbObject::_view</a></div><div class="ttdeci">Matrix4 _view</div><div class="ttdef"><b>定义</b> <a href="#l00196">dl_vk.h:196</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ubo_bone_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ubo_bone.html">dl::VK::UboBone</a></div><div class="ttdef"><b>定义</b> <a href="#l00219">dl_vk.h:220</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_ubo_bone_html_a60b81de6243cc39e2ec54f793906decd"><div class="ttname"><a href="structdl_1_1_v_k_1_1_ubo_bone.html#a60b81de6243cc39e2ec54f793906decd">dl::VK::UboBone::_trans</a></div><div class="ttdeci">Matrix4 _trans[NUM_MAX_JOINT]</div><div class="ttdef"><b>定义</b> <a href="#l00221">dl_vk.h:221</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html">dl::VK::VK2D::CBO</a></div><div class="ttdef"><b>定义</b> <a href="#l00399">dl_vk.h:400</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o_html_aa48637dc015462b7a68319a5dce9a9a1"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#aa48637dc015462b7a68319a5dce9a9a1">dl::VK::VK2D::CBO::_samplerIndex</a></div><div class="ttdeci">uint32_t _samplerIndex</div><div class="ttdef"><b>定义</b> <a href="#l00402">dl_vk.h:402</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o_html_ab2dbb027a5c366b4fb45b007dc62fd2e"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d_1_1_c_b_o.html#ab2dbb027a5c366b4fb45b007dc62fd2e">dl::VK::VK2D::CBO::_model</a></div><div class="ttdeci">Matrix4 _model</div><div class="ttdef"><b>定义</b> <a href="#l00401">dl_vk.h:401</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html">dl::VK::VK2D::UBO</a></div><div class="ttdef"><b>定义</b> <a href="#l00394">dl_vk.h:395</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o_html_a979dbc7a1f3afaa775c8d8c55048122c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d_1_1_u_b_o.html#a979dbc7a1f3afaa775c8d8c55048122c">dl::VK::VK2D::UBO::_viewProj</a></div><div class="ttdeci">Matrix4 _viewProj</div><div class="ttdef"><b>定义</b> <a href="#l00396">dl_vk.h:396</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html">dl::VK::VK2D</a></div><div class="ttdef"><b>定义</b> <a href="#l00392">dl_vk.h:393</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a11904370eebd650f851140951e150b59"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a11904370eebd650f851140951e150b59">dl::VK::VK2D::_uniformBuffersMemory</a></div><div class="ttdeci">std::vector&lt; VkDeviceMemory &gt; _uniformBuffersMemory</div><div class="ttdef"><b>定义</b> <a href="#l00414">dl_vk.h:414</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a11a6e06566474d9e7e4625c97687e957"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a11a6e06566474d9e7e4625c97687e957">dl::VK::VK2D::_renderInfo</a></div><div class="ttdeci">RenderInfo2D _renderInfo</div><div class="ttdef"><b>定义</b> <a href="#l00430">dl_vk.h:430</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a1f573a35762a5fb06a629438c1e8ede0"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f573a35762a5fb06a629438c1e8ede0">dl::VK::VK2D::_uniformBuffersMapped</a></div><div class="ttdeci">std::vector&lt; void * &gt; _uniformBuffersMapped</div><div class="ttdef"><b>定义</b> <a href="#l00415">dl_vk.h:415</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a1f86c37e62f7a12875bfff5583bfa305"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a1f86c37e62f7a12875bfff5583bfa305">dl::VK::VK2D::_vecDcTrans</a></div><div class="ttdeci">std::vector&lt; VK::DrawCall &gt; _vecDcTrans</div><div class="ttdef"><b>定义</b> <a href="#l00433">dl_vk.h:433</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a2140635024bb9cbcee97e0a15c821879"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a2140635024bb9cbcee97e0a15c821879">dl::VK::VK2D::_allCBO</a></div><div class="ttdeci">std::array&lt; CBO, NUM_MAX_ROOT_COOR &gt; _allCBO</div><div class="ttdef"><b>定义</b> <a href="#l00424">dl_vk.h:424</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a242781ca5292592bd63964b3baa5374d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a242781ca5292592bd63964b3baa5374d">dl::VK::VK2D::_descriptorSetLayout1</a></div><div class="ttdeci">VkDescriptorSetLayout _descriptorSetLayout1</div><div class="ttdef"><b>定义</b> <a href="#l00412">dl_vk.h:412</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a28bd82a1b313d177030b5d2545d39033"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a28bd82a1b313d177030b5d2545d39033">dl::VK::VK2D::_descriptorSetLayout0</a></div><div class="ttdeci">VkDescriptorSetLayout _descriptorSetLayout0</div><div class="ttdef"><b>定义</b> <a href="#l00411">dl_vk.h:411</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a2cd96c11e28da0773b7bf4cbb9617b38"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a2cd96c11e28da0773b7bf4cbb9617b38">dl::VK::VK2D::_graphicsPipelineTrans</a></div><div class="ttdeci">VkPipeline _graphicsPipelineTrans</div><div class="ttdef"><b>定义</b> <a href="#l00408">dl_vk.h:408</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a30e13783a51fc62182a4039b050d3b94"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a30e13783a51fc62182a4039b050d3b94">dl::VK::VK2D::_textureSampler</a></div><div class="ttdeci">VkSampler _textureSampler</div><div class="ttdef"><b>定义</b> <a href="#l00421">dl_vk.h:421</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a379ab41dab36056a796e66acedea97d9"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a379ab41dab36056a796e66acedea97d9">dl::VK::VK2D::_descriptorSets0</a></div><div class="ttdeci">std::vector&lt; VkDescriptorSet &gt; _descriptorSets0</div><div class="ttdef"><b>定义</b> <a href="#l00417">dl_vk.h:417</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a3824072edfdb835b9143aad46b4edefc"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a3824072edfdb835b9143aad46b4edefc">dl::VK::VK2D::_textureSamplerPixel</a></div><div class="ttdeci">VkSampler _textureSamplerPixel</div><div class="ttdef"><b>定义</b> <a href="#l00422">dl_vk.h:422</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a45ee0561976e1458a2037aeaaeda2a46"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a45ee0561976e1458a2037aeaaeda2a46">dl::VK::VK2D::_graphicsPipeline</a></div><div class="ttdeci">VkPipeline _graphicsPipeline</div><div class="ttdef"><b>定义</b> <a href="#l00407">dl_vk.h:407</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a4d6dbfa4f0c0bf00224d0ed00609593c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a4d6dbfa4f0c0bf00224d0ed00609593c">dl::VK::VK2D::_tempDcListZ</a></div><div class="ttdeci">DrawCallZ _tempDcListZ</div><div class="ttdef"><b>定义</b> <a href="#l00436">dl_vk.h:436</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a552ee89feb7422923011cf879fffc1f6"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a552ee89feb7422923011cf879fffc1f6">dl::VK::VK2D::_graphicsPipelineGray</a></div><div class="ttdeci">VkPipeline _graphicsPipelineGray</div><div class="ttdef"><b>定义</b> <a href="#l00410">dl_vk.h:410</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a697551d084d49388339476ec8597e836"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a697551d084d49388339476ec8597e836">dl::VK::VK2D::_vecDc</a></div><div class="ttdeci">std::vector&lt; VK::DrawCall &gt; _vecDc</div><div class="ttdef"><b>定义</b> <a href="#l00432">dl_vk.h:432</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a78305343cf4e0a586fb6d49ecd551b35"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a78305343cf4e0a586fb6d49ecd551b35">dl::VK::VK2D::_descriptorSets1</a></div><div class="ttdeci">std::vector&lt; VkDescriptorSet &gt; _descriptorSets1</div><div class="ttdef"><b>定义</b> <a href="#l00418">dl_vk.h:418</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a846dcbe15f8043868c3d47d30f3379e6"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a846dcbe15f8043868c3d47d30f3379e6">dl::VK::VK2D::_curPushConstant</a></div><div class="ttdeci">size_t _curPushConstant</div><div class="ttdef"><b>定义</b> <a href="#l00425">dl_vk.h:425</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_a9b6a80d89f2108d30c6e3169f213f075"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#a9b6a80d89f2108d30c6e3169f213f075">dl::VK::VK2D::_allRootCoor</a></div><div class="ttdeci">std::array&lt; Coor *, NUM_MAX_ROOT_COOR &gt; _allRootCoor</div><div class="ttdef"><b>定义</b> <a href="#l00426">dl_vk.h:426</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ab600e8fc58a24de24d3a1d96786deb33"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ab600e8fc58a24de24d3a1d96786deb33">dl::VK::VK2D::_indexBufferMemory</a></div><div class="ttdeci">VkDeviceMemory _indexBufferMemory</div><div class="ttdef"><b>定义</b> <a href="#l00420">dl_vk.h:420</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ab71cba4f6037c3539382fd8369bfd9d5"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ab71cba4f6037c3539382fd8369bfd9d5">dl::VK::VK2D::_descriptorPool</a></div><div class="ttdeci">VkDescriptorPool _descriptorPool</div><div class="ttdef"><b>定义</b> <a href="#l00416">dl_vk.h:416</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_aba72cbecdd55c746d8b2b55bba8ba74d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#aba72cbecdd55c746d8b2b55bba8ba74d">dl::VK::VK2D::_allCanvas</a></div><div class="ttdeci">std::unordered_map&lt; size_t, Canvas * &gt; _allCanvas</div><div class="ttdef"><b>定义</b> <a href="#l00429">dl_vk.h:429</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_abfba586f6b83e09e60560b89752f2952"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#abfba586f6b83e09e60560b89752f2952">dl::VK::VK2D::_vecDcList</a></div><div class="ttdeci">VectorReuse&lt; DrawCallList &gt; _vecDcList</div><div class="ttdef"><b>定义</b> <a href="#l00434">dl_vk.h:434</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ac030b3285b8338e17f1380a09ba526db"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ac030b3285b8338e17f1380a09ba526db">dl::VK::VK2D::_vecDcListZ</a></div><div class="ttdeci">VectorReuse&lt; DrawCallZ &gt; _vecDcListZ</div><div class="ttdef"><b>定义</b> <a href="#l00435">dl_vk.h:435</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ac082d6f537b73ba1fff8115e4805f162"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ac082d6f537b73ba1fff8115e4805f162">dl::VK::VK2D::_indexBuffer</a></div><div class="ttdeci">VkBuffer _indexBuffer</div><div class="ttdef"><b>定义</b> <a href="#l00419">dl_vk.h:419</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_acac3a82ade87381c3409ff9f6eb38181"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#acac3a82ade87381c3409ff9f6eb38181">dl::VK::VK2D::_graphicsPipelineEffect</a></div><div class="ttdeci">VkPipeline _graphicsPipelineEffect</div><div class="ttdef"><b>定义</b> <a href="#l00409">dl_vk.h:409</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ad023205ada7fbce46ec05d23b0c9f073"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ad023205ada7fbce46ec05d23b0c9f073">dl::VK::VK2D::_allRootCoorMat</a></div><div class="ttdeci">std::array&lt; Matrix4, NUM_MAX_ROOT_COOR &gt; _allRootCoorMat</div><div class="ttdef"><b>定义</b> <a href="#l00427">dl_vk.h:427</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ad67a262dc19c721746d7a54392628186"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ad67a262dc19c721746d7a54392628186">dl::VK::VK2D::_mat2D</a></div><div class="ttdeci">Matrix4 _mat2D</div><div class="ttdef"><b>定义</b> <a href="#l00428">dl_vk.h:428</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_ad7425165bbdddc84034a471daccfa49f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#ad7425165bbdddc84034a471daccfa49f">dl::VK::VK2D::_uniformBuffers</a></div><div class="ttdeci">std::vector&lt; VkBuffer &gt; _uniformBuffers</div><div class="ttdef"><b>定义</b> <a href="#l00413">dl_vk.h:413</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_aee3d66875fc52397c4101a93614c40b3"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#aee3d66875fc52397c4101a93614c40b3">dl::VK::VK2D::_textureSamplerUI</a></div><div class="ttdeci">VkSampler _textureSamplerUI</div><div class="ttdef"><b>定义</b> <a href="#l00423">dl_vk.h:423</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k2_d_html_afe5e16f2d2ef6b78fdde33723f643f7d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k2_d.html#afe5e16f2d2ef6b78fdde33723f643f7d">dl::VK::VK2D::_pipelineLayout</a></div><div class="ttdeci">VkPipelineLayout _pipelineLayout</div><div class="ttdef"><b>定义</b> <a href="#l00406">dl_vk.h:406</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html">dl::VK::VKGfx::UBO</a></div><div class="ttdef"><b>定义</b> <a href="#l00497">dl_vk.h:498</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o_html_a3f568c53f04036c74eb72866fc8bed04"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx_1_1_u_b_o.html#a3f568c53f04036c74eb72866fc8bed04">dl::VK::VKGfx::UBO::_viewProj</a></div><div class="ttdeci">Matrix4 _viewProj</div><div class="ttdef"><b>定义</b> <a href="#l00499">dl_vk.h:499</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html">dl::VK::VKGfx</a></div><div class="ttdef"><b>定义</b> <a href="#l00495">dl_vk.h:496</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a1373a98727ca64c48931db48867fa65d"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1373a98727ca64c48931db48867fa65d">dl::VK::VKGfx::_uniformBuffersMemory</a></div><div class="ttdeci">std::vector&lt; VkDeviceMemory &gt; _uniformBuffersMemory</div><div class="ttdef"><b>定义</b> <a href="#l00508">dl_vk.h:508</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a1cbe2a267d10d70cc81813ab6c4ada53"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a1cbe2a267d10d70cc81813ab6c4ada53">dl::VK::VKGfx::_descriptorPool</a></div><div class="ttdeci">VkDescriptorPool _descriptorPool</div><div class="ttdef"><b>定义</b> <a href="#l00509">dl_vk.h:509</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a42316cdf9d189988cbae8eab77b30c27"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a42316cdf9d189988cbae8eab77b30c27">dl::VK::VKGfx::_vecGraphicsPipeline</a></div><div class="ttdeci">std::array&lt; VkPipeline, NUM_GFX_HALF &gt; _vecGraphicsPipeline</div><div class="ttdef"><b>定义</b> <a href="#l00504">dl_vk.h:504</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a4249dab74cc31367a679b96cf87a7727"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a4249dab74cc31367a679b96cf87a7727">dl::VK::VKGfx::_pipelineLayout</a></div><div class="ttdeci">VkPipelineLayout _pipelineLayout</div><div class="ttdef"><b>定义</b> <a href="#l00501">dl_vk.h:501</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a624323c31bed6bca443ed8823d17c72f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a624323c31bed6bca443ed8823d17c72f">dl::VK::VKGfx::_descriptorSets</a></div><div class="ttdeci">std::vector&lt; VkDescriptorSet &gt; _descriptorSets</div><div class="ttdef"><b>定义</b> <a href="#l00510">dl_vk.h:510</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_a76c967351d8491556ed85d793bc060b6"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#a76c967351d8491556ed85d793bc060b6">dl::VK::VKGfx::_descriptorSetLayout</a></div><div class="ttdeci">VkDescriptorSetLayout _descriptorSetLayout</div><div class="ttdef"><b>定义</b> <a href="#l00506">dl_vk.h:506</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_aa163ca27dda74e1577bc294b7f22fcec"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#aa163ca27dda74e1577bc294b7f22fcec">dl::VK::VKGfx::_allVertex</a></div><div class="ttdeci">std::array&lt; std::vector&lt; VertexGfx &gt;, NUM_GFX &gt; _allVertex</div><div class="ttdef"><b>定义</b> <a href="#l00515">dl_vk.h:515</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_acea78839b98cbd0a06fa69c18928e592"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#acea78839b98cbd0a06fa69c18928e592">dl::VK::VKGfx::_uniformBuffers</a></div><div class="ttdeci">std::vector&lt; VkBuffer &gt; _uniformBuffers</div><div class="ttdef"><b>定义</b> <a href="#l00507">dl_vk.h:507</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_gfx_html_ad42858809d1c1f205ee46166828d9b31"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_gfx.html#ad42858809d1c1f205ee46166828d9b31">dl::VK::VKGfx::_arrVB</a></div><div class="ttdeci">std::array&lt; VertexBufferGfx, NUM_GFX &gt; _arrVB</div><div class="ttdef"><b>定义</b> <a href="#l00513">dl_vk.h:513</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html">dl::VK::VKRenderTarget</a></div><div class="ttdef"><b>定义</b> <a href="#l00519">dl_vk.h:520</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html_a2901f98a5d503d1c93effa9da2c309be"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2901f98a5d503d1c93effa9da2c309be">dl::VK::VKRenderTarget::_texDepth</a></div><div class="ttdeci">Texture _texDepth</div><div class="ttdef"><b>定义</b> <a href="#l00522">dl_vk.h:522</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html_a2b7258465b216856af5dd4438c89dbea"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html#a2b7258465b216856af5dd4438c89dbea">dl::VK::VKRenderTarget::_texColor</a></div><div class="ttdeci">Texture _texColor</div><div class="ttdef"><b>定义</b> <a href="#l00521">dl_vk.h:521</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html_a3adc4a4da3a8218d6dae6e00dbc76363"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html#a3adc4a4da3a8218d6dae6e00dbc76363">dl::VK::VKRenderTarget::_frameBuffer</a></div><div class="ttdeci">VkFramebuffer _frameBuffer</div><div class="ttdef"><b>定义</b> <a href="#l00524">dl_vk.h:524</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html_a67e69fabeb394ab2ee21b747b9ae03b3"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html#a67e69fabeb394ab2ee21b747b9ae03b3">dl::VK::VKRenderTarget::_texColorOut</a></div><div class="ttdeci">Texture _texColorOut</div><div class="ttdef"><b>定义</b> <a href="#l00523">dl_vk.h:523</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_v_k_render_target_html_a7e5b2bf09350c5e8fe716e08144f55ba"><div class="ttname"><a href="structdl_1_1_v_k_1_1_v_k_render_target.html#a7e5b2bf09350c5e8fe716e08144f55ba">dl::VK::VKRenderTarget::Delete</a></div><div class="ttdeci">void Delete(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00526">dl_vk.h:526</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html">dl::VK::VertexBufferGfx::Frame</a></div><div class="ttdef"><b>定义</b> <a href="#l00441">dl_vk.h:442</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a028b8ac5da303e2f12d33abc7f039fce"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a028b8ac5da303e2f12d33abc7f039fce">dl::VK::VertexBufferGfx::Frame::Frame</a></div><div class="ttdeci">Frame()</div><div class="ttdef"><b>定义</b> <a href="#l00451">dl_vk.h:451</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a3915ab2ef2dcbdf2f5c017ef5d7988cd"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a3915ab2ef2dcbdf2f5c017ef5d7988cd">dl::VK::VertexBufferGfx::Frame::_vertex</a></div><div class="ttdeci">VertexGfx * _vertex</div><div class="ttdef"><b>定义</b> <a href="#l00447">dl_vk.h:447</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a687eadf6cbbec579e5622df534aa0a15"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a687eadf6cbbec579e5622df534aa0a15">dl::VK::VertexBufferGfx::Frame::Unlock</a></div><div class="ttdeci">void Unlock(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00461">dl_vk.h:461</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a7ebb34b24cf252214cea447d23f67a5e"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a7ebb34b24cf252214cea447d23f67a5e">dl::VK::VertexBufferGfx::Frame::Delete</a></div><div class="ttdeci">void Delete(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00466">dl_vk.h:466</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a918ddc42e2494fdeb31db3c03591ac2c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a918ddc42e2494fdeb31db3c03591ac2c">dl::VK::VertexBufferGfx::Frame::_num</a></div><div class="ttdeci">std::size_t _num</div><div class="ttdef"><b>定义</b> <a href="#l00449">dl_vk.h:449</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a928e5c32a8f9f135ec737f73d67b4226"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a928e5c32a8f9f135ec737f73d67b4226">dl::VK::VertexBufferGfx::Frame::_vertexBufferSize</a></div><div class="ttdeci">VkDeviceSize _vertexBufferSize</div><div class="ttdef"><b>定义</b> <a href="#l00445">dl_vk.h:445</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_a956588256d18b86116218f3776f1fa1f"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#a956588256d18b86116218f3776f1fa1f">dl::VK::VertexBufferGfx::Frame::Lock</a></div><div class="ttdeci">void Lock(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00457">dl_vk.h:457</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_ac65155de895b755c0a9948b222601e1c"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac65155de895b755c0a9948b222601e1c">dl::VK::VertexBufferGfx::Frame::_vertexBufferMemory</a></div><div class="ttdeci">VkDeviceMemory _vertexBufferMemory</div><div class="ttdef"><b>定义</b> <a href="#l00444">dl_vk.h:444</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_ac95f63861127f9e70d33b1c8a4e379c5"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#ac95f63861127f9e70d33b1c8a4e379c5">dl::VK::VertexBufferGfx::Frame::_index</a></div><div class="ttdeci">std::size_t _index</div><div class="ttdef"><b>定义</b> <a href="#l00448">dl_vk.h:448</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame_html_acb4476de163c01557b2f25a7f353d1a9"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx_1_1_frame.html#acb4476de163c01557b2f25a7f353d1a9">dl::VK::VertexBufferGfx::Frame::_vertexBuffer</a></div><div class="ttdeci">VkBuffer _vertexBuffer</div><div class="ttdef"><b>定义</b> <a href="#l00443">dl_vk.h:443</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_html"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html">dl::VK::VertexBufferGfx</a></div><div class="ttdef"><b>定义</b> <a href="#l00439">dl_vk.h:440</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_html_aab80df7e2cf7b4104af1e4ac917772d2"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#aab80df7e2cf7b4104af1e4ac917772d2">dl::VK::VertexBufferGfx::_frame</a></div><div class="ttdeci">std::vector&lt; Frame &gt; _frame</div><div class="ttdef"><b>定义</b> <a href="#l00473">dl_vk.h:473</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_html_ab0372b79a9038e294e86e1e12ab6b118"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#ab0372b79a9038e294e86e1e12ab6b118">dl::VK::VertexBufferGfx::Init</a></div><div class="ttdeci">void Init(VK *vk)</div><div class="ttdef"><b>定义</b> <a href="#l00475">dl_vk.h:475</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_html_af4da5da1cf99dc477802360efcc21958"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af4da5da1cf99dc477802360efcc21958">dl::VK::VertexBufferGfx::Delete</a></div><div class="ttdeci">void Delete(VkDevice device)</div><div class="ttdef"><b>定义</b> <a href="#l00485">dl_vk.h:485</a></div></div>
<div class="ttc" id="astructdl_1_1_v_k_1_1_vertex_buffer_gfx_html_af69732e554af4ed5ba1189868da9b943"><div class="ttname"><a href="structdl_1_1_v_k_1_1_vertex_buffer_gfx.html#af69732e554af4ed5ba1189868da9b943">dl::VK::VertexBufferGfx::operator[]</a></div><div class="ttdeci">Frame &amp; operator[](size_t i)</div><div class="ttdef"><b>定义</b> <a href="#l00480">dl_vk.h:480</a></div></div>
<div class="ttc" id="astructdl_1_1_vertex_gfx_html"><div class="ttname"><a href="structdl_1_1_vertex_gfx.html">dl::VertexGfx</a></div><div class="ttdoc">顶点</div><div class="ttdef"><b>定义</b> <a href="dl__vertex_8h_source.html#l00177">dl_vertex.h:178</a></div></div>
<div class="ttc" id="astructdl_1_1_vertex_gfx_html_ade6e2df604386644ae299cfd338a0f01"><div class="ttname"><a href="structdl_1_1_vertex_gfx.html#ade6e2df604386644ae299cfd338a0f01">dl::VertexGfx::_color</a></div><div class="ttdeci">Color _color</div><div class="ttdef"><b>定义</b> <a href="dl__vertex_8h_source.html#l00180">dl_vertex.h:180</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>