Skip to content

Commit 115e249

Browse files
committed
GeForceNOW-SDK Release 3.0
This is the official 3.0 release. See README.md for more details.
1 parent 706574f commit 115e249

File tree

345 files changed

+5262
-33870
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

345 files changed

+5262
-33870
lines changed

CMakeLists.txt

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,11 @@ if(NOT GFN_SDK_LIB_DIR)
3434
)
3535
endif()
3636

37-
set(SAMPLE_LAUNCHER_INSTALL_ROOT "" CACHE STRING "(Optional) location to install sample launcher with cmake install command")
3837
set(SAMPLE_CLOUDCHECKAPI_INSTALL_ROOT "" CACHE STRING "(Optional) location to install Cloud Check API sample with cmake install command")
39-
set(SAMPLES_CEF_URL "" CACHE STRING "(Optional) URL to use to download libcef for launcher sample")
40-
set(SAMPLES_CEF_PATH "" CACHE STRING "(Optional) Path to find pre-downloaded CEF")
4138

4239
set_property(CACHE SAMPLES_ARCH PROPERTY STRINGS 64 32)
4340
option(BUILD_SAMPLES "Build the GFN SDK samples" ON)
44-
set(AVAILABLE_SAMPLES CGameAPISample CloudCheckAPI CubeSample OpenClientBrowser PartnerDataAPI PreWarmSample SDKDllDirectRefSample SampleLauncher)
41+
set(AVAILABLE_SAMPLES CGameAPISample CloudCheckAPI CubeSample OpenClientBrowser PartnerDataAPI PreWarmSample)
4542
set(BUILD_SAMPLES_LIST "${AVAILABLE_SAMPLES}" CACHE STRING "List of GFN SDK samples to build (e.g. 'CGameAPISample;CloudCheckAPI)")
4643
if (LINUX)
4744
# If the option is set to `OFF` then OpenSSL dependency can be provided by the user instead
@@ -57,22 +54,6 @@ endif ()
5754

5855
###############################
5956

60-
# For the GfnSdk distribution, GfnRuntimeSdk.dll is precompiled
61-
if (NOT TARGET GfnRuntime)
62-
add_library(GfnRuntime MODULE IMPORTED)
63-
if (WIN32)
64-
set_target_properties(GfnRuntime PROPERTIES
65-
IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/win/${BUILD_ARCH}/GfnRuntimeSdk.dll
66-
)
67-
elseif (LINUX)
68-
set_target_properties(GfnRuntime PROPERTIES
69-
IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/linux/${BUILD_ARCH}/GfnRuntimeSdk.so
70-
)
71-
else ()
72-
message(FATAL_ERROR "Unsupported platform")
73-
endif ()
74-
endif ()
75-
7657
add_library(GfnSdkWrapper STATIC
7758
${CMAKE_CURRENT_SOURCE_DIR}/include/GfnRuntimeSdk_Wrapper.c
7859
)

LICENSE.samplelauncher.thirdparty

Lines changed: 0 additions & 406 deletions
This file was deleted.

LICENSE.thirdparty

Lines changed: 25 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1,146 +1,5 @@
11
This software distribution uses the following open source software:
22

