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

138 lines
16 KiB
HTML
Vendored

<!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/memory/dl_memory.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_880cbdb7e19477dab0ac315d644729fb.html">memory</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_memory.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__memory_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="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;cstring&gt;</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">#include &quot;<a class="code" href="dl__buffer_8h.html">memory/dl_buffer.h</a>&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// 与freetype编译冲突,不使用zlib(最新zlib貌似已经修复了,所以还是使用)</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">//#define DL_DISABLE_ZLIB</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span></div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="}">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html"> 20</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl_1_1_memory.html">dl::Memory</a></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>{</div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838"> 22</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838">CompressMode</a></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838ad436cd1fca3816e23493100c4d00ca1f"> 24</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838ad436cd1fca3816e23493100c4d00ca1f">E_NONE</a>,</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a51e3c1af810abb4a121691d69dfec4e4"> 25</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a51e3c1af810abb4a121691d69dfec4e4">E_ZIP</a>,</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a008413b048d5468d610847fa2239d514"> 26</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a008413b048d5468d610847fa2239d514">E_LZ4</a></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> };</div>
</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">//-------------------------------------lz4-----------------------------------</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#a1148956fbb97dc3326cd1bdbf8f671e3"> 34</a></span><a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacedl_1_1_memory.html#a1148956fbb97dc3326cd1bdbf8f671e3">CompressLz4</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> src);</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#a6ea4ada3608b3fe6b6b967c6101e5f4e"> 42</a></span><a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacedl_1_1_memory.html#a6ea4ada3608b3fe6b6b967c6101e5f4e">DecompressLz4</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> src, <span class="keywordtype">size_t</span> size_origin = 0);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#ifndef DL_DISABLE_ZLIB</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#ae97bac4d7b2e3c496ff35b308900b726"> 51</a></span><a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacedl_1_1_memory.html#ae97bac4d7b2e3c496ff35b308900b726">CompressZip</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> src);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#ab90b9a8c8acaf9740fd6b0ac82c90cfa"> 59</a></span><a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacedl_1_1_memory.html#ab90b9a8c8acaf9740fd6b0ac82c90cfa">DecompressZip</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> src, <span class="keywordtype">size_t</span> size_origin = 0);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#a4d0cbdbccc0da71b5ab4e412aedd2db1"> 62</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_memory.html#a4d0cbdbccc0da71b5ab4e412aedd2db1">TestLz4</a>();</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#ifndef DL_DISABLE_ZLIB</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#a77adabc7a82d4c1b4e139f663449607c"> 65</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_memory.html#a77adabc7a82d4c1b4e139f663449607c">TestZip</a>();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span></div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="}">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacedl_1_1_memory.html#ac074eef5c3699f9e008e2a6a329d2a5f"> 71</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_memory.html#ac074eef5c3699f9e008e2a6a329d2a5f">Copy</a>(<span class="keywordtype">void</span>* target, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">void</span>* source, <span class="keywordtype">size_t</span> size_source)</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>{</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">if</span> (size &lt; size_source)</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> memcpy(target, source, size);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> memcpy(target, source, size_source);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>}</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_buffer_view_html"><div class="ttname"><a href="classdl_1_1_buffer_view.html">dl::BufferView</a></div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00155">dl_buffer.h:156</a></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="anamespacedl_1_1_memory_html"><div class="ttname"><a href="namespacedl_1_1_memory.html">dl::Memory</a></div><div class="ttdoc">内存相关</div><div class="ttdef"><b>定义</b> <a href="#l00020">dl_memory.h:21</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_a1148956fbb97dc3326cd1bdbf8f671e3"><div class="ttname"><a href="namespacedl_1_1_memory.html#a1148956fbb97dc3326cd1bdbf8f671e3">dl::Memory::CompressLz4</a></div><div class="ttdeci">Buffer CompressLz4(BufferView src)</div><div class="ttdoc">压缩数据,使用lz4算法</div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_a4d0cbdbccc0da71b5ab4e412aedd2db1"><div class="ttname"><a href="namespacedl_1_1_memory.html#a4d0cbdbccc0da71b5ab4e412aedd2db1">dl::Memory::TestLz4</a></div><div class="ttdeci">void TestLz4()</div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_a6ea4ada3608b3fe6b6b967c6101e5f4e"><div class="ttname"><a href="namespacedl_1_1_memory.html#a6ea4ada3608b3fe6b6b967c6101e5f4e">dl::Memory::DecompressLz4</a></div><div class="ttdeci">Buffer DecompressLz4(BufferView src, size_t size_origin=0)</div><div class="ttdoc">解压缩数据,使用lz4算法</div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_a77adabc7a82d4c1b4e139f663449607c"><div class="ttname"><a href="namespacedl_1_1_memory.html#a77adabc7a82d4c1b4e139f663449607c">dl::Memory::TestZip</a></div><div class="ttdeci">void TestZip()</div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_aa643ad8b151b6299043afaed769ce838"><div class="ttname"><a href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838">dl::Memory::CompressMode</a></div><div class="ttdeci">CompressMode</div><div class="ttdef"><b>定义</b> <a href="#l00022">dl_memory.h:23</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_aa643ad8b151b6299043afaed769ce838a008413b048d5468d610847fa2239d514"><div class="ttname"><a href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a008413b048d5468d610847fa2239d514">dl::Memory::E_LZ4</a></div><div class="ttdeci">@ E_LZ4</div><div class="ttdef"><b>定义</b> <a href="#l00026">dl_memory.h:26</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_aa643ad8b151b6299043afaed769ce838a51e3c1af810abb4a121691d69dfec4e4"><div class="ttname"><a href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838a51e3c1af810abb4a121691d69dfec4e4">dl::Memory::E_ZIP</a></div><div class="ttdeci">@ E_ZIP</div><div class="ttdef"><b>定义</b> <a href="#l00025">dl_memory.h:25</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_aa643ad8b151b6299043afaed769ce838ad436cd1fca3816e23493100c4d00ca1f"><div class="ttname"><a href="namespacedl_1_1_memory.html#aa643ad8b151b6299043afaed769ce838ad436cd1fca3816e23493100c4d00ca1f">dl::Memory::E_NONE</a></div><div class="ttdeci">@ E_NONE</div><div class="ttdef"><b>定义</b> <a href="#l00024">dl_memory.h:24</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_ab90b9a8c8acaf9740fd6b0ac82c90cfa"><div class="ttname"><a href="namespacedl_1_1_memory.html#ab90b9a8c8acaf9740fd6b0ac82c90cfa">dl::Memory::DecompressZip</a></div><div class="ttdeci">Buffer DecompressZip(BufferView src, size_t size_origin=0)</div><div class="ttdoc">解压缩数据,使用libz</div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_ac074eef5c3699f9e008e2a6a329d2a5f"><div class="ttname"><a href="namespacedl_1_1_memory.html#ac074eef5c3699f9e008e2a6a329d2a5f">dl::Memory::Copy</a></div><div class="ttdeci">void Copy(void *target, size_t size, const void *source, size_t size_source)</div><div class="ttdoc">memcpy_s的替代品</div><div class="ttdef"><b>定义</b> <a href="#l00071">dl_memory.h:71</a></div></div>
<div class="ttc" id="anamespacedl_1_1_memory_html_ae97bac4d7b2e3c496ff35b308900b726"><div class="ttname"><a href="namespacedl_1_1_memory.html#ae97bac4d7b2e3c496ff35b308900b726">dl::Memory::CompressZip</a></div><div class="ttdeci">Buffer CompressZip(BufferView src)</div><div class="ttdoc">压缩数据,使用libz</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>