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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
<!-- HTML header for doxygen 1.8.12-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.8.11"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/isdk_cpp_impl.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</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">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">NVIDIAGeForceExperienceSDK
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('isdk__cpp__impl_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">isdk_cpp_impl.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="isdk__cpp__impl_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">/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">* and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">* distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">* license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">*/</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef GFESDK_ISDK_CPP_IMPL_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define GFESDK_ISDK_CPP_IMPL_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="isdk__cpp_8h.html">isdk_cpp.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_core_impl.html"> 25</a></span> <span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a> : <span class="keyword">public</span> <a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  ~<a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">virtual</span> NVGSDK_RetCode <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a3a57a88bbb7da1b8d99e1ad326205ab0">Poll</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a09f4348a8362beccae2a237f92ead971">RequestPermissionsAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_request_permissions_params.html">RequestPermissionsParams</a> <span class="keyword">const</span>&, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a95587bb5dc50b0f8b11d7fd75a8ecea3">GetUILanguageAsync</a>(TGetUILanguageCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  NVGSDK_HANDLE* GetHandle();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">friend</span> <span class="keyword">class </span>OpsImpl;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Remove default construct, copy and assignment operators</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>() {}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>(<span class="keyword">const</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>& other) {}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>& operator=(<span class="keyword">const</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>& other) {}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">struct </span>CallbackContext</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  T callback;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">void</span>* appContext;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  };</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">struct </span>CallbackNotificationContext</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  TNotificationCallback callback;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span>* appContext;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> __stdcall callbackWrapper(NVGSDK_RetCode rc, <span class="keywordtype">void</span>* appContext);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> __stdcall callbackNotificationWrapper(<a class="code" href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59">NVGSDK_NotificationType</a> type, <a class="code" href="struct_n_v_g_s_d_k___notification.html">NVGSDK_Notification</a> <span class="keyword">const</span>* data, <span class="keywordtype">void</span>* context);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> translateLocaleTable(std::map<std::string, std::string> <span class="keyword">const</span>& localeMap, std::vector<NVGSDK_LocalizedPair>& pairs);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  NVGSDK_HANDLE* m_handle;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  std::unique_ptr<CallbackNotificationContext> m_notificationCallbackContext;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d"> 65</a></span> <span class="keyword">inline</span> <a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a>* <a class="code" href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d">Core::Create</a>(<a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html">CreateInputParams</a> <span class="keyword">const</span>& inParams, <a class="code" href="struct_gfe_s_d_k_1_1_create_response.html">CreateResponse</a>& outParams)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>* core = <span class="keyword">new</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html">CoreImpl</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> cInputParams;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  memset(&cInputParams, 0, <span class="keyword">sizeof</span>(cInputParams));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">appName</a> = inParams.appName.c_str();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">pollForCallbacks</a> = inParams.pollForCallbacks;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (!inParams.requiredScopes.empty())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">scopeTable</a> = <span class="keyword">const_cast<</span>NVGSDK_Scope*<span class="keyword">></span>(&inParams.requiredScopes[0]);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">scopeTableSize</a> = inParams.requiredScopes.size();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (inParams.notificationCallback)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">notificationCallback</a> = &CoreImpl::callbackNotificationWrapper;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  core->m_notificationCallbackContext.reset(<span class="keyword">new</span> CoreImpl::CallbackNotificationContext({ inParams.notificationCallback, inParams.notificationCallbackContext }));</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ad30b1588618ec4bfbc1e9fa13c22b9a7">notificationCallbackContext</a> = core->m_notificationCallbackContext.get();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a94b71825369290d98e08058b3c0ba537">targetPid</a> = inParams.<a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html#acbfe50b94ef46d11155d786af7aaae5b">targetPid</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (!inParams.<a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html#ab4d909fa827bbc7631af877c97fc0cc3">targetPath</a>.empty())</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  cInputParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adee7d43aa6948b623aa4fe84f8e8bf97">targetPath</a> = inParams.<a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html#ab4d909fa827bbc7631af877c97fc0cc3">targetPath</a>.c_str();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> cOutputParams = { 0 };</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::vector<NVGSDK_ScopePermission> cScopePermissionList;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  cScopePermissionList.resize(inParams.requiredScopes.size());</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">if</span> (!inParams.requiredScopes.empty())</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &cScopePermissionList[0];</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a> = cScopePermissionList.size();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  outParams.returnCode = <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(&core->m_handle, &cInputParams, &cOutputParams);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  outParams.versionMajor = cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  outParams.versionMinor = cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  outParams.nvidiaGfeVersion = cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>;</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="keywordflow">if</span> (NVGSDK_FAILED(outParams.returnCode))</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">delete</span> core;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a>; ++i)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a> <span class="keyword">const</span>& scopePermission = cOutputParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i];</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  outParams.scopePermissions[scopePermission.scope] = scopePermission.permission;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> core;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">inline</span> CoreImpl::~CoreImpl()</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> (!m_handle)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="isdk_8h.html#ab63d1f433313209b1febbf5736b61463">NVGSDK_Release</a>(m_handle);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_core_impl.html#a3a57a88bbb7da1b8d99e1ad326205ab0"> 133</a></span> <span class="keyword">inline</span> NVGSDK_RetCode <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a3a57a88bbb7da1b8d99e1ad326205ab0">CoreImpl::Poll</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="isdk_8h.html#af5beaa7808f8dfc4660f5a0d4f8bccb3">NVGSDK_Poll</a>(m_handle);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_core_impl.html#a09f4348a8362beccae2a237f92ead971"> 138</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a09f4348a8362beccae2a237f92ead971">CoreImpl::RequestPermissionsAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_request_permissions_params.html">RequestPermissionsParams</a> <span class="keyword">const</span>& params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> cParams;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  cParams.scopeTable = <span class="keyword">const_cast<</span>NVGSDK_Scope*<span class="keyword">></span>(&params.scopes[0]);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  cParams.scopeTableSize = params.scopes.size();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(m_handle, &cParams, callbackWrapper, <span class="keyword">new</span> CallbackContext<TCallback>({ callback, context }));</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_core_impl.html#a95587bb5dc50b0f8b11d7fd75a8ecea3"> 146</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_core_impl.html#a95587bb5dc50b0f8b11d7fd75a8ecea3">CoreImpl::GetUILanguageAsync</a>(TGetUILanguageCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="isdk_8h.html#a30ed8fc1b0066f8eae9078ab65b136de">NVGSDK_GetUILanguageAsync</a>(m_handle, [](NVGSDK_RetCode rc, <a class="code" href="struct_n_v_g_s_d_k___language.html">NVGSDK_Language</a> <span class="keyword">const</span>* data, <span class="keywordtype">void</span>* context) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  std::unique_ptr<CallbackContext<TGetUILanguageCallback>> callbackContext(<span class="keyword">reinterpret_cast<</span>CallbackContext<TGetUILanguageCallback>*<span class="keyword">></span>(context));</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (!callbackContext->callback) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (NVGSDK_FAILED(rc))</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> callbackContext->callback(rc, <span class="keyword">nullptr</span>, callbackContext->appContext);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="struct_gfe_s_d_k_1_1_get_u_i_language_response.html">GetUILanguageResponse</a> language;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  language.cultureCode = data-><a class="code" href="struct_n_v_g_s_d_k___language.html#a61f6b2d2a3d08a27b37919e32b13ed75">cultureCode</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  callbackContext->callback(rc, &language, callbackContext->appContext);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }, <span class="keyword">new</span> CallbackContext<TGetUILanguageCallback>({ callback, context }));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">inline</span> NVGSDK_HANDLE* CoreImpl::GetHandle()</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> m_handle;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> CoreImpl::callbackWrapper(NVGSDK_RetCode rc, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  std::unique_ptr<CallbackContext<TCallback>> callbackContext(<span class="keyword">reinterpret_cast<</span>CallbackContext<TCallback>*<span class="keyword">></span>(context));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (!callbackContext->callback) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  callbackContext->callback(rc, callbackContext->appContext);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> CoreImpl::callbackNotificationWrapper(<a class="code" href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59">NVGSDK_NotificationType</a> type, <a class="code" href="struct_n_v_g_s_d_k___notification.html">NVGSDK_Notification</a> <span class="keyword">const</span>* data, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  CallbackNotificationContext* callbackContext(reinterpret_cast<CallbackNotificationContext*>(context));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (!callbackContext->callback) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">case</span> <a class="code" href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59ab4d95c5d0180de2ae500c1b33bd0c115">NVGSDK_NOTIFICATION_PERMISSIONS_CHANGED</a>:</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="struct_gfe_s_d_k_1_1_permissions_changed_notification.html">PermissionsChangedNotification</a> notification;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  notification.context = callbackContext->appContext;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < data->permissionsChanged.scopePermissionTableSize; ++i)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  notification.scopePermissions[data->permissionsChanged.scopePermissionTable[i].scope] = data->permissionsChanged.scopePermissionTable[i].permission;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  callbackContext->callback(type, notification);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">case</span> <a class="code" href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59aa833a35cd4938b11579b3f22c1e346d7">NVGSDK_NOTIFICATION_OVERLAY_STATE_CHANGED</a>:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="struct_gfe_s_d_k_1_1_overlay_state_changed_notification.html">OverlayStateChangedNotification</a> notification;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  notification.context = callbackContext->appContext;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  notification.open = data->overlayStateChanged.<a class="code" href="struct_n_v_g_s_d_k___overlay_state_changed_notification.html#ad9684c86b575f710bcc784942e6bf256">open</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  notification.state = data->overlayStateChanged.<a class="code" href="struct_n_v_g_s_d_k___overlay_state_changed_notification.html#af1c76ba9ecc3a9d83147dc4dc8d64ddc">state</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  callbackContext->callback(type, notification);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> CoreImpl::translateLocaleTable(std::map<std::string, std::string> <span class="keyword">const</span>& localeMap, std::vector<NVGSDK_LocalizedPair>& pairs)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = localeMap.begin(); it != localeMap.end(); ++it)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  pairs.push_back({</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  it->first.c_str(),</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  it->second.c_str()</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  });</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#endif //GFESDK_ISDK_CPP_H</span></div><div class="ttc" id="struct_n_v_g_s_d_k___scope_permission_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00068">sdk_types.h:68</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html_a9bc3e75a15cf9fcbc1084f2a7fde5a8f"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">NVGSDK_CreateResponse::scopePermissionTable</a></div><div class="ttdeci">NVGSDK_ScopePermission * scopePermissionTable</div><div class="ttdoc">Must be provided to call. Will be filled with scope/permission pairs. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00134">sdk_types.h:134</a></div></div>
<div class="ttc" id="isdk_8h_html_af5beaa7808f8dfc4660f5a0d4f8bccb3"><div class="ttname"><a href="isdk_8h.html#af5beaa7808f8dfc4660f5a0d4f8bccb3">NVGSDK_Poll</a></div><div class="ttdeci">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Poll(NVGSDK_HANDLE *handle)</div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___language_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___language.html">NVGSDK_Language</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00141">sdk_types.h:141</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_get_u_i_language_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_u_i_language_response.html">GfeSDK::GetUILanguageResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_GetUILanguageResponse. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00071">sdk_types_cpp.h:71</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html_aacdf644f5f6eb996dad6bb90b4145deb"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">NVGSDK_CreateResponse::gfeVersionStr</a></div><div class="ttdeci">char gfeVersionStr[NVGSDK_MAX_LENGTH]</div><div class="ttdoc">Must be provided to call. Will be populated by GFE version string. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00133">sdk_types.h:133</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___overlay_state_changed_notification_html_af1c76ba9ecc3a9d83147dc4dc8d64ddc"><div class="ttname"><a href="struct_n_v_g_s_d_k___overlay_state_changed_notification.html#af1c76ba9ecc3a9d83147dc4dc8d64ddc">NVGSDK_OverlayStateChangedNotification::state</a></div><div class="ttdeci">NVGSDK_OverlayState state</div><div class="ttdoc">State the overlay is closing from or opening to. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00087">sdk_types.h:87</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_create_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_create_response.html">GfeSDK::CreateResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_CreateResponse. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00061">sdk_types_cpp.h:61</a></div></div>
<div class="ttc" id="sdk__types_8h_html_a41214fdc112a95d5fe8e760b0c562c59ab4d95c5d0180de2ae500c1b33bd0c115"><div class="ttname"><a href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59ab4d95c5d0180de2ae500c1b33bd0c115">NVGSDK_NOTIFICATION_PERMISSIONS_CHANGED</a></div><div class="ttdoc">Sent when the user accepts/denies the permissions dialog, or toggles in GFE3. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00052">sdk_types.h:52</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_ac754df94f208f494a0a339d614bb18f3"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">NVGSDK_CreateInputParams::appName</a></div><div class="ttdeci">char const * appName</div><div class="ttdoc">Provide the name of the application. Will be used in cases when NVIDIA cannot detect game...</div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00105">sdk_types.h:105</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_ae0ada093d3d60a2f70226932b1a5b6fb"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">NVGSDK_CreateInputParams::scopeTable</a></div><div class="ttdeci">NVGSDK_Scope * scopeTable</div><div class="ttdoc">List of scopes used by the application. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00106">sdk_types.h:106</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_impl_html"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core_impl.html">GfeSDK::CoreImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp__impl_8h_source.html#l00025">isdk_cpp_impl.h:25</a></div></div>
<div class="ttc" id="sdk__types_8h_html_a41214fdc112a95d5fe8e760b0c562c59"><div class="ttname"><a href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59">NVGSDK_NotificationType</a></div><div class="ttdeci">NVGSDK_NotificationType</div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00050">sdk_types.h:50</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_request_permissions_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_request_permissions_params.html">GfeSDK::RequestPermissionsParams</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00052">sdk_types_cpp.h:52</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_create_input_params_html_acbfe50b94ef46d11155d786af7aaae5b"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_create_input_params.html#acbfe50b94ef46d11155d786af7aaae5b">GfeSDK::CreateInputParams::targetPid</a></div><div class="ttdeci">uint32_t targetPid</div><div class="ttdoc">Advanced usage. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00046">sdk_types_cpp.h:46</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_permissions_changed_notification_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_permissions_changed_notification.html">GfeSDK::PermissionsChangedNotification</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00083">sdk_types_cpp.h:83</a></div></div>
<div class="ttc" id="isdk_8h_html_a3e4b6afcafe9ac91c00a95b7d72305e5"><div class="ttname"><a href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_RequestPermissionsAsync(NVGSDK_HANDLE *handle, NVGSDK_RequestPermissionsParams const *params, NVGSDK_EmptyCallback callback, void *context)</div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_a8941e0c803ec2f821101cfc55a7f60a3"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">NVGSDK_CreateInputParams::scopeTableSize</a></div><div class="ttdeci">size_t scopeTableSize</div><div class="ttdoc">Number of entries in the scope table. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00107">sdk_types.h:107</a></div></div>
<div class="ttc" id="isdk__cpp_8h_html"><div class="ttname"><a href="isdk__cpp_8h.html">isdk_cpp.h</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_create_input_params_html_ab4d909fa827bbc7631af877c97fc0cc3"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_create_input_params.html#ab4d909fa827bbc7631af877c97fc0cc3">GfeSDK::CreateInputParams::targetPath</a></div><div class="ttdeci">std::string targetPath</div><div class="ttdoc">Advanced usage. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00047">sdk_types_cpp.h:47</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_ad30b1588618ec4bfbc1e9fa13c22b9a7"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#ad30b1588618ec4bfbc1e9fa13c22b9a7">NVGSDK_CreateInputParams::notificationCallbackContext</a></div><div class="ttdeci">void * notificationCallbackContext</div><div class="ttdoc">Passed along unchanged with each notification. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00111">sdk_types.h:111</a></div></div>
<div class="ttc" id="isdk_8h_html_ab63d1f433313209b1febbf5736b61463"><div class="ttname"><a href="isdk_8h.html#ab63d1f433313209b1febbf5736b61463">NVGSDK_Release</a></div><div class="ttdeci">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Release(NVGSDK_HANDLE *handle)</div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_overlay_state_changed_notification_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_overlay_state_changed_notification.html">GfeSDK::OverlayStateChangedNotification</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00088">sdk_types_cpp.h:88</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_a0bd7568c1cb3fad975562055b4581195"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">NVGSDK_CreateInputParams::pollForCallbacks</a></div><div class="ttdeci">bool pollForCallbacks</div><div class="ttdoc">Set to true to poll for asynchronous callbacks on an app thread. If false, callbacks will occur on a ...</div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00108">sdk_types.h:108</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___language_html_a61f6b2d2a3d08a27b37919e32b13ed75"><div class="ttname"><a href="struct_n_v_g_s_d_k___language.html#a61f6b2d2a3d08a27b37919e32b13ed75">NVGSDK_Language::cultureCode</a></div><div class="ttdeci">char const * cultureCode</div><div class="ttdoc">Will be populated by the user&#39;s GFE language selection. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00143">sdk_types.h:143</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_create_input_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_create_input_params.html">GfeSDK::CreateInputParams</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types__cpp_8h_source.html#l00038">sdk_types_cpp.h:38</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html_ad1687ba8b8d53a75b13a60874f3822be"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">NVGSDK_CreateResponse::versionMinor</a></div><div class="ttdeci">uint16_t versionMinor</div><div class="ttdoc">Will be populated with SDK minor version. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00132">sdk_types.h:132</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_impl_html_a09f4348a8362beccae2a237f92ead971"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core_impl.html#a09f4348a8362beccae2a237f92ead971">GfeSDK::CoreImpl::RequestPermissionsAsync</a></div><div class="ttdeci">virtual void RequestPermissionsAsync(RequestPermissionsParams const &, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp__impl_8h_source.html#l00138">isdk_cpp_impl.h:138</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_impl_html_a95587bb5dc50b0f8b11d7fd75a8ecea3"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core_impl.html#a95587bb5dc50b0f8b11d7fd75a8ecea3">GfeSDK::CoreImpl::GetUILanguageAsync</a></div><div class="ttdeci">virtual void GetUILanguageAsync(TGetUILanguageCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp__impl_8h_source.html#l00146">isdk_cpp_impl.h:146</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___request_permissions_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00120">sdk_types.h:120</a></div></div>
<div class="ttc" id="isdk_8h_html_a30ed8fc1b0066f8eae9078ab65b136de"><div class="ttname"><a href="isdk_8h.html#a30ed8fc1b0066f8eae9078ab65b136de">NVGSDK_GetUILanguageAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_GetUILanguageAsync(NVGSDK_HANDLE *handle, NVGSDK_GetUILanguageCallback callback, void *context)</div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html">GfeSDK::HighlightsImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00026">ihighlights_cpp_impl.h:26</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_impl_html_a3a57a88bbb7da1b8d99e1ad326205ab0"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core_impl.html#a3a57a88bbb7da1b8d99e1ad326205ab0">GfeSDK::CoreImpl::Poll</a></div><div class="ttdeci">virtual NVGSDK_RetCode Poll(void)</div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp__impl_8h_source.html#l00133">isdk_cpp_impl.h:133</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00129">sdk_types.h:129</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_html"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core.html">GfeSDK::Core</a></div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp_8h_source.html#l00037">isdk_cpp.h:37</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_a94b71825369290d98e08058b3c0ba537"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#a94b71825369290d98e08058b3c0ba537">NVGSDK_CreateInputParams::targetPid</a></div><div class="ttdeci">uint32_t targetPid</div><div class="ttdoc">Used for linking to game-related process&#39;s PID that also supports NVIDIA Highlights. Leave empty when not used. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00113">sdk_types.h:113</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00103">sdk_types.h:103</a></div></div>
<div class="ttc" id="namespace_gfe_s_d_k_html"><div class="ttname"><a href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00016">highlights_types_cpp.h:16</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_adee7d43aa6948b623aa4fe84f8e8bf97"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#adee7d43aa6948b623aa4fe84f8e8bf97">NVGSDK_CreateInputParams::targetPath</a></div><div class="ttdeci">char const * targetPath</div><div class="ttdoc">Used for linking to game-related process&#39;s path that also supports NVIDIA Highlights. Must be defined if targetPid is defined. Leave empty when not used. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00115">sdk_types.h:115</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_html_a0cb93acb8b273072cd37348c9b206e0d"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d">GfeSDK::Core::Create</a></div><div class="ttdeci">static Core * Create(CreateInputParams const &, CreateResponse &)</div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp__impl_8h_source.html#l00065">isdk_cpp_impl.h:65</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___notification_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___notification.html">NVGSDK_Notification</a></div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00091">sdk_types.h:91</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___overlay_state_changed_notification_html_ad9684c86b575f710bcc784942e6bf256"><div class="ttname"><a href="struct_n_v_g_s_d_k___overlay_state_changed_notification.html#ad9684c86b575f710bcc784942e6bf256">NVGSDK_OverlayStateChangedNotification::open</a></div><div class="ttdeci">bool open</div><div class="ttdoc">true if the overlay is opening, false if it is closing </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00086">sdk_types.h:86</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html_aa595214daf18bdbc638ef98e1f22a30f"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">NVGSDK_CreateResponse::versionMajor</a></div><div class="ttdeci">uint16_t versionMajor</div><div class="ttdoc">Will be populated with SDK major version. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00131">sdk_types.h:131</a></div></div>
<div class="ttc" id="sdk__types_8h_html_a41214fdc112a95d5fe8e760b0c562c59aa833a35cd4938b11579b3f22c1e346d7"><div class="ttname"><a href="sdk__types_8h.html#a41214fdc112a95d5fe8e760b0c562c59aa833a35cd4938b11579b3f22c1e346d7">NVGSDK_NOTIFICATION_OVERLAY_STATE_CHANGED</a></div><div class="ttdoc">Sent when the in-game overlay is shown or removed. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00053">sdk_types.h:53</a></div></div>
<div class="ttc" id="isdk_8h_html_a95b3999b5808922e29a36375c22014b8"><div class="ttname"><a href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a></div><div class="ttdeci">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Create(NVGSDK_HANDLE **handle, NVGSDK_CreateInputParams const *inParams, NVGSDK_CreateResponse *outParams)</div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_input_params_html_adde61c0a8ea3a728c57081ec97081a72"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">NVGSDK_CreateInputParams::notificationCallback</a></div><div class="ttdeci">NVGSDK_NotificationCallback notificationCallback</div><div class="ttdoc">Called on unsolicited notifications. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00110">sdk_types.h:110</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___create_response_html_a60aec9d469d10e8fe0efd7c010fb96e7"><div class="ttname"><a href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">NVGSDK_CreateResponse::scopePermissionTableSize</a></div><div class="ttdeci">size_t scopePermissionTableSize</div><div class="ttdoc">Must be provided to call. </div><div class="ttdef"><b>Definition:</b> <a href="sdk__types_8h_source.html#l00135">sdk_types.h:135</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_4522e853adfb3285c34ceee6be627ffe.html">sdkclient</a></li><li class="navelem"><a class="el" href="dir_37f49c9d6a230916a5077fbd270eac2a.html">include</a></li><li class="navelem"><a class="el" href="dir_eb56eea0ff74c30c2a48b22915222057.html">gfesdk</a></li><li class="navelem"><a class="el" href="dir_f78f74a3131a0cfd456c5ed856861cff.html">bindings</a></li><li class="navelem"><a class="el" href="dir_ab8ba62fc8fdaf78364406bae0a66d43.html">cpp</a></li><li class="navelem"><a class="el" href="isdk__cpp__impl_8h.html">isdk_cpp_impl.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
doxygen</a> 1.8.11 </li>
</ul>
</div>
</body>
</html>
|