3-
===Protocol Buffers version 2.6.1===
4-
5-
This license applies to all parts of Protocol Buffers except the following:
6-
7-
- Atomicops support for generic gcc, located in
8-
src/google/protobuf/stubs/atomicops_internals_generic_gcc.h.
9-
This file is copyrighted by Red Hat Inc.
10-
11-
- Atomicops support for AIX/POWER, located in
12-
src/google/protobuf/stubs/atomicops_internals_power.h.
13-
This file is copyrighted by Bloomberg Finance LP.
14-
15-
Copyright 2014, Google Inc. All rights reserved.
16-
17-
Redistribution and use in source and binary forms, with or without
18-
modification, are permitted provided that the following conditions are
19-
met:
20-
21-
* Redistributions of source code must retain the above copyright
22-
notice, this list of conditions and the following disclaimer.
23-
* Redistributions in binary form must reproduce the above
24-
copyright notice, this list of conditions and the following disclaimer
25-
in the documentation and/or other materials provided with the
26-
distribution.
27-
* Neither the name of Google Inc. nor the names of its
28-
contributors may be used to endorse or promote products derived from
29-
this software without specific prior written permission.
30-
31-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35-
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
36-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
37-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
38-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
39-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42-
43-
Code generated by the Protocol Buffer compiler is owned by the owner
44-
of the input file used when generating it. This code is not
45-
standalone and requires a support library to be linked with it. This
46-
support library is itself covered by the above license.
47-
48-
===CURL 8.11.0===
49-
COPYRIGHT AND PERMISSION NOTICE
50-
51-
Copyright (c) 1996 - 2024, Daniel Stenberg, <[email protected]>, and many
52-
contributors, see the THANKS file.
53-
54-
All rights reserved.
55-
56-
Permission to use, copy, modify, and distribute this software for any purpose
57-
with or without fee is hereby granted, provided that the above copyright
58-
notice and this permission notice appear in all copies.
59-
60-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
61-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
62-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
63-
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
64-
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
65-
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
66-
OR OTHER DEALINGS IN THE SOFTWARE.
67-
68-
Except as contained in this notice, the name of a copyright holder shall not
69-
be used in advertising or otherwise to promote the sale, use or other dealings
70-
in this Software without prior written authorization of the copyright holder.
71-
72-
===RapidJSON v1.1.0===
73-
Tencent is pleased to support the open source community by making RapidJSON
74-
available.
75-
76-
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All
77-
rights reserved.
78-
79-
If you have downloaded a copy of the RapidJSON binary from Tencent, please note
80-
that the RapidJSON binary is licensed under the MIT License.
81-
If you have downloaded a copy of the RapidJSON source code from Tencent, please
82-
note that RapidJSON source code is licensed under the MIT License, except for
83-
the third-party components listed below which are subject to different license
84-
terms. Your integration of RapidJSON into your own projects may require
85-
compliance with the MIT License, as well as the other licenses applicable to
86-
the third-party components included within RapidJSON. To avoid the problematic
87-
JSON license in your own projects, it's sufficient to exclude the
88-
bin/jsonchecker/ directory, as it's the only code under the JSON license.
89-
A copy of the MIT License is included in this file.
90-
91-
Other dependencies and licenses:
92-
93-
Open Source Software Licensed Under the BSD License:
94-
--------------------------------------------------------------------
95-
96-
The msinttypes r29
97-
Copyright (c) 2006-2013 Alexander Chemeris
98-
All rights reserved.
99-
100-
Redistribution and use in source and binary forms, with or without
101-
modification, are permitted provided that the following conditions are met:
102-
103-
* Redistributions of source code must retain the above copyright notice, this
104-
list of conditions and the following disclaimer.
105-
* Redistributions in binary form must reproduce the above copyright notice,
106-
this list of conditions and the following disclaimer in the documentation
107-
and/or other materials provided with the distribution.
108-
* Neither the name of copyright holder nor the names of its contributors may
109-
be used to endorse or promote products derived from this software without
110-
specific prior written permission.
111-
112-
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
113-
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
114-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
115-
DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
116-
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
117-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
118-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
119-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
120-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
121-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
122-
123-
Terms of the MIT License:
124-
--------------------------------------------------------------------
125-
126-
Permission is hereby granted, free of charge, to any person obtaining a copy of
127-
this software and associated documentation files (the "Software"), to deal in
128-
the Software without restriction, including without limitation the rights to
129-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
130-
of the Software, and to permit persons to whom the Software is furnished to do
131-
so, subject to the following conditions:
132-
133-
The above copyright notice and this permission notice shall be included in all
134-
copies or substantial portions of the Software.
135-
136-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
137-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
138-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
139-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
140-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
141-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
142-
SOFTWARE.
143-
1443
===OpenSSL v3.3.1===
1454
Apache License
1465
Version 2.0, January 2004
@@ -343,3 +202,28 @@ distributed under the License is distributed on an "AS IS" BASIS,
343202
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
344203
See the License for the specific language governing permissions and
345204
limitations under the License.
205+
206+
===volk Header Version 280===
207+
208+
This library is distributed under the MIT License.
209+
210+
Copyright (c) 2018-2024 Arseny Kapoulkine
211+
212+
Permission is hereby granted, free of charge, to any person obtaining a copy
213+
of this software and associated documentation files (the "Software"), to deal
214+
in the Software without restriction, including without limitation the rights
215+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
216+
copies of the Software, and to permit persons to whom the Software is
217+
furnished to do so, subject to the following conditions:
218+
219+
The above copyright notice and this permission notice shall be included in all
220+
copies or substantial portions of the Software.
221+
222+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
223+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
224+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
225+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
226+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
227+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
228+
SOFTWARE.
229+
*/

