From 5fce0f9ecfe7b7eb12d9d2db2b93c9159fa7ca15 Mon Sep 17 00:00:00 2001 From: Powei Feng Date: Mon, 24 Jul 2023 16:50:51 -0700 Subject: [PATCH] filamentapp: fix vulkan dependency (#6987) Fixes #6983 --- .../include/filamentapp/FilamentApp.h | 4 ++++ libs/filamentapp/src/FilamentApp.cpp | 18 +++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libs/filamentapp/include/filamentapp/FilamentApp.h b/libs/filamentapp/include/filamentapp/FilamentApp.h index b3d324b37c..ce1466362a 100644 --- a/libs/filamentapp/include/filamentapp/FilamentApp.h +++ b/libs/filamentapp/include/filamentapp/FilamentApp.h @@ -49,10 +49,12 @@ class ImGuiHelper; class IBL; class MeshAssimp; +#if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) // For customizing the vulkan backend namespace filament::backend { class VulkanPlatform; } +#endif class FilamentApp { public: @@ -250,7 +252,9 @@ private: float mCameraNear = 0.1f; float mCameraFar = 100.0f; +#if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) filament::backend::VulkanPlatform* mVulkanPlatform = nullptr; +#endif }; #endif // TNT_FILAMENT_SAMPLE_FILAMENTAPP_H diff --git a/libs/filamentapp/src/FilamentApp.cpp b/libs/filamentapp/src/FilamentApp.cpp index 2e7bae91ba..ecb8d49315 100644 --- a/libs/filamentapp/src/FilamentApp.cpp +++ b/libs/filamentapp/src/FilamentApp.cpp @@ -44,7 +44,9 @@ #include #endif +#if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) #include +#endif #include @@ -64,6 +66,7 @@ namespace { using namespace filament::backend; +#if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) class FilamentAppVulkanPlatform : public VulkanPlatform { public: FilamentAppVulkanPlatform(std::string const& gpuHint) { @@ -85,6 +88,7 @@ public: private: VulkanPlatform::GPUPreference mPreference; }; +#endif } // anonymous namespace @@ -473,9 +477,11 @@ void FilamentApp::run(const Config& config, SetupCallback setupCallback, Engine::destroy(&mEngine); mEngine = nullptr; +#if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) if (mVulkanPlatform) { delete mVulkanPlatform; } +#endif } // RELATIVE_ASSET_PATH is set inside samples/CMakeLists.txt and used to support multi-configuration @@ -584,11 +590,13 @@ FilamentApp::Window::Window(FilamentApp* filamentApp, #endif if (backend == Engine::Backend::VULKAN) { - mFilamentApp->mVulkanPlatform = new FilamentAppVulkanPlatform(config.vulkanGPUHint); - return Engine::Builder() - .backend(backend) - .platform(mFilamentApp->mVulkanPlatform) - .build(); + #if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) + mFilamentApp->mVulkanPlatform = new FilamentAppVulkanPlatform(config.vulkanGPUHint); + return Engine::Builder() + .backend(backend) + .platform(mFilamentApp->mVulkanPlatform) + .build(); + #endif } return Engine::Builder().backend(backend).build(); };