# NVIDIA GeForce Experience SDK # * See [Changelog](./CHANGELOG.md) ## At a Glance The GeForce SDK (GfeSDK) is a means for games to integrate with NVIDIA Highlights allowing them to capture videos and screenshots and present the resulting highlights back to users for viewing and sharing. GfeSDK will add other features over time that benefit from games and applications working in concert with GFE functionality. ## NVIDIA Highlights * [Highlights Integration FAQ](./doc/NVIDIA_Highlights_FAQ.md) * [SDK and Highlights Developer FAQ](./doc/NVIDIA_GfeSDK_Developer_FAQ.md) * [NVIDIA Highlights Usage Guidelines](./doc/NVIDIA-HIGHLIGHTS_Usage_Guidelines_.pdf) ![NVIDIA Highlights](./doc/img/gfesdk_highlights.png) ## Developer Content Portal * If your game isn't yet registered with NVIDIA, visit the [Developer Content Portal](./doc/DeveloperContentPortal.md) ## Development Guide ### Software Stack ![Software Stack](./doc/img/gfesdk_block.png) An application integrates with the GfeSDK via either a game engine plugin (UE4, Unity), C++ interface, or C interface. This integration, via the SDK, calls a compatible GFE 3.0 release. The developer (or associated publisher) distributes the application (including associated SDK libraries). NVIDIA distributes a GfeSDK package coupled with GfeSDK-compatible GFE releases. GFE maintains backwards SDK-compatibility; games integrated with older SDKs work with newer GFE releases. ### GfeSDK Package The distribution will look like the following ``` . +-- README.md +-- LICENSE +-- doc | +-- index.html # Points to the deeper index.html | +-- html | | +-- index.html | | ... +-- include | +-- gfesdk | | +-- bindings | | | +-- cpp # C++ bindings that sit on top of C API | | +-- isdk.h | | +-- highlights | | | +-- ihighlights.h | | ... +-- lib | +-- win32 | | +-- GfeSDK.lib # x86 Import library for linking | +-- win64 | | +-- GfeSDK.lib # x64 Import library for linking +-- redist | +-- assets | | +-- img | | | +-- xxxx.png # Images the game may redistribute | +-- win32 | | +-- GfeSDK.dll # x86 DLL to be shipped with the game | +-- win64 | | +-- GfeSDK.dll # x64 DLL to be shipped with the game +-- samples | +-- DX_APIUsage | | +-- DX_APIUsage.sln # Example directX project that demonstrates GfeSDK API calls | | ... | +-- bin | | +-- DX_APIUsage | | | +-- win32 | | | | +-- GfeSDKDemo_DX.exe # Executable DX_APIUsage demo | | | | ... ``` ### Compiling And Linking To compile, add the ./include (not the ./include/gfesdk) directory to the compiler's list of includes. The import libraries are found in the ./lib folder and can be used to link the symbols into the game's executable. The proper GfeSDK.dll file will need to be distributed with the game in a place that the game can find it. The C++ bindings are currently distributed in header-only form to avoid ABI incompatibilities between different compiler versions. The linking and include steps are the same. See the technical Doxygen documentation by downloading the packaging and opening doc/index.html (Not viewable by GitHub)