README.md

Lines changed: 35 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# NVIDIA GeForce NOW SDK Release 2.6
1+
# NVIDIA GeForce NOW SDK Release 3.0
22

33
## At a Glance
44

@@ -8,36 +8,30 @@ The GFN SDK provides an ever-growing set of APIs that allows GFN partners to all
88
* Run on a wide range of devices without needing to port to each device and operating system.
99
* Know when they are running inside the secure GeForce NOW environment to allow the bypass of certain system checks such as Display Driver versioning or application binary verification.
1010
* Obtain information about the user's client system, including touch support, to tailor the user's experience to their environment.
11-
* Allow GFN sessions to start from a host application or [GFN Client Deep Link](./doc/SDK-GFN-DEEP-LINKING.pdf), providing streaming of games and applications without needing to build a cloud gaming environment.
11+
* Allow GFN sessions to start from a host application or [GFN Client Deep Link](./doc/GfnSdk-Deep-Linking.md), providing streaming of games and applications without needing to build a cloud gaming environment.
1212
* Allow customers to get into games and applications faster with GFN's Pre-Warm features.
1313

1414
The GFN SDK is ever-evolving to provide easy integration of GeForce NOW features into publisher applications and games, as well as more efficient way to integrate games into the GeForce NOW ecosystem.
1515

16-
Please refer to the [SDK GFN Primer](./doc/SDK-GFN-PRIMER.pdf) for a more detailed overview of the features, and to get up and running quickly with the APIs, refer to the [SDK Quick Start Guide](./doc/SDK-GFN-QUICK-START-GUIDE.pdf) for common integration scenarios, and code snippets to use for APIs.
17-
1816
### What's New in This Release
1917

20-
* Updated LICENSE file to allow partners more freedom on inclusion and distribution of the GFN SDK.
21-
* Reworked the API selection UI in the Sample Launcher to group APIs for easier use.
22-
* Added `GfnCloudCheckType` API to allow certain titles to detect the type of the streaming session.
23-
* Note this this API supports Windows only for now. Linux support will be added in a future release.
24-
* Updated the `CloudCheckAPI` Sample to provide example use of the GfnCloudCheckType API.
25-
* Various bug fixes and improvements.
18+
* Simplified SDK integration by removing the runtime library which used to be required to enable some SDK features.
19+
* This should make future integrations easier and reduce the process overhead of using the SDK.
20+
* Clients now only need to include the SDK header and source files in their project.
21+
* A side effect of the above change is that some older, largely unused client APIs were removed.
22+
* This removal only affects publishing platforms that wanted to integrate the GeForce NOW desktop client into their workflows.
23+
* Those requiring this functionally should refer to the GFN Client SDK which offers a much richer and more robust method of integrating a GFN client into other applications.
24+
* Removed the SampleLauncher sample which was designed to showcase the above APIs but added a significant overhead to build times.
25+
* Added a set of Editbox APIs; a cleaner, refactored version of existing SetActionZone APIs. These APIs are functionally equivalent.
26+
* Converted documentation from PDF & html to markdown format for easier viewing on github.
27+
* Various fixes and improvements.
2628

2729
## GeForce NOW Developer Portal
2830

2931
* Please [contact us](mailto:[email protected]) to register your organization or game with the GeForce NOW Developer Portal.
3032

3133
## Development Guide
3234

33-
### Software Stack
34-
35-
![Software Stack](./doc/img/software_stack.png)
36-
37-
Each feature has different integration points. Some features define REST Web APIs, while others integrate into the game or publisher application with native C interfaces. Refer to documentation for each feature in the doc folder.
38-
39-
Some features require a compatible version of GeForce NOW to be installed on the client system. The integrated GFN SDK components are designed to take care of downloading and installing GeForce NOW client when needed.
40-
4135
### GeForce NOW SDK Package
4236

