diff --git a/CMakeLists.txt b/CMakeLists.txt index e30aa37a..aba31d12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ option(GRANITE_ASTC_ENCODER_COMPRESSION "Enable astc-encoder texture compression option(GRANITE_TOOLS "Build Granite tools." ON) option(GRANITE_KHR_DISPLAY_ACQUIRE_XLIB "Try to acquire Xlib display when using VK_KHR_display." OFF) option(GRANITE_ANDROID_APK_FILESYSTEM "Use APK file system for assets and builtin files." ON) +option(GRANITE_ANDROID_SWAPPY "Use swappy on Android." OFF) option(GRANITE_SHADER_COMPILER_OPTIMIZE "Optimize SPIR-V." ON) option(GRANITE_VULKAN_SYSTEM_HANDLES "Add system handle support to Vulkan backend." ON) option(GRANITE_RENDERER "Add higher level rendering functionality." ON) diff --git a/application/platforms/CMakeLists.txt b/application/platforms/CMakeLists.txt index 87944f6c..8b981121 100644 --- a/application/platforms/CMakeLists.txt +++ b/application/platforms/CMakeLists.txt @@ -15,7 +15,10 @@ if (ANDROID) target_link_libraries(granite-platform PRIVATE granite-rapidjson android-game-activity games-controller::paddleboat games-frame-pacing::swappy) - target_compile_definitions(granite-platform PRIVATE VK_USE_PLATFORM_ANDROID_KHR HAVE_SWAPPY) + target_compile_definitions(granite-platform PRIVATE VK_USE_PLATFORM_ANDROID_KHR) + if (GRANITE_ANDROID_SWAPPY) + target_compile_definitions(granite-platform PRIVATE HAVE_SWAPPY) + endif() if (GRANITE_ANDROID_APK_FILESYSTEM) target_compile_definitions(granite-platform PRIVATE ANDROID_APK_FILESYSTEM) endif() diff --git a/application/platforms/android/gradle/build.gradle b/application/platforms/android/gradle/build.gradle index 4266f798..0e11791e 100644 --- a/application/platforms/android/gradle/build.gradle +++ b/application/platforms/android/gradle/build.gradle @@ -25,6 +25,7 @@ android { "-DANDROID_CPP_FEATURES=exceptions", "-DGRANITE_SHADER_COMPILER_OPTIMIZE=$$SHADER_OPTIMIZE$$", "-DGRANITE_VULKAN_FOSSILIZE=$$FOSSILIZE$$", + "-DGRANITE_ANDROID_SWAPPY=$$SWAPPY$$", "-DCMAKE_BUILD_TYPE=Debug", "-DANDROID_PLATFORM=android-26", "-DGRANITE_SHIPPING=ON", @@ -47,6 +48,7 @@ android { "-DANDROID_CPP_FEATURES=exceptions", "-DGRANITE_SHADER_COMPILER_OPTIMIZE=$$SHADER_OPTIMIZE$$", "-DGRANITE_VULKAN_FOSSILIZE=$$FOSSILIZE$$", + "-DGRANITE_ANDROID_SWAPPY=$$SWAPPY$$", "-DCMAKE_BUILD_TYPE=Release", "-DANDROID_PLATFORM=android-26", "-DGRANITE_SHIPPING=ON", diff --git a/tools/create_android_build.py b/tools/create_android_build.py index 77a2d1bb..7eb7217f 100755 --- a/tools/create_android_build.py +++ b/tools/create_android_build.py @@ -85,6 +85,9 @@ def main(): parser.add_argument('--fossilize', help = 'Add Fossilize support', action = 'store_true') + parser.add_argument('--swappy', + help = 'Add Swappy support', + action = 'store_true') args = parser.parse_args() abis = ['arm64-v8a'] if args.abis is None else args.abis @@ -173,7 +176,8 @@ def main(): .replace('$$AUDIO$$', 'ON' if args.audio else 'OFF') \ .replace('$$PHYSICS$$', 'ON' if args.physics else 'OFF') \ .replace('$$SHADER_OPTIMIZE$$', 'ON' if args.optimize else 'OFF') \ - .replace('$$FOSSILIZE$$', 'ON' if args.fossilize else 'OFF') + .replace('$$FOSSILIZE$$', 'ON' if args.fossilize else 'OFF') \ + .replace('$$SWAPPY$$', 'ON' if args.swappy else 'OFF') with open(target_build_gradle, 'w') as dump_file: print(data, file = dump_file) diff --git a/viewer/setup_android_build.sh b/viewer/setup_android_build.sh index 1210320c..f2527082 100755 --- a/viewer/setup_android_build.sh +++ b/viewer/setup_android_build.sh @@ -7,4 +7,6 @@ --app-name "Granite glTF Viewer" \ --abis arm64-v8a \ --cmake-lists-toplevel ../CMakeLists.txt \ + --fossilize \ + --swappy \ --assets assets diff --git a/vulkan/CMakeLists.txt b/vulkan/CMakeLists.txt index 65e53b41..ac42cde7 100644 --- a/vulkan/CMakeLists.txt +++ b/vulkan/CMakeLists.txt @@ -93,7 +93,7 @@ if (GRANITE_VULKAN_SPIRV_CROSS) target_compile_definitions(granite-vulkan PRIVATE GRANITE_VULKAN_SPIRV_CROSS=1) endif() -if (ANDROID) +if (ANDROID AND GRANITE_ANDROID_SWAPPY) find_package(games-frame-pacing REQUIRED CONFIG) target_link_libraries(granite-vulkan PRIVATE games-frame-pacing::swappy) target_compile_definitions(granite-vulkan PRIVATE HAVE_SWAPPY)