summaryrefslogtreecommitdiffstatsci
path: root/group__device.html
blob: 6ba6c3c7588777843066c33ecdfa01f1b5767a97 (plain)
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
<!-- 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: Device</title>
    <link href="tabs.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="dynsections.js"></script>
     <link href="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&amp;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">
                <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 &#160;</div>
                        <div id="projectbrief">Vulkan Vector Graphics</div>
                    </td>
                </tr>
            </table>
        </div>
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<!-- 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 class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Device</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71" title="Opaque pointer on a Vkvg device structure.">VkvgDevice</a> is the starting point of a vkvg rendering infrastructure. It connects an existing vulkan context with vkvg, or may create a new one.</p>
<p>Most of the vulkan rendering component (pipelines, renderpass, ..) are part of the VkvgDevice, their are shared among drawing contexts.</p>
<p>Antialiasing level is configured when creating the device by selecting the sample count. <a class="el" href="group__device_ga78fe5806b41e650f39fdb8b0722efb3c.html#ga78fe5806b41e650f39fdb8b0722efb3c">vkvg_device_create</a> will create a non-antialiased dev by selecting VK_SAMPLE_COUNT_1_BIT as sample count. To create antialiased rendering device, call vkvg_device_create_multisample with VkSampleCountFlags greater than one.</p>
<p>vkvg use a single frame buffer format for now: VK_FORMAT_B8G8R8A8_UNORM.</p>
<p>Device holds the font cache so that each time a context draws text, the same cache is used. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga4410787cc120fdafe8cdc480a2b02e71"><td class="memItemLeft" align="right" valign="top">typedef struct _vkvg_device_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a></td></tr>
<tr class="memdesc:ga4410787cc120fdafe8cdc480a2b02e71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque pointer on a Vkvg device structure.  <a href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">More...</a><br /></td></tr>
<tr class="separator:ga4410787cc120fdafe8cdc480a2b02e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga14c3363f17896c4cbc90b5a742d8cc92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga14c3363f17896c4cbc90b5a742d8cc92.html#ga14c3363f17896c4cbc90b5a742d8cc92">vkvg_device_set_thread_aware</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev, uint32_t thread_awayre)</td></tr>
<tr class="memdesc:ga14c3363f17896c4cbc90b5a742d8cc92"><td class="mdescLeft">&#160;</td><td class="mdescRight">vkvg_device_set_thread_aware  <a href="group__device_ga14c3363f17896c4cbc90b5a742d8cc92.html#ga14c3363f17896c4cbc90b5a742d8cc92">More...</a><br /></td></tr>
<tr class="separator:ga14c3363f17896c4cbc90b5a742d8cc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78fe5806b41e650f39fdb8b0722efb3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga78fe5806b41e650f39fdb8b0722efb3c.html#ga78fe5806b41e650f39fdb8b0722efb3c">vkvg_device_create</a> (VkSampleCountFlags samples, bool deferredResolve)</td></tr>
<tr class="memdesc:ga78fe5806b41e650f39fdb8b0722efb3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new vkvg device.  <a href="group__device_ga78fe5806b41e650f39fdb8b0722efb3c.html#ga78fe5806b41e650f39fdb8b0722efb3c">More...</a><br /></td></tr>
<tr class="separator:ga78fe5806b41e650f39fdb8b0722efb3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga792170a12976eced48e117cc1adf4bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga792170a12976eced48e117cc1adf4bcf.html#ga792170a12976eced48e117cc1adf4bcf">vkvg_device_create_from_vk</a> (VkInstance inst, VkPhysicalDevice phy, VkDevice vkdev, uint32_t qFamIdx, uint32_t qIndex)</td></tr>
<tr class="memdesc:ga792170a12976eced48e117cc1adf4bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new vkvg device from an existing vulkan logical device.  <a href="group__device_ga792170a12976eced48e117cc1adf4bcf.html#ga792170a12976eced48e117cc1adf4bcf">More...</a><br /></td></tr>
<tr class="separator:ga792170a12976eced48e117cc1adf4bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17a593a0a8b3c174b22e7e9a67995257"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga17a593a0a8b3c174b22e7e9a67995257.html#ga17a593a0a8b3c174b22e7e9a67995257">vkvg_device_create_from_vk_multisample</a> (VkInstance inst, VkPhysicalDevice phy, VkDevice vkdev, uint32_t qFamIdx, uint32_t qIndex, VkSampleCountFlags samples, bool deferredResolve)</td></tr>
<tr class="memdesc:ga17a593a0a8b3c174b22e7e9a67995257"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new multisampled vkvg device.  <a href="group__device_ga17a593a0a8b3c174b22e7e9a67995257.html#ga17a593a0a8b3c174b22e7e9a67995257">More...</a><br /></td></tr>
<tr class="separator:ga17a593a0a8b3c174b22e7e9a67995257"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2aaf6df4810242a7ba61d1cc22dda83d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga2aaf6df4810242a7ba61d1cc22dda83d.html#ga2aaf6df4810242a7ba61d1cc22dda83d">vkvg_device_destroy</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev)</td></tr>
<tr class="memdesc:ga2aaf6df4810242a7ba61d1cc22dda83d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrement the reference count of the device by 1. Release all it's ressources if count reach 0.  <a href="group__device_ga2aaf6df4810242a7ba61d1cc22dda83d.html#ga2aaf6df4810242a7ba61d1cc22dda83d">More...</a><br /></td></tr>
<tr class="separator:ga2aaf6df4810242a7ba61d1cc22dda83d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7cfe91b5df3581ed1bcdef483d1a2367"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vkvg_8h_a0cf53c292fd50abe53343d71673c9354.html#a0cf53c292fd50abe53343d71673c9354">vkvg_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga7cfe91b5df3581ed1bcdef483d1a2367.html#ga7cfe91b5df3581ed1bcdef483d1a2367">vkvg_device_status</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev)</td></tr>
<tr class="memdesc:ga7cfe91b5df3581ed1bcdef483d1a2367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current status of the device.  <a href="group__device_ga7cfe91b5df3581ed1bcdef483d1a2367.html#ga7cfe91b5df3581ed1bcdef483d1a2367">More...</a><br /></td></tr>
<tr class="separator:ga7cfe91b5df3581ed1bcdef483d1a2367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fbc07e9e6fa4e97dd0857b58e66a916"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga3fbc07e9e6fa4e97dd0857b58e66a916.html#ga3fbc07e9e6fa4e97dd0857b58e66a916">vkvg_device_reference</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev)</td></tr>
<tr class="memdesc:ga3fbc07e9e6fa4e97dd0857b58e66a916"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increment the reference count on this device.  <a href="group__device_ga3fbc07e9e6fa4e97dd0857b58e66a916.html#ga3fbc07e9e6fa4e97dd0857b58e66a916">More...</a><br /></td></tr>
<tr class="separator:ga3fbc07e9e6fa4e97dd0857b58e66a916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8fba0b5d5588ef33326e874bd25a4c1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_gaf8fba0b5d5588ef33326e874bd25a4c1.html#gaf8fba0b5d5588ef33326e874bd25a4c1">vkvg_device_get_reference_count</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev)</td></tr>
<tr class="memdesc:gaf8fba0b5d5588ef33326e874bd25a4c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query the reference count of the device.  <a href="group__device_gaf8fba0b5d5588ef33326e874bd25a4c1.html#gaf8fba0b5d5588ef33326e874bd25a4c1">More...</a><br /></td></tr>
<tr class="separator:gaf8fba0b5d5588ef33326e874bd25a4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67fe3cfb43415cc557c3c6f2dad1990b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga67fe3cfb43415cc557c3c6f2dad1990b.html#ga67fe3cfb43415cc557c3c6f2dad1990b">vkvg_device_set_dpy</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev, int hdpy, int vdpy)</td></tr>
<tr class="memdesc:ga67fe3cfb43415cc557c3c6f2dad1990b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the screen dot per inch for this device.  <a href="group__device_ga67fe3cfb43415cc557c3c6f2dad1990b.html#ga67fe3cfb43415cc557c3c6f2dad1990b">More...</a><br /></td></tr>
<tr class="separator:ga67fe3cfb43415cc557c3c6f2dad1990b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga629ad9c736d5e7936529aadbfc202c53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga629ad9c736d5e7936529aadbfc202c53.html#ga629ad9c736d5e7936529aadbfc202c53">vkvg_device_get_dpy</a> (<a class="el" href="group__device_ga4410787cc120fdafe8cdc480a2b02e71.html#ga4410787cc120fdafe8cdc480a2b02e71">VkvgDevice</a> dev, int *hdpy, int *vdpy)</td></tr>
<tr class="memdesc:ga629ad9c736d5e7936529aadbfc202c53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current dpy values.  <a href="group__device_ga629ad9c736d5e7936529aadbfc202c53.html#ga629ad9c736d5e7936529aadbfc202c53">More...</a><br /></td></tr>
<tr class="separator:ga629ad9c736d5e7936529aadbfc202c53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9319a5e85f367098b0e6e3265fb8ea85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga9319a5e85f367098b0e6e3265fb8ea85.html#ga9319a5e85f367098b0e6e3265fb8ea85">vkvg_get_required_instance_extensions</a> (const char **pExtensions, uint32_t *pExtCount)</td></tr>
<tr class="memdesc:ga9319a5e85f367098b0e6e3265fb8ea85"><td class="mdescLeft">&#160;</td><td class="mdescRight">query required instance extensions for vkvg.  <a href="group__device_ga9319a5e85f367098b0e6e3265fb8ea85.html#ga9319a5e85f367098b0e6e3265fb8ea85">More...</a><br /></td></tr>
<tr class="separator:ga9319a5e85f367098b0e6e3265fb8ea85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87246f77fd32889d9eae62c9444ae456"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_ga87246f77fd32889d9eae62c9444ae456.html#ga87246f77fd32889d9eae62c9444ae456">vkvg_get_required_device_extensions</a> (VkPhysicalDevice phy, const char **pExtensions, uint32_t *pExtCount)</td></tr>
<tr class="memdesc:ga87246f77fd32889d9eae62c9444ae456"><td class="mdescLeft">&#160;</td><td class="mdescRight">query required device extensions for vkvg.  <a href="group__device_ga87246f77fd32889d9eae62c9444ae456.html#ga87246f77fd32889d9eae62c9444ae456">More...</a><br /></td></tr>
<tr class="separator:ga87246f77fd32889d9eae62c9444ae456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9676acb47c4f4f8d83ef198280a805e"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__device_gad9676acb47c4f4f8d83ef198280a805e.html#gad9676acb47c4f4f8d83ef198280a805e">vkvg_get_device_requirements</a> (VkPhysicalDeviceFeatures *pEnabledFeatures)</td></tr>
<tr class="memdesc:gad9676acb47c4f4f8d83ef198280a805e"><td class="mdescLeft">&#160;</td><td class="mdescRight">get vulkan device creation requirement to fit vkvg needs.  <a href="group__device_gad9676acb47c4f4f8d83ef198280a805e.html#gad9676acb47c4f4f8d83ef198280a805e">More...</a><br /></td></tr>
<tr class="separator:gad9676acb47c4f4f8d83ef198280a805e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<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>