aboutsummaryrefslogtreecommitdiff
path: root/doc/html/isdk_8h.html
blob: eea470843fb60c5e3da6760fa1821dfc14966f16 (plain) (blame)
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
<!-- 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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NVIDIAGeForceExperienceSDK: C:/dev/gxp/sdk/sdkclient/include/gfesdk/isdk.h File Reference</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);
</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>
<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.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></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_8h.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="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">isdk.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;gfesdk/os_defines.h&gt;</code><br />
<code>#include &lt;<a class="el" href="sdk__types_8h_source.html">gfesdk/sdk_types.h</a>&gt;</code><br />
<code>#include &lt;gfesdk/sdk_types_ipc.h&gt;</code><br />
<code>#include &lt;gfesdk/config.h&gt;</code><br />
<code>#include &quot;stdint.h&quot;</code><br />
</div>
<p><a href="isdk_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a95b3999b5808922e29a36375c22014b8"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a> (NVGSDK_HANDLE **handle, <a class="el" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> const *inParams, <a class="el" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> *outParams)</td></tr>
<tr class="separator:a95b3999b5808922e29a36375c22014b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab63d1f433313209b1febbf5736b61463"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#ab63d1f433313209b1febbf5736b61463">NVGSDK_Release</a> (NVGSDK_HANDLE *handle)</td></tr>
<tr class="separator:ab63d1f433313209b1febbf5736b61463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5beaa7808f8dfc4660f5a0d4f8bccb3"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#af5beaa7808f8dfc4660f5a0d4f8bccb3">NVGSDK_Poll</a> (NVGSDK_HANDLE *handle)</td></tr>
<tr class="separator:af5beaa7808f8dfc4660f5a0d4f8bccb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823df4f563527040a016bab8298869c5"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#a823df4f563527040a016bab8298869c5">NVGSDK_SetLogLevel</a> (<a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a> fileLevel)</td></tr>
<tr class="separator:a823df4f563527040a016bab8298869c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc7b2b775f0ffaf80b2b5a988c4d6d11"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#afc7b2b775f0ffaf80b2b5a988c4d6d11">NVGSDK_AttachLogListener</a> (<a class="el" href="sdk__types_8h.html#afdec7c9f24e19fb84c5faf34d77e9312">NVGSDK_LoggingCallback</a> callback)</td></tr>
<tr class="separator:afc7b2b775f0ffaf80b2b5a988c4d6d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a742af01ab93d41b3aa9579df90c6c00f"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#a742af01ab93d41b3aa9579df90c6c00f">NVGSDK_SetListenerLogLevel</a> (<a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a> level)</td></tr>
<tr class="separator:a742af01ab93d41b3aa9579df90c6c00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e4b6afcafe9ac91c00a95b7d72305e5"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT void NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a> (NVGSDK_HANDLE *handle, <a class="el" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> const *params, <a class="el" href="sdk__types_8h.html#a1c5cd84ed88c70462c360a7268eb95ac">NVGSDK_EmptyCallback</a> callback, void *context)</td></tr>
<tr class="separator:a3e4b6afcafe9ac91c00a95b7d72305e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30ed8fc1b0066f8eae9078ab65b136de"><td class="memItemLeft" align="right" valign="top">NVGSDK_EXPORT void NVGSDKApi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isdk_8h.html#a30ed8fc1b0066f8eae9078ab65b136de">NVGSDK_GetUILanguageAsync</a> (NVGSDK_HANDLE *handle, <a class="el" href="sdk__types_8h.html#a25a1eb6d5c4697e50ebdebb500d0500e">NVGSDK_GetUILanguageCallback</a> callback, void *context)</td></tr>
<tr class="separator:a30ed8fc1b0066f8eae9078ab65b136de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C GFE SDK API </p>

