aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDave Clark <[email protected]>2018-03-08 15:12:56 -0500
committerDave Clark <[email protected]>2018-03-08 15:12:56 -0500
commit1f9ad132c6d6288d9a842120c05a1a4431800e1c (patch)
tree6b9e178c558d1055b1cc4d0d6ab989ee3fc76448 /doc
parentUpdate CHANGELOG.md (diff)
downloadgfesdk-1f9ad132c6d6288d9a842120c05a1a4431800e1c.tar.xz
gfesdk-1f9ad132c6d6288d9a842120c05a1a4431800e1c.zip
Push GfeSDK 1.1.191
Plus documentation updates
Diffstat (limited to 'doc')
-rw-r--r--doc/NVIDIA_GfeSDK_Developer_FAQ.md65
-rw-r--r--doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html2
-rw-r--r--doc/html/config_8h_source.html2
-rw-r--r--doc/html/gfe3__product__version_8h_source.html2
-rw-r--r--doc/html/index.html6
-rw-r--r--doc/html/md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html173
-rw-r--r--doc/html/navtreedata.js2
-rw-r--r--doc/html/navtreeindex0.js2
-rw-r--r--doc/html/pages.html2
-rw-r--r--doc/html/search/all_1.js2
-rw-r--r--doc/html/search/pages_0.js2
11 files changed, 249 insertions, 11 deletions
diff --git a/doc/NVIDIA_GfeSDK_Developer_FAQ.md b/doc/NVIDIA_GfeSDK_Developer_FAQ.md
new file mode 100644
index 0000000..2b234ff
--- /dev/null
+++ b/doc/NVIDIA_GfeSDK_Developer_FAQ.md
@@ -0,0 +1,65 @@
+# Technical/Integration Questions
+## Testing Error Codes
+* Be warned that there are non-zero success codes in the SPH SDK. Recommend developers to use the macro below (defined already in sdk_types_ipc.h)
+
+```c++
+inline bool NVGSDK_SUCCEEDED(NVGSDK_RetCode r) {return r >= 0;}
+```
+
+## Where is the debug logging for Highlights?
+* **`C:\Users\<USER>\AppData\Local\NVIDIA Corporation\GfeSDK`**
+
+## Where is the Highlights Enabled user permissions file located?
+* **`C:\Users\<USER>\AppData\Local\NVIDIA Corporation\GfeSDK\<GAME>\permissions.json`**
+
+## Does Shadow Play Highlights support OGL/Vulcan/DX9/DX10?
+* The GFE back-end to capture video for Highlights is not using a particular graphics API, and neither is the Highlights SDK. Thus, there is no dependency and all graphics APIs are supported.
+
+## Can I avoid the notification overlay when capturing a highlight?
+* Yes. You can make use of NVGSDK_HighlightType::NVGSDK_HIGHLIGHT_TYPE_UNANNOUNCED which will disable the notification overlay
+
+## UWP Support?
+* UWP is not yet supported in ShadowPlay Highlights.
+## Is SPH SDK DLL signed?
+* Yes. It's recommended to securely load the DLL by verifying the location and signature of the DLL.
+
+## Is there a maximum and/or minimum for the values **NVGSDK_VideoHighlightParams.startDelta** and **NVGSDK_VideoHighlightParams.endDelta**?
+* There is no numeric limit on the startDelta. Anything outside the bounds of the current capture session start point just cuts at the capture session start. The endDelta time is limited to 60 seconds into the future from the request timestamp. This is an arbitrary limit inside ShadowPlay, which could be adjusted to be longer if a developer needed, howerver, such a request can be handled by asking the developer to move their call later with a longer startDelta.
+
+* Note: Large positive values for endDelta will mean that notifications will not appear until that delta is reached. Even if the match will have ended.
+
+## Why does this windowed or borderless window game minimizes/pause when the Permissions or Highlight Summary dialogs come up?
+* This is a product of game design and Share Overlay design. When a game is windowed or running borderless window, the GFE overlay UIs are drawn as a UI window at the top of the Z-order stack. This means the game actually loses focus in such cases. Different games are implemented differently to handle this; some minimize, some pause, some continue to play but drop sound. Our guideless to Highlight-enabled games is to not behave different when they lose focus, so that the GFE UI coming up is not a jarring experience.
+
+# Miscellaneous/General Questions
+
+![Highlights_Share_Settings.png](img/igo.png "GFE Share Overlay Highlights Settings Page")
+
+## Can I limit how much HDD space highlights will take up?
+* Yes, this is controlled via the GeForce Experience settings menu. they will appear in the GFE share overlay (Alt-Z to open). They appear in the settings under "Highlights". See the image above.
+
+## How can a user filter specific highlights on/off?
+* After a game has initialized the SPH SDK and created highlights, they will appear in the GFE share overlay (Alt-Z to open). They appear in the settings under "Highlights". See image above.
+
+## How are highlights managed in the temporary files location?
+* Highlights are added to the temp location until the maximum disk space allocated is hit. Once that happens, then space is reclaimed by deleting oldest first, deleting just enough to get the new highlight(s) saved into that folder under the allowed limit. Note the location on HDD where temp videos are stored is configured in the Share Overay settings menu. See image above.
+
+* If the user reduces the maximum disk space (for example, dragging it from 5GB to 2GB), then there is a delete option to delete all the oldest ones first to get under the 2GB limit.
+
+* If the user sets a small enough max limit that not even a single long highlight can be saved in that location, then the highlight will skip being saved. This means its important that game developers keep their highlight lengths concise. A boss battle is not a highlight. A boss kill is a highlight.
+
+## Where does highlights saves temporary video files?
+* This is a setting in the GFE settings for Highlights. See above image.
+
+* Defaults to: **`C:\Users\<USER>\AppData\Local\Temp\Highlights\<Game>`**
+* Note, it may be under "Base Profile", if you have enabled beta experimental features.
+
+## Can we still access the clip meta data after the game session? How long does it persist?
+* Highlight meta-data is stored as long as the highlight is. Note that highlights are removed in FIFO order to maintain user-defined disk space limits. In practice this means a game can bring up a highlights summary (referencing the relevant highlight group) well after those highlights are captured. The typical use case for this is the game maintaining a history of matches and allowing the user to review per-match highlights.
+
+## Resetting Permission Dialog
+* The permissions dialog should be displayed anytime GFE fails to find the file **`C:\Users\<user>\AppData\Local\NVIDIA Corporation\GfeSDK\<GameName>\permissions.json`**. This can be due to the game changing title or the file being deleted. The later can be used to reset the game's permissions and to visualize the permissions dialog again.
+
+## Resetting User Interest Overrides
+* You can delete your local user interest overrides by deleting:
+* **`C:\Users\<user>\AppData\Local\NVIDIA Corporation\NVIDIA Share\Highlights\<Game>`**
diff --git a/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html b/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
index 5f90a9f..eccca5a 100644
--- a/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
+++ b/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('_c_h_a_n_g_e_l_o_g_8md.html','');});
<div class="title">C:/u/workspace/dev/sdkwinauto/doc/CHANGELOG.md</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Changelog {#section_changelog}</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## NVIDIA GfeSDK 1.1 (2018-02-28)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;### Improvements</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;* **Documentation** Top level documentation improvements</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* **Buildable Sample** Include a simple DXUT buildable sample in the distribution, demonstrating API calls</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* **Spectre/Meltdown** Compile with /QSpectre protection</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;* **Assets** Add final assets and image guide</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;### Bug Fixes</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;* **Fix Crash** Fix race condition on startup</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;## NVIDIA GfeSDK 1.1 (2018-01-22)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;### API Changes</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* **SDK version incremented to 1.1** Allows old SDK clients to work with upcoming 3.13 GFE</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* **Highlights Config parameters validation** Rejects Highlights of invalid type and significance</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;## NVIDIA GfeSDK 1.0 (2018-01-16)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;### Features for GFE 3.13+</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* **UWP Support** Add support to Universal Windows Platform games</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* **Target PID** Add support for whitelisted apps to record another process&#39;s PID</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;### API Changes</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* **Target PID** Added to NVGSDK_Create call</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;* **Unannounced Highlight Type** To prevent showing Highlights notifications for certain applications</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;### Improvements</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* **UWP Sample App** Add a new sample MarbleMaze app that demostrates a full Highlights integration</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;### Bug Fixes</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;* **Fix Crash** Was occasionally crashing when communication with the backend could not be established</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;## NVIDIA GfeSDK 1.0 (2017-08-01)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;### API Changes</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;* **Timeout:** Was returning NVGSDK_ERR_GENERIC when IPC call timed now. Now returning NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;* **windows.h:** Removed windows.h from public includes</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;* **globals:** Removed macros from global namespace</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;* **stdint:** Standardize on stdint types</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;* **stdbool:** Use stdbool in C API instead of integer 0/1</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;* **namespace:** Renamed namespace from gfesdk to GfeSDK, and wrapped C API in namespace when using C++ bindings</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;* **Highlights split:** Split all Highlights features into their own headers</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* **C++ Bindings RAII:** Update C++ bindings to follow recognized C++ idioms</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;* **package structure:** Standardize package structure to look like other GameWorks packages</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* **Typed Callbacks:** Return typed callback data instead of void*</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;* **Naming:** Match naming standard to other GameWorks packages</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;### Improvements</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* **Thread Model**: Improve thread model. Prevent callbacks from occurring after Release. Allow Polling of callbacks</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* **Documentation**: Improved and expanded documentation</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;### Bug Fixes</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* **Whitelist:** Fix error causing ShadowPlay to not whitelist game correctly.</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* **Fix crash:** Was crashing when the same game ran twice.</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;* **Input validation:** Added input validation to return an error for C++ create instead of crash</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;* **Timeout return value:** Was returning NVGSDK_ERR_GENERIC instead of NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;### Features for GFE 3.9+</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;* **In-Game Overlay Notification:** Notify the app when the in-game overlay opens or closes.</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;## NVIDIA GfeSDK 1.0 (2017-07-10)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;### Features for GFE 3.8+</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* **ShadowPlay Highlights** Help Gamers automatically capture their most exciting gaming moments.</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Changelog</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## NVIDIA GfeSDK 1.1 (2018-03-08)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;### Improvements</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;* **Buildable Sample** Fix release configurations of sample, and fix compiler errors</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;## NVIDIA GfeSDK 1.1 (2018-02-28)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;### Improvements</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;* **Documentation** Top level documentation improvements</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* **Buildable Sample** Include a simple DXUT buildable sample in the distribution, demonstrating API calls</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;* **Spectre/Meltdown** Compile with /Qspectre protection</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;* **Assets** Add final assets and image guide</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;### Bug Fixes</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;* **Fix Crash** Fix race condition on startup</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;## NVIDIA GfeSDK 1.1 (2018-01-22)</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;### API Changes</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;* **SDK version incremented to 1.1** Allows old SDK clients to work with upcoming 3.13 GFE</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;* **Highlights Config parameters validation** Rejects Highlights of invalid type and significance</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;## NVIDIA GfeSDK 1.0 (2018-01-16)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;### Features for GFE 3.13+</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* **Target PID** Add support for whitelisted apps to record another process&#39;s PID</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;### API Changes</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;* **Target PID** Added to NVGSDK_Create call</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* **Unannounced Highlight Type** To prevent showing Highlights notifications for certain applications</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;### Bug Fixes</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;* **Fix Crash** Was occasionally crashing when communication with the backend could not be established</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;## NVIDIA GfeSDK 1.0 (2017-08-01)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;### API Changes</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;* **Timeout:** Was returning NVGSDK_ERR_GENERIC when IPC call timed now. Now returning NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;* **windows.h:** Removed windows.h from public includes</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;* **globals:** Removed macros from global namespace</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;* **stdint:** Standardize on stdint types</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;* **stdbool:** Use stdbool in C API instead of integer 0/1</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;* **namespace:** Renamed namespace from gfesdk to GfeSDK, and wrapped C API in namespace when using C++ bindings</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;* **Highlights split:** Split all Highlights features into their own headers</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* **C++ Bindings RAII:** Update C++ bindings to follow recognized C++ idioms</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;* **package structure:** Standardize package structure to look like other GameWorks packages</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* **Typed Callbacks:** Return typed callback data instead of void*</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;* **Naming:** Match naming standard to other GameWorks packages</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;### Improvements</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* **Thread Model**: Improve thread model. Prevent callbacks from occurring after Release. Allow Polling of callbacks</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* **Documentation**: Improved and expanded documentation</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;### Bug Fixes</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* **Whitelist:** Fix error causing ShadowPlay to not whitelist game correctly.</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* **Fix crash:** Was crashing when the same game ran twice.</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;* **Input validation:** Added input validation to return an error for C++ create instead of crash</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;* **Timeout return value:** Was returning NVGSDK_ERR_GENERIC instead of NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;### Features for GFE 3.9+</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;* **In-Game Overlay Notification:** Notify the app when the in-game overlay opens or closes.</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;## NVIDIA GfeSDK 1.0 (2017-07-10)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;### Features for GFE 3.8+</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* **ShadowPlay Highlights** Help Gamers automatically capture their most exciting gaming moments.</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
diff --git a/doc/html/config_8h_source.html b/doc/html/config_8h_source.html
index fc4dbcc..80d9521 100644
--- a/doc/html/config_8h_source.html
+++ b/doc/html/config_8h_source.html
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('config_8h_source.html','');});
<div class="title">config.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Warning: This file is generated. Do not edit</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;gfe3_product_version.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVGSDK_PROJECT_NAME &quot;GfeSDK&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MAJOR 1</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MINOR 1</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_NUMBER 186</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH 6007c22a</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH_STR &quot;6007c22a&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif // _NVGSDK_CONFIG_H_</span></div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Warning: This file is generated. Do not edit</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;gfe3_product_version.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVGSDK_PROJECT_NAME &quot;GfeSDK&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MAJOR 1</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MINOR 1</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_NUMBER 191</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH c04488e1</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH_STR &quot;c04488e1&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif // _NVGSDK_CONFIG_H_</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
diff --git a/doc/html/gfe3__product__version_8h_source.html b/doc/html/gfe3__product__version_8h_source.html
index 6f36b74..76de5d4 100644
--- a/doc/html/gfe3__product__version_8h_source.html
+++ b/doc/html/gfe3__product__version_8h_source.html
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('gfe3__product__version_8h_source.html'
<div class="title">gfe3_product_version.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// GFE3 product version: </span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// - A.B.XY.N, if X &gt; 0</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// - A.B.Y.N, otherwise</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A - Major release version.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// B - Minor release version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// X - _dev to _rel_next rebase counter.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Y - _rel_next to _rel rebase counter.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// N - Build counter.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MAJOR 3</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MINOR 14</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DEV_REBASE 0</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_RNEXT_REBASE 0</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_BUILD 30</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Composite version values. We don&#39;t concatenate them here automatically because</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// (a) one can&#39;t use L-based wchar_t conversion with preprocessor-concatenated terminals; and</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// (b) some build scripts rely upon the explicit value for NVIDIA_GFE3_VERSION / NVIDIA_GFE3_VERSION_STRING_DOT</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Format: A,B,XY,N</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION 3,14,0,30</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Format: A.B.XY.N</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DOT 3.14.0.30</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Format: &quot;A.B.XY.N&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_STRING &quot;3.14.0.30&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Some common strings</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_PRODUCT_NAME &quot;NVIDIA GeForce Experience&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// These values are taken from nvVer.h</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_SHORT &quot;NVIDIA&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_FULL &quot;NVIDIA Corporation&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING NV_COMPANY_NAME_STRING_FULL</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT_YEAR &quot;2017&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT &quot;(C) &quot; NV_COPYRIGHT_YEAR &quot; &quot; NV_COMPANY_NAME_STRING_FULL &quot;. All rights reserved.&quot; // Please do not use the non-ascii copyright symbol for (C).</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// GFE3 product version: </span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// - A.B.XY.N, if X &gt; 0</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// - A.B.Y.N, otherwise</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A - Major release version.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// B - Minor release version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// X - _dev to _rel_next rebase counter.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Y - _rel_next to _rel rebase counter.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// N - Build counter.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MAJOR 3</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MINOR 14</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DEV_REBASE 0</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_RNEXT_REBASE 0</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_BUILD 39</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Composite version values. We don&#39;t concatenate them here automatically because</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// (a) one can&#39;t use L-based wchar_t conversion with preprocessor-concatenated terminals; and</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// (b) some build scripts rely upon the explicit value for NVIDIA_GFE3_VERSION / NVIDIA_GFE3_VERSION_STRING_DOT</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Format: A,B,XY,N</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION 3,14,0,39</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Format: A.B.XY.N</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DOT 3.14.0.39</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Format: &quot;A.B.XY.N&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_STRING &quot;3.14.0.39&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Some common strings</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_PRODUCT_NAME &quot;NVIDIA GeForce Experience&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// These values are taken from nvVer.h</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_SHORT &quot;NVIDIA&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_FULL &quot;NVIDIA Corporation&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING NV_COMPANY_NAME_STRING_FULL</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT_YEAR &quot;2017&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT &quot;(C) &quot; NV_COPYRIGHT_YEAR &quot; &quot; NV_COMPANY_NAME_STRING_FULL &quot;. All rights reserved.&quot; // Please do not use the non-ascii copyright symbol for (C).</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
diff --git a/doc/html/index.html b/doc/html/index.html
index b8e54b8..9a665c8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -91,14 +91,14 @@ $(document).ready(function(){initNavTree('index.html','');});
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html">GfeSDK::CreateInputParams</a> createParams;</div><div class="line"> createParams.appName = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>; <span class="comment">// appName will only be used/visible if GFE cannot identify your game</span></div><div class="line"> createParams.pollForCallbacks = <span class="keyword">true</span>; <span class="comment">// We will poll for callbacks in order to execute callbacks from game loop</span></div><div class="line"> createParams.requiredScopes = {</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS,</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS_VIDEO,</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT</div><div class="line"> };</div><div class="line"> createParams.notificationCallback = std::bind(&amp;HighlightsWrapper::OnNotification, <span class="keyword">this</span>, _1, _2);</div><div class="line"></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_create_response.html">GfeSDK::CreateResponse</a> response;</div><div class="line"> <a class="code" href="class_gfe_s_d_k_1_1_core.html">GfeSDK::Core</a>* gfesdkCore = <a class="code" href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d">GfeSDK::Core::Create</a>(createParams, response);</div><div class="line"> <span class="keywordflow">if</span> (GfeSDK::NVGSDK_SUCCEEDED(response.returnCode))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, GfeSDK::NVGSDK_RetCodeToString(response.returnCode));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">switch</span> (response.returnCode)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, GfeSDK::NVGSDK_RetCodeToString(response.returnCode));</div><div class="line"> <span class="keywordflow">switch</span> (response.returnCode)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
<div class="fragment"><div class="line"> <span class="keyword">delete</span> gfesdkCore;</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> inParams;</div><div class="line"> memset(&amp;inParams, 0, <span class="keyword">sizeof</span>(inParams));</div><div class="line"></div><div class="line"> NVGSDK_Scope scopes[] = { NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT };</div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a> scopePermissions[COUNT_OF(scopes)];</div><div class="line"></div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">appName</a> = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">pollForCallbacks</a> = <span class="keyword">true</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">scopeTable</a> = &amp;scopes;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">scopeTableSize</a> = COUNT_OF(scopes);</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">notificationCallback</a> = handleNotification;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> outParams;</div><div class="line"> memset(&amp;outParams, 0, <span class="keyword">sizeof</span>(outParams));</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &amp;scopePermissions;</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a> = COUNT_OF(scopes);</div><div class="line"></div><div class="line"> NVGSDK_RetCode rc = <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(&amp;g_sdk, &amp;inParams, &amp;outParams);</div><div class="line"> <span class="keywordflow">if</span> (NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
+<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> inParams;</div><div class="line"> memset(&amp;inParams, 0, <span class="keyword">sizeof</span>(inParams));</div><div class="line"></div><div class="line"> NVGSDK_Scope scopes[] = { NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT };</div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a> scopePermissions[COUNT_OF(scopes)];</div><div class="line"></div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">appName</a> = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">pollForCallbacks</a> = <span class="keyword">true</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">scopeTable</a> = &amp;scopes[0];</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">scopeTableSize</a> = COUNT_OF(scopes);</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">notificationCallback</a> = handleNotification;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> outParams;</div><div class="line"> memset(&amp;outParams, 0, <span class="keyword">sizeof</span>(outParams));</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &amp;scopePermissions[0];</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a> = COUNT_OF(scopes);</div><div class="line"></div><div class="line"> NVGSDK_RetCode rc = <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(&amp;g_sdk, &amp;inParams, &amp;outParams);</div><div class="line"> <span class="keywordflow">if</span> (NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
<div class="fragment"><div class="line"> <a class="code" href="isdk_8h.html#ab63d1f433313209b1febbf5736b61463">NVGSDK_Release</a>(g_sdk);</div></div><!-- fragment --> <p>The Create call will inform the app if one or more scopes require user permission. If so, make this call. It will display the overlay UI.</p>
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_request_permissions_params.html">GfeSDK::RequestPermissionsParams</a> requestPermissionsParams;</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; entry : response.scopePermissions)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (entry.second == GfeSDK::NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopes.push_back(entry.first);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (!requestPermissionsParams.scopes.empty())</div><div class="line"> {</div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> m_gfesdk-&gt;RequestPermissionsAsync(requestPermissionsParams, [<span class="keyword">this</span>, defaultLocale, highlights, numHighlights](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>* cbContext) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> <span class="keywordflow">if</span> (GfeSDK::NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div><div class="line"> });</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> requestPermissionsParams = { 0 };</div><div class="line"> NVGSDK_Scope requestScopes[COUNT_OF(scopes)];</div><div class="line"> memset(requestScopes, NVGSDK_SCOPE_MAX, COUNT_OF(scopes));</div><div class="line"> requestPermissionsParams.scopeTable = &amp;requestScopes;</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a>; ++i)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].permission == NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopeTable[j++] = outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].scope;</div><div class="line"> requestPermissionsParams.scopeTableSize++;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (requestPermissionsParams.scopeTableSize &gt; 0)</div><div class="line"> {</div><div class="line"> TConfigHolder* configHolder = malloc(<span class="keyword">sizeof</span>(TConfigHolder));</div><div class="line"> configHolder-&gt;defaultLocale = defaultLocale;</div><div class="line"> configHolder-&gt;highlights = highlights;</div><div class="line"> configHolder-&gt;numHighlights = numHighlights;</div><div class="line"></div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(g_sdk, &amp;requestPermissionsParams, &amp;handlePermissionRequested, configHolder);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <p>This only needs to happen once ever. It is persistent. It could even happen during game installation.</p>
+<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> requestPermissionsParams = { 0 };</div><div class="line"> NVGSDK_Scope requestScopes[COUNT_OF(scopes)];</div><div class="line"> memset(requestScopes, NVGSDK_SCOPE_MAX, COUNT_OF(scopes));</div><div class="line"> requestPermissionsParams.scopeTable = &amp;requestScopes[0];</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a>; ++i)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].permission == NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopeTable[j++] = outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].scope;</div><div class="line"> requestPermissionsParams.scopeTableSize++;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (requestPermissionsParams.scopeTableSize &gt; 0)</div><div class="line"> {</div><div class="line"> TConfigHolder* configHolder = malloc(<span class="keyword">sizeof</span>(TConfigHolder));</div><div class="line"> configHolder-&gt;defaultLocale = defaultLocale;</div><div class="line"> configHolder-&gt;highlights = highlights;</div><div class="line"> configHolder-&gt;numHighlights = numHighlights;</div><div class="line"></div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(g_sdk, &amp;requestPermissionsParams, &amp;handlePermissionRequested, configHolder);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <p>This only needs to happen once ever. It is persistent. It could even happen during game installation.</p>
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <span class="comment">// Create handle to highlights module</span></div><div class="line"> m_highlights.reset(GfeSDK::Highlights::Create(m_gfesdk.get()));</div><div class="line"></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a> configParams;</div><div class="line"> configParams.defaultLocale = defaultLocale;</div><div class="line"></div><div class="line"> <span class="comment">// Set up highlight definition table</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a> highlightDef;</div><div class="line"> highlightDef.id = highlights[i].id;</div><div class="line"> highlightDef.userDefaultInterest = highlights[i].userInterest;</div><div class="line"> highlightDef.significance = highlights[i].significance;</div><div class="line"> highlightDef.highlightTags = highlights[i].highlightTags;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; highlights[i].nameTableSize; ++j)</div><div class="line"> {</div><div class="line"> highlightDef.<a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a>[highlights[i].nameTable[j].localeCode] = highlights[i].nameTable[j].localizedString;</div><div class="line"> }</div><div class="line"></div><div class="line"> configParams.highlightDefinitions.push_back(highlightDef);</div><div class="line"> }</div><div class="line"></div><div class="line"> m_highlights-&gt;ConfigureAsync(configParams, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>* highlights = calloc(numHighlights, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>));</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>* params = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>));</div><div class="line"> params-&gt;<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = defaultLocale;</div><div class="line"> params-&gt;highlightDefinitionTable = highlights;</div><div class="line"> params-&gt;highlightTableSize = numHighlights;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = hl[i].id;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = hl[i].highlightTags;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = hl[i].significance;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = hl[i].userInterest;</div><div class="line"></div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = hl[i].nameTableSize;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = hl[i].nameTableSize &gt; 0 ? calloc(hl[i].nameTableSize, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a>)) : NULL;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> name = 0; name &lt; hl[i].nameTableSize; ++name)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#aa070c22ef7cf737497855504fb8795d6">localeCode</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s(highlights[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH);</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#a02d3e482f16824ccc790f1a3dc8b8952">localizedString</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s(highlights[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(g_sdk, params, &amp;handleConfigured, params);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
+<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>* highlights = calloc(numHighlights, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>));</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>* params = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>));</div><div class="line"> params-&gt;<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = defaultLocale;</div><div class="line"> params-&gt;highlightDefinitionTable = highlights;</div><div class="line"> params-&gt;highlightTableSize = numHighlights;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = hl[i].id;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = hl[i].highlightTags;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = hl[i].significance;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = hl[i].userInterest;</div><div class="line"></div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = hl[i].nameTableSize;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = hl[i].nameTableSize &gt; 0 ? calloc(hl[i].nameTableSize, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a>)) : NULL;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> name = 0; name &lt; hl[i].nameTableSize; ++name)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#aa070c22ef7cf737497855504fb8795d6">localeCode</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s((<span class="keywordtype">char</span>*)highlights[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH);</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#a02d3e482f16824ccc790f1a3dc8b8952">localizedString</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s((<span class="keywordtype">char</span>*)highlights[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(g_sdk, params, &amp;handleConfigured, params);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a> params;</div><div class="line"> params.groupId = id;</div><div class="line"> params.groupDescriptionLocaleTable[<span class="stringliteral">&quot;en-US&quot;</span>] = id;</div><div class="line"> m_highlights-&gt;OpenGroupAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a> params;</div><div class="line"> params.startDelta = startDelta;</div><div class="line"> params.endDelta = endDelta;</div><div class="line"> params.groupId = groupId;</div><div class="line"> params.highlightId = highlightId;</div><div class="line"> m_highlights-&gt;SetVideoHighlightAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a> params;</div><div class="line"> params.groupId = id;</div><div class="line"> params.destroyHighlights = destroy;</div><div class="line"> m_highlights-&gt;CloseGroupAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html">NVGSDK_HighlightOpenGroupParams</a> params = { 0 };</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3e9f6351540609fc3e853d5a16188da2">groupId</a> = groupId;</div><div class="line"> <a class="code" href="ihighlights_8h.html#aa49250dbc063e242607123333f8da892">NVGSDK_Highlights_OpenGroupAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html">NVGSDK_VideoHighlightParams</a> params;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#aa332ddd28accd8f72fb17adc378c1267">groupId</a> = groupId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#a622f76afc439ed07a18e97ca95564ff0">highlightId</a> = highlightId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ac526b90af6638fec62174304aa175da1">startDelta</a> = startDelta;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ae63c02443b1eeb24c4e1ed4d49154277">endDelta</a> = endDelta;</div><div class="line"> <a class="code" href="ihighlights_8h.html#a4812495c6dedfc7cc6b2d3c421c161ed">NVGSDK_Highlights_SetVideoHighlightAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html">NVGSDK_HighlightCloseGroupParams</a> params = { 0 };</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a6f1e0e8a5399e868588a83e1c81ad9c3">groupId</a> = groupId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a3d7eae61163c4616a42569ca8d7785c6">destroyHighlights</a> = destroy;</div><div class="line"> <a class="code" href="ihighlights_8h.html#aa3b6190835ada28f4cee015645814e75">NVGSDK_Highlights_CloseGroupAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a> params;</div><div class="line"></div><div class="line"> <span class="comment">// Can show more than one group at a time, each with their own filters if desired</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numGroups; ++i)</div><div class="line"> {</div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a> v;</div><div class="line"> v.groupId = groupIds[i];</div><div class="line"> v.significanceFilter = sigFilter;</div><div class="line"> v.tagsFilter = tagFilter;</div><div class="line"> params.groupViews.push_back(v);</div><div class="line"> }</div><div class="line"></div><div class="line"> m_highlights-&gt;OpenSummaryAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>
diff --git a/doc/html/md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html b/doc/html/md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html
new file mode 100644
index 0000000..7cf0064
--- /dev/null
+++ b/doc/html/md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html
@@ -0,0 +1,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.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>NVIDIAGeForceExperienceSDK: Changelog</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('md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.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">Changelog </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h2>NVIDIA GfeSDK 1.1 (2018-03-08)</h2>
+<h3>Improvements</h3>
+<ul>
+<li><b>Buildable Sample</b> Fix release configurations of sample, and fix compiler errors</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.1 (2018-02-28)</h2>
+<h3>Improvements</h3>
+<ul>
+<li><b>Documentation</b> Top level documentation improvements</li>
+<li><b>Buildable Sample</b> Include a simple DXUT buildable sample in the distribution, demonstrating API calls</li>
+<li><b>Spectre/Meltdown</b> Compile with /Qspectre protection</li>
+<li><b>Assets</b> Add final assets and image guide</li>
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li><b>Fix Crash</b> Fix race condition on startup</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.1 (2018-01-22)</h2>
+<h3>API Changes</h3>
+<ul>
+<li><b>SDK version incremented to 1.1</b> Allows old SDK clients to work with upcoming 3.13 GFE</li>
+<li><b>Highlights Config parameters validation</b> Rejects Highlights of invalid type and significance</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.0 (2018-01-16)</h2>
+<h3>Features for GFE 3.13+</h3>
+<ul>
+<li><b>Target PID</b> Add support for whitelisted apps to record another process's PID</li>
+</ul>
+<h3>API Changes</h3>
+<ul>
+<li><b>Target PID</b> Added to NVGSDK_Create call</li>
+<li><b>Unannounced Highlight Type</b> To prevent showing Highlights notifications for certain applications</li>
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li><b>Fix Crash</b> Was occasionally crashing when communication with the backend could not be established</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.0 (2017-08-01)</h2>
+<h3>API Changes</h3>
+<ul>
+<li><b>Timeout:</b> Was returning NVGSDK_ERR_GENERIC when IPC call timed now. Now returning NVGSDK_ERR_IPC_FAILED</li>
+<li><b>windows.h:</b> Removed windows.h from public includes</li>
+<li><b>globals:</b> Removed macros from global namespace</li>
+<li><b>stdint:</b> Standardize on stdint types</li>
+<li><b>stdbool:</b> Use stdbool in C API instead of integer 0/1</li>
+<li><b>namespace:</b> Renamed namespace from gfesdk to GfeSDK, and wrapped C API in namespace when using C++ bindings</li>
+<li><b>Highlights split:</b> Split all Highlights features into their own headers</li>
+<li><b>C++ Bindings RAII:</b> Update C++ bindings to follow recognized C++ idioms</li>
+<li><b>package structure:</b> Standardize package structure to look like other GameWorks packages</li>
+<li><b>Typed Callbacks:</b> Return typed callback data instead of void*</li>
+<li><b>Naming:</b> Match naming standard to other GameWorks packages</li>
+</ul>
+<h3>Improvements</h3>
+<ul>
+<li><b>Thread Model</b>: Improve thread model. Prevent callbacks from occurring after Release. Allow Polling of callbacks</li>
+<li><b>Documentation</b>: Improved and expanded documentation</li>
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li><b>Whitelist:</b> Fix error causing ShadowPlay to not whitelist game correctly.</li>
+<li><b>Fix crash:</b> Was crashing when the same game ran twice.</li>
+<li><b>Input validation:</b> Added input validation to return an error for C++ create instead of crash</li>
+<li><b>Timeout return value:</b> Was returning NVGSDK_ERR_GENERIC instead of NVGSDK_ERR_IPC_FAILED</li>
+</ul>
+<h3>Features for GFE 3.9+</h3>
+<ul>
+<li><b>In-Game Overlay Notification:</b> Notify the app when the in-game overlay opens or closes.</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.0 (2017-07-10)</h2>
+<h3>Features for GFE 3.8+</h3>
+<ul>
+<li><b>ShadowPlay Highlights</b> Help Gamers automatically capture their most exciting gaming moments. </li>
+</ul>
+</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="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ doxygen</a> 1.8.12 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js
index eaf2f8a..ec23a48 100644
--- a/doc/html/navtreedata.js
+++ b/doc/html/navtreedata.js
@@ -2,7 +2,7 @@ var NAVTREE =
[
[ "NVIDIAGeForceExperienceSDK", "index.html", [
[ "Development Guide", "index.html", null ],
- [ "Changelog", "section_changelog.html", null ],
+ [ "Changelog", "md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html", null ],
[ "Classes", "annotated.html", [
[ "Class List", "annotated.html", "annotated_dup" ],
[ "Class Index", "classes.html", null ],
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index a85c530..56329b5 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -118,6 +118,7 @@ var NAVTREEINDEX0 =
"isdk__cpp_8h_source.html":[3,0,1,0,0,0,0,1],
"isdk__cpp__impl_8h.html":[3,0,1,0,0,0,0,2],
"isdk__cpp__impl_8h_source.html":[3,0,1,0,0,0,0,2],
+"md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html":[1],
"ops__types_8h.html":[3,0,1,0,0,2,1],
"ops__types_8h_source.html":[3,0,1,0,0,2,1],
"os__defines_8h_source.html":[3,0,1,0,0,4],
@@ -145,7 +146,6 @@ var NAVTREEINDEX0 =
"sdk__types_8h_source.html":[3,0,1,0,0,5],
"sdk__types__cpp_8h_source.html":[3,0,1,0,0,0,0,3],
"sdk__types__ipc_8h_source.html":[3,0,0,0,0,2],
-"section_changelog.html":[1],
"struct_gfe_s_d_k_1_1_create_input_params.html":[2,0,4,2],
"struct_gfe_s_d_k_1_1_create_input_params.html#a3d101bfc3a6a28b678537d3f1198ab5e":[2,0,4,2,1],
"struct_gfe_s_d_k_1_1_create_input_params.html#a642a81dc589d578d1c415099e85b9891":[2,0,4,2,3],
diff --git a/doc/html/pages.html b/doc/html/pages.html
index 570d191..a60af89 100644
--- a/doc/html/pages.html
+++ b/doc/html/pages.html
@@ -87,7 +87,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="section_changelog.html" target="_self">Changelog</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html" target="_self">Changelog</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js
index 3e101bf..706fe95 100644
--- a/doc/html/search/all_1.js
+++ b/doc/html/search/all_1.js
@@ -8,5 +8,5 @@ var searchData=
['createinputparams',['CreateInputParams',['../struct_gfe_s_d_k_1_1_create_input_params.html',1,'GfeSDK']]],
['createresponse',['CreateResponse',['../struct_gfe_s_d_k_1_1_create_response.html',1,'GfeSDK']]],
['culturecode',['cultureCode',['../struct_n_v_g_s_d_k___language.html#a61f6b2d2a3d08a27b37919e32b13ed75',1,'NVGSDK_Language']]],
- ['changelog',['Changelog',['../section_changelog.html',1,'']]]
+ ['changelog',['Changelog',['../md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html',1,'']]]
];
diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js
index cb72189..328e5e5 100644
--- a/doc/html/search/pages_0.js
+++ b/doc/html/search/pages_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['changelog',['Changelog',['../section_changelog.html',1,'']]]
+ ['changelog',['Changelog',['../md__c_1_u_workspace_dev_sdkwinauto_doc__c_h_a_n_g_e_l_o_g.html',1,'']]]
];