Stay organized with collections
Save and categorize content based on your preferences.
After you've downloaded the library onto your
machine and have checked it into your source control system, make the following
changes to your project's build settings.
Static library
Do the following steps to link your project to the static library:
Add gamesdk/include to your compiler include paths.
Include swappy/swappyGL.h for integration with OpenGL
ES. In most cases, the header file contains all the functions you need to
integrate the library into your engine.
Add a path of the following form in your linker library paths:
For example: gamesdk/libs/arm64-v8a_API24_NDK17_cpp_static_Release
Add -lswappy_static to your linker command.
Shared library
The above steps statically link against a version of the Frame Pacing library
compiled for the given ABI, API level, NDK and STL combination. If the combination
is not available for your settings, you can instead link against the shared
library:
Follow steps 1 and 2 from the previous section to update your compiler include paths
and use the appropriate header file.
Add a path of the following form in your linker library paths:
Static linking will give you a much smaller code footprint as you don’t need to
bundle the libswappy.so shared library.
Using CMake (static library only)
If you are using CMake, see the gamesdk/samples/bouncyball/app/CMakeLists.txt
file in the downloaded library
for an example CMake configuration. It includes a utility file, gamesdk/samples/gamesdk.cmake,
that performs final checks, adds the proper compiler include paths and
generates a target that you can use to link the library.
To use this utility, do the following:
Include this file in your CMakeLists.txt:
include("path/to/gamesdk/samples/gamesdk.cmake")
Call the add_gamesdk_target function with the folder containing the gamesdk:
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
In your target_link_libraries for your native library, add swappy as a
dependency:
target_link_libraries(native-lib swappy ...)
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["After you've [downloaded the library](/games/sdk/frame-pacing/opengl) onto your\nmachine and have checked it into your source control system, make the following\nchanges to your project's build settings.\n\nStatic library\n\nDo the following steps to link your project to the static library:\n\n1. Add `gamesdk/include` to your compiler include paths.\n2. Include `swappy/swappyGL.h` for integration with OpenGL ES. In most cases, the header file contains all the functions you need to integrate the library into your engine.\n3. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release\n ```\n\n For example: `gamesdk/libs/arm64-v8a_API24_NDK17_cpp_static_Release`\n4. Add `-lswappy_static` to your linker command.\n\nShared library\n\nThe above steps statically link against a version of the Frame Pacing library\ncompiled for the given ABI, API level, NDK and STL combination. If the combination\nis not available for your settings, you can instead link against the shared\nlibrary:\n\n1. Follow steps 1 and 2 from the previous section to update your compiler include paths and use the appropriate header file.\n2. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release/lib/swappy\n ```\n3. Add `-lswappy` to your linker command.\n\nStatic linking will give you a much smaller code footprint as you don't need to\nbundle the `libswappy.so` shared library.\n\nUsing CMake (static library only)\n\nIf you are using CMake, see the `gamesdk/samples/bouncyball/app/CMakeLists.txt`\nfile in the [downloaded library](/games/sdk/frame-pacing/opengl)\nfor an example CMake configuration. It includes a utility file, `gamesdk/samples/gamesdk.cmake`,\nthat performs final checks, adds the proper compiler include paths and\ngenerates a target that you can use to link the library.\n\nTo use this utility, do the following:\n\n1. Include this file in your CMakeLists.txt: `include(\"`\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`/samples/gamesdk.cmake\")`\n2. Call the `add_gamesdk_target` function with the folder containing the gamesdk: `add_gamesdk_target(PACKAGE_DIR `\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`)`\n3. In your `target_link_libraries` for your native library, add `swappy` as a dependency: `\n target_link_libraries(native-lib swappy ...)\n `\n\n| **Note:** The path to the gamesdk used for `include` and `add_gamesdk_target` can either be absolute (for example, `/home/yourusername/gamesdk` or `C:\\Android\\gamesdk`) or relative to the `CMakeLists.txt` file.\n\nFor advanced usage of CMake, see the [`gamesdk.cmake` source file](https://android.googlesource.com/platform/frameworks/opt/gamesdk/+/refs/heads/master/samples/gamesdk.cmake)."]]