<p>Definition in file <a class="el" href="isdk_8h_source.html">isdk.h</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a95b3999b5808922e29a36375c22014b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95b3999b5808922e29a36375c22014b8">&sect;&nbsp;</a></span>NVGSDK_Create()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Create </td>
          <td>(</td>
          <td class="paramtype">NVGSDK_HANDLE **&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> const *&#160;</td>
          <td class="paramname"><em>inParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> *&#160;</td>
          <td class="paramname"><em>outParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allocates and initializes the SDK interface. This is a synchronous call and may take tens of milliseconds.</p>
<p>Importantly, the app must pass a list of required scopes to this call. This is analagous to an oauth2 type of flow. GfeSDK will choose to allocate certain resources based on this list. For example, passing NVGSDK_SCOPE_HIGHLIGHTS to this list will enable all of the calls starting with NVGSDK_Highlights_*. For more information on permissions, see <a class="el" href="index.html#section_permissions">Permissions</a>.</p>
<p>The next decision for the app is whether to accept asynchronous callbacks on a GfeSDK-controller thread, or to poll for callbacks on a game-controlled thread, usually the main game loop. See <a class="el" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">NVGSDK_CreateInputParams::pollForCallbacks</a> and <a class="el" href="index.html#section_threading">Threading</a>. When bringing the SDK up for the first time, it may be best to start with pollForCallbacks = false, until up and running, and then move to the more advanced polling model that gives control to the proper thread.</p>
<p>Finally, the app can pass in a callback to recieve notifications, and an opaque pointer that will be passed untouched to be received by the callback. See <a class="el" href="index.html#section_notifications">Notifications</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle[out]</td><td>- Will be populated by the created SDK on success </td></tr>
    <tr><td class="paramname">inParams[in]</td><td>- Input parameters for SDK creation </td></tr>
    <tr><td class="paramname">outParams[out]</td><td>- Output params for SDK creation, will be populated on return. On fatal error, this will be NULL</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">NVGSDK_SUCCESS</td><td>- SDK was successfully created and returned </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_OUT_OF_MEMORY</td><td>- Could not allocate system resources for handle </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_INVALID_PARAMETER</td><td>- Invalid handle pointer provided, or no app name provided </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_LOAD_LIBRARY</td><td>- SDK wasn't able to load dependencies. Perhaps GFE is not installed. </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_CONNECTION</td><td>- SDK is not able to contact GFE backend service </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_UNHANDLED_EXCEPTION</td><td>- SDK ran into an unhandled error and caught an exception before it returned to client code </td></tr>
    <tr><td class="paramname">NVGSDK_IPC_SUCCESS_OLD_SDK</td><td>- SDK will work properly, but the GfeSDK DLL version is old. See <a class="el" href="index.html#section_version">Versioning</a> </td></tr>
    <tr><td class="paramname">NVGSDK_IPC_SUCCESS_OLD_GFE</td><td>- SDK should work properly, but the backend GFE version is older, and may not provide the latest features. See <a class="el" href="index.html#section_version">Versioning</a> </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_GFE_VERSION</td><td>- GFE version is too old for communication. User must upgrade GFE. See <a class="el" href="index.html#section_version">Versioning</a> </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_SDK_VERSION</td><td>- GfeSDK DLL version is too old. Game must distribute a newer version. See <a class="el" href="index.html#section_version">Versioning</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab63d1f433313209b1febbf5736b61463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab63d1f433313209b1febbf5736b61463">&sect;&nbsp;</a></span>NVGSDK_Release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Release </td>
          <td>(</td>
          <td class="paramtype">NVGSDK_HANDLE *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Release the main SDK interface after create.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pHandle[in]</td><td>- SDK Handle to release</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">NVGSDK_SUCCESS</td><td>- SDK was successfully released </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_INVALID_PARAMETER</td><td>- Invalid handle provided </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_UNHANDLED_EXCEPTION</td><td>- SDK ran into an unhandled error and caught an exception before it returned to client code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af5beaa7808f8dfc4660f5a0d4f8bccb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5beaa7808f8dfc4660f5a0d4f8bccb3">&sect;&nbsp;</a></span>NVGSDK_Poll()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_Poll </td>
          <td>(</td>
          <td class="paramtype">NVGSDK_HANDLE *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>When <a class="el" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">NVGSDK_CreateInputParams::pollForCallbacks</a> is set to true, it becomes the app's responsibility to make calls to this function to recieve asynchronous callbacks. See <a class="el" href="index.html#section_async">Asynchronous Calls</a> for more information.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle[in]</td><td>- Valid SDK handle returned by NVGSDK_Create </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a823df4f563527040a016bab8298869c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a823df4f563527040a016bab8298869c5">&sect;&nbsp;</a></span>NVGSDK_SetLogLevel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_SetLogLevel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a>&#160;</td>
          <td class="paramname"><em>fileLevel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adjusts the logging level of GfeSDK. Log level documentation is found at <a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a>. See <a class="el" href="index.html#section_log">Logging</a> for more information.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileLvl[in]</td><td>- Logs at or above this priority will be written to logfile </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afc7b2b775f0ffaf80b2b5a988c4d6d11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc7b2b775f0ffaf80b2b5a988c4d6d11">&sect;&nbsp;</a></span>NVGSDK_AttachLogListener()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_AttachLogListener </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="sdk__types_8h.html#afdec7c9f24e19fb84c5faf34d77e9312">NVGSDK_LoggingCallback</a>&#160;</td>
          <td class="paramname"><em>callback</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Pass in a callback function in order to receive the log messages that GfeSDK is recording. The primary usecase for this is to get the GfeSDK logs into the logfile of a game engine. See <a class="el" href="index.html#section_log">Logging</a> for more information.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>- Will be called back with log priority and message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a742af01ab93d41b3aa9579df90c6c00f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a742af01ab93d41b3aa9579df90c6c00f">&sect;&nbsp;</a></span>NVGSDK_SetListenerLogLevel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT NVGSDK_RetCode NVGSDKApi NVGSDK_SetListenerLogLevel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adjusts the listener logging level of GfeSDK. This affects calls to the callback given to <a class="el" href="isdk_8h.html#afc7b2b775f0ffaf80b2b5a988c4d6d11">NVGSDK_AttachLogListener</a>. See <a class="el" href="index.html#section_log">Logging</a> for more information.</p>
<p>See <a class="el" href="sdk__types_8h.html#a8ad6f8cbc3c4ba6587912a4a4638d857">NVGSDK_LogLevel</a> for a list of possible levels.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level[in]</td><td>- Logs at or above this priority will be sent to callback </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3e4b6afcafe9ac91c00a95b7d72305e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e4b6afcafe9ac91c00a95b7d72305e5">&sect;&nbsp;</a></span>NVGSDK_RequestPermissionsAsync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT void NVGSDKApi NVGSDK_RequestPermissionsAsync </td>
          <td>(</td>
          <td class="paramtype">NVGSDK_HANDLE *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> const *&#160;</td>
          <td class="paramname"><em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="sdk__types_8h.html#a1c5cd84ed88c70462c360a7268eb95ac">NVGSDK_EmptyCallback</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Asks the user for permissions needed by the app. This will open up the <a class="el" href="index.html#section_igo">In Game Overlay</a>.</p>
<p>If the user has already decided to grant or deny permissions for these scopes, no overlay will be displayed, and the corresponding return value will be passed into the callback.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback[in]</td><td>- Callback return function as described by <a class="el" href="index.html#section_async">Asynchronous Calls</a> </td></tr>
    <tr><td class="paramname">context[in]</td><td>- Opaque context pointer as described by <a class="el" href="index.html#section_async">Asynchronous Calls</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a30ed8fc1b0066f8eae9078ab65b136de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30ed8fc1b0066f8eae9078ab65b136de">&sect;&nbsp;</a></span>NVGSDK_GetUILanguageAsync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NVGSDK_EXPORT void NVGSDKApi NVGSDK_GetUILanguageAsync </td>
          <td>(</td>
          <td class="paramtype">NVGSDK_HANDLE *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="sdk__types_8h.html#a25a1eb6d5c4697e50ebdebb500d0500e">NVGSDK_GetUILanguageCallback</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the language set by the user for the onscreen UI</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle[in]</td><td>- Valid SDK handle returned by NVGSDK_Create </td></tr>
    <tr><td class="paramname">language[out]</td><td>- Will be populated on NVGSDK_SUCCESS</td></tr>
    <tr><td class="paramname">callback[in]</td><td>- Callback return function as described by <a class="el" href="index.html#section_async">Asynchronous Calls</a> </td></tr>
    <tr><td class="paramname">context[in]</td><td>- Opaque context pointer as described by <a class="el" href="index.html#section_async">Asynchronous Calls</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">NVGSDK_SUCCESS</td><td>- Call was successful, and lang was populated with the result </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_INVALID_PARAMETER</td><td>- Invalid handle provided </td></tr>
    <tr><td class="paramname">NVGSDK_ERR_UNHANDLED_EXCEPTION</td><td>- SDK ran into an unhandled error and caught an exception before it returned to client code </td></tr>
    <tr><td class="paramname">NVGSDK_IPC_ERR_NOT_SET</td><td>- The user has not chosen a language and is using the default </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</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="isdk_8h.html">isdk.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    doxygen</a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>