1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta name="generator" content="Doxygen 1.9.1" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="vulkan 2d vector drawing library." />
<title>VKVG: /mnt/devel/vkvg-master/include/vkvg-svg.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="custom.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top">
<div id="titlearea">
<table id="titletable" cellspacing="0" cellpadding="0" style="width:100%">
<tr id="titlerow" >
<td id="projectlogo"><img alt="Logo" src="vkvg.svg" /></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">VKVG  </div>
<div id="projectbrief">Vulkan Vector Graphics</div>
</td>
<td align="right"><button style="font-size:16px" onclick="location.href='https://github.com/jpbruyere/vkvg'">View on GitHub <i class="fa fa-github"></i></button></td>
</tr>
</table>
</div>
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">vkvg-svg.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="vkvg-svg_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2018-2022 Jean-Philippe Bruyère <jp_bruyere@hotmail.com></span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * this software and associated documentation files (the "Software"), to deal in</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * the Software without restriction, including without limitation the rights to use,</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Software, and to permit persons to whom the Software is furnished to do so, subject</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * to the following conditions:</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * The above copyright notice and this permission notice shall be included in all</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * copies or substantial portions of the Software.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * THE SOFTWARE.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef VKVG_SVG_H</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define VKVG_SVG_H</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifdef VKVG_SVG</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_vkvg_svg_t* <a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a>;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13"> 32</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>NSVGimage* <a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> vkvg_public</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_ad4d202cd0b7216f96e58fab7dc917aae.html#ad4d202cd0b7216f96e58fab7dc917aae"> 45</a></span> <a class="code" href="group__surface_gaf2e9eb0e48dd4533d4a5622c12e4d0e7.html#gaf2e9eb0e48dd4533d4a5622c12e4d0e7">VkvgSurface</a> <a class="code" href="vkvg-svg_8h_ad4d202cd0b7216f96e58fab7dc917aae.html#ad4d202cd0b7216f96e58fab7dc917aae">vkvg_surface_create_from_svg</a>(<a class="code" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev, uint32_t width, uint32_t height, <span class="keyword">const</span> <span class="keywordtype">char</span>* svgFilePath);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> vkvg_public</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a8dc164746718bde97cf6c67826adaa87.html#a8dc164746718bde97cf6c67826adaa87"> 57</a></span> <a class="code" href="group__surface_gaf2e9eb0e48dd4533d4a5622c12e4d0e7.html#gaf2e9eb0e48dd4533d4a5622c12e4d0e7">VkvgSurface</a> <a class="code" href="vkvg-svg_8h_a8dc164746718bde97cf6c67826adaa87.html#a8dc164746718bde97cf6c67826adaa87">vkvg_surface_create_from_svg_fragment</a>(<a class="code" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev, uint32_t width, uint32_t height, <span class="keywordtype">char</span>* svgFragment);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vkvg_public</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a60a50053186ecec716f37918f632060b.html#a60a50053186ecec716f37918f632060b"> 67</a></span> <span class="keywordtype">void</span> <a class="code" href="vkvg-svg_8h_a60a50053186ecec716f37918f632060b.html#a60a50053186ecec716f37918f632060b">vkvg_svg_get_dimensions</a> (<a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a> svg, uint32_t* width, uint32_t* height);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> vkvg_public</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a1f96ecf7fcf972e1f1946c6908cb5d04.html#a1f96ecf7fcf972e1f1946c6908cb5d04"> 77</a></span> <a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a> <a class="code" href="vkvg-svg_8h_a1f96ecf7fcf972e1f1946c6908cb5d04.html#a1f96ecf7fcf972e1f1946c6908cb5d04">vkvg_svg_load</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* svgFilePath);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> vkvg_public</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a3b7217988846c2a4ce144ef76c2b54ad.html#a3b7217988846c2a4ce144ef76c2b54ad"> 85</a></span> <a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a> <a class="code" href="vkvg-svg_8h_a3b7217988846c2a4ce144ef76c2b54ad.html#a3b7217988846c2a4ce144ef76c2b54ad">vkvg_svg_load_fragment</a> (<span class="keywordtype">char</span>* svgFragment);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> vkvg_public</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_aced1d16270a7b6d285a0758706b6e60a.html#aced1d16270a7b6d285a0758706b6e60a"> 94</a></span> <span class="keywordtype">void</span> <a class="code" href="vkvg-svg_8h_aced1d16270a7b6d285a0758706b6e60a.html#aced1d16270a7b6d285a0758706b6e60a">vkvg_svg_render</a> (<a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a> svg, <a class="code" href="group__context_ga1027bada0ac47c81c3b0746158c3c5bc.html#ga1027bada0ac47c81c3b0746158c3c5bc">VkvgContext</a> ctx, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> vkvg_public</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="vkvg-svg_8h_a059d00a161a78113f6c81e06496ddd5e.html#a059d00a161a78113f6c81e06496ddd5e"> 101</a></span> <span class="keywordtype">void</span> <a class="code" href="vkvg-svg_8h_a059d00a161a78113f6c81e06496ddd5e.html#a059d00a161a78113f6c81e06496ddd5e">vkvg_svg_destroy</a> (<a class="code" href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a> svg);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#endif</span></div>
<div class="ttc" id="agroup__context_ga1027bada0ac47c81c3b0746158c3c5bc_html_ga1027bada0ac47c81c3b0746158c3c5bc"><div class="ttname"><a href="group__context_ga1027bada0ac47c81c3b0746158c3c5bc.html#ga1027bada0ac47c81c3b0746158c3c5bc">VkvgContext</a></div><div class="ttdeci">struct _vkvg_context_t * VkvgContext</div><div class="ttdoc">The Vkvg drawing Context.</div><div class="ttdef"><b>Definition:</b> <a href="vkvg_8h_source.html#l00296">vkvg.h:296</a></div></div>
<div class="ttc" id="agroup__device_ga4410787cc120fdafe8cdc480a2b02e71_html_ga4410787cc120fdafe8cdc480a2b02e71"><div class="ttname"><a href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a></div><div class="ttdeci">struct _vkvg_device_t * VkvgDevice</div><div class="ttdoc">Opaque pointer on a Vkvg device structure.</div><div class="ttdef"><b>Definition:</b> <a href="vkvg_8h_source.html#l00315">vkvg.h:315</a></div></div>
<div class="ttc" id="agroup__surface_gaf2e9eb0e48dd4533d4a5622c12e4d0e7_html_gaf2e9eb0e48dd4533d4a5622c12e4d0e7"><div class="ttname"><a href="group__surface_gaf2e9eb0e48dd4533d4a5622c12e4d0e7.html#gaf2e9eb0e48dd4533d4a5622c12e4d0e7">VkvgSurface</a></div><div class="ttdeci">struct _vkvg_surface_t * VkvgSurface</div><div class="ttdoc">Opaque pointer on a Vkvg Surface structure.</div><div class="ttdef"><b>Definition:</b> <a href="vkvg_8h_source.html#l00308">vkvg.h:308</a></div></div>
<div class="ttc" id="avkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13_html_a0003abdfb8e71c30d01f61d21ccebb13"><div class="ttname"><a href="vkvg-svg_8h_a0003abdfb8e71c30d01f61d21ccebb13.html#a0003abdfb8e71c30d01f61d21ccebb13">VkvgSvg</a></div><div class="ttdeci">struct NSVGimage * VkvgSvg</div><div class="ttdef"><b>Definition:</b> <a href="vkvg-svg_8h_source.html#l00032">vkvg-svg.h:32</a></div></div>
<div class="ttc" id="avkvg-svg_8h_a059d00a161a78113f6c81e06496ddd5e_html_a059d00a161a78113f6c81e06496ddd5e"><div class="ttname"><a href="vkvg-svg_8h_a059d00a161a78113f6c81e06496ddd5e.html#a059d00a161a78113f6c81e06496ddd5e">vkvg_svg_destroy</a></div><div class="ttdeci">void vkvg_svg_destroy(VkvgSvg svg)</div><div class="ttdoc">release VkvgSvg pointer resources.</div></div>
<div class="ttc" id="avkvg-svg_8h_a1f96ecf7fcf972e1f1946c6908cb5d04_html_a1f96ecf7fcf972e1f1946c6908cb5d04"><div class="ttname"><a href="vkvg-svg_8h_a1f96ecf7fcf972e1f1946c6908cb5d04.html#a1f96ecf7fcf972e1f1946c6908cb5d04">vkvg_svg_load</a></div><div class="ttdeci">VkvgSvg vkvg_svg_load(const char *svgFilePath)</div><div class="ttdoc">Load svg file in memory.</div></div>
<div class="ttc" id="avkvg-svg_8h_a3b7217988846c2a4ce144ef76c2b54ad_html_a3b7217988846c2a4ce144ef76c2b54ad"><div class="ttname"><a href="vkvg-svg_8h_a3b7217988846c2a4ce144ef76c2b54ad.html#a3b7217988846c2a4ce144ef76c2b54ad">vkvg_svg_load_fragment</a></div><div class="ttdeci">VkvgSvg vkvg_svg_load_fragment(char *svgFragment)</div><div class="ttdoc">Load svg from an svg source fragment.</div></div>
<div class="ttc" id="avkvg-svg_8h_a60a50053186ecec716f37918f632060b_html_a60a50053186ecec716f37918f632060b"><div class="ttname"><a href="vkvg-svg_8h_a60a50053186ecec716f37918f632060b.html#a60a50053186ecec716f37918f632060b">vkvg_svg_get_dimensions</a></div><div class="ttdeci">void vkvg_svg_get_dimensions(VkvgSvg svg, uint32_t *width, uint32_t *height)</div><div class="ttdoc">get svg dimensions.</div></div>
<div class="ttc" id="avkvg-svg_8h_a8dc164746718bde97cf6c67826adaa87_html_a8dc164746718bde97cf6c67826adaa87"><div class="ttname"><a href="vkvg-svg_8h_a8dc164746718bde97cf6c67826adaa87.html#a8dc164746718bde97cf6c67826adaa87">vkvg_surface_create_from_svg_fragment</a></div><div class="ttdeci">VkvgSurface vkvg_surface_create_from_svg_fragment(VkvgDevice dev, uint32_t width, uint32_t height, char *svgFragment)</div><div class="ttdoc">create surface from svg fragment</div></div>
<div class="ttc" id="avkvg-svg_8h_aced1d16270a7b6d285a0758706b6e60a_html_aced1d16270a7b6d285a0758706b6e60a"><div class="ttname"><a href="vkvg-svg_8h_aced1d16270a7b6d285a0758706b6e60a.html#aced1d16270a7b6d285a0758706b6e60a">vkvg_svg_render</a></div><div class="ttdeci">void vkvg_svg_render(VkvgSvg svg, VkvgContext ctx, const char *id)</div><div class="ttdoc">render svg on a context.</div></div>
<div class="ttc" id="avkvg-svg_8h_ad4d202cd0b7216f96e58fab7dc917aae_html_ad4d202cd0b7216f96e58fab7dc917aae"><div class="ttname"><a href="vkvg-svg_8h_ad4d202cd0b7216f96e58fab7dc917aae.html#ad4d202cd0b7216f96e58fab7dc917aae">vkvg_surface_create_from_svg</a></div><div class="ttdeci">VkvgSurface vkvg_surface_create_from_svg(VkvgDevice dev, uint32_t width, uint32_t height, const char *svgFilePath)</div><div class="ttdoc">load svg file into Surface</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
|