4337
The distribution is laid out as below:
@@ -46,39 +40,25 @@ The distribution is laid out as below:
4640
├─── CMakeLists.txt
4741
├─── CMakePresets.json
4842
├─── LICENSE
49-
├─── LICENSE.samplelauncher.thirdparty
5043
├─── LICENSE.thirdparty
5144
├─── README.md
52-
|
5345
├─── doc
54-
| │ SDK-GFN-ACCOUNT-LINKING-SSO-GUIDE.pdf
55-
| │ SDK-GFN-CLOUD-API.pdf
56-
| │ SDK-GFN-DEEP-LINKING.pdf
57-
| │ SDK-GFN-MOBILE-TOUCH-INTEGRATION-GUIDE.pdf
58-
| │ SDK-GFN-IP-API-GUIDE.pdf
59-
| │ SDK-GFN-PRIMER.pdf
60-
| │ SDK-GFN-QUICK-START-GUIDE.pdf
61-
| │ SDK-GFN-UNREALENGINE-INTEGRATION-GUIDE.pdf
62-
| └───SDK-GFN-RUNTIME
63-
| └───index.html
64-
|
65-
├───include
66-
│ GfnRuntimeSdk_CAPI.h
67-
│ GfnRuntimeSdk_Wrapper.c
68-
│ GfnRuntimeSdk_Wrapper.h
69-
│ GfnSdk.h
70-
│ GfnSdk_SecureLoadLibrary.c
71-
│ GfnSdk_SecureLoadLibrary.h
46+
│ | GfnSdk-Account-Linking-SSO.md
47+
│ | GfnSdk-API-Definitions.md
48+
│ | GfnSdk-Cloud-API.md
49+
│ | GfnSdk-Deep-Linking.md
50+
│ | GfnSdk-Mobile-Touch-Integration.md
51+
│ | GfnSdk-IP-API.md
52+
│ | GfnSdk-Quick-Start.md
53+
│ | GfnSdk-Unreal-Engine-Integration.md
7254
73-
├───linux
74-
│ └───x64
75-
│ GfnRuntimeSdk.so
76-
├───win
77-
│ ├───x64
78-
│ │ GfnRuntimeSdk.dll
79-
│ │
80-
│ └───x86
81-
│ GfnRuntimeSdk.dll
55+
├───include
56+
│ | GfnRuntimeSdk_CAPI.h
57+
│ | GfnRuntimeSdk_Wrapper.c
58+
│ | GfnRuntimeSdk_Wrapper.h
59+
│ | GfnSdk.h
60+
│ | GfnSdk_SecureLoadLibrary.c
61+
│ | GfnSdk_SecureLoadLibrary.h
8262
8363
└───samples
8464
| README.md
@@ -88,19 +68,17 @@ The distribution is laid out as below:
8868
├───CubeSample
8969
├───OpenClientBrowser
9070
├───PartnerDataAPI
91-
├───PreWarmSample
92-
├───SampleLauncher
93-
└───SDKDllDirectRefSample
71+
└───PreWarmSample
9472
9573
```
9674

9775
## SDK Build Overview
9876

99-
The components that are needed to use the GeForce NOW SDK in your application
100-
come pre-built, and do not require any additional build steps to use in your
101-
project(s). Refer to the SDK Primer and Quick Start guides located in the ./doc
102-
folder for more info on integrating the SDK and calling the APIs in your
103-
applications.
77+
The GeForce NOW SDK comes as a set of headers and source code to be included in
78+
your project(s). Refer to the Quick Start guide located in the ./doc folder for
79+
more info on integrating the SDK and calling the APIs in your applications.
80+
You can also refer to the source code of the included sample projects located
81+
under ./samples for working code on integrating and calling the APIs.
10482

10583
If you wish to build the samples included in this SDK distribution to use as
10684
examples on how to call the GeForce NOW SDK's APIs on either Windows or Linux,
@@ -128,7 +106,7 @@ follow the instructions on the website.
128106

129107
You will also need Visual Studio installed, along with the Visual Studio
130108
Developer Comand Prompt tools installed. Finally, you will need to have
131-
Visual Studios command line build tools available as part of your PATH.
109+
Visual Studio's command line build tools available as part of your PATH.
132110

133111
Once these tools are configured, open a command prompt to the root of the
134112
GeForce NOW SDK distribution package, and use cmake to configure the makefiles
@@ -202,4 +180,4 @@ This will produce the build in a subfolder corresponding to the name of the
202180
sample under "/samples" in the current directory. You can then run the sample
203181
from the subfolder. Example:
204182

205-
./_out/x64-linux-release/samples/SampleLauncher/SampleLauncher
183+
./_out/x64-linux-release/samples/CloudCheckAPI/CloudCheckAPI

0 commit comments

Comments
 (0)