1 #pragma once 2 3 #ifndef COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS 4 #define COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS(FLAG) COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_##FLAG 5 #endif 6 7 #ifndef COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_SWAPCHAIN_MUTABLE_FORMAT_EXT 8 #define COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_SWAPCHAIN_MUTABLE_FORMAT_EXT false 9 #endif 10 #ifndef COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_VULKAN_1_4_INSTANCE_API 11 #define COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_VULKAN_1_4_INSTANCE_API false 12 #endif 13 14 #ifdef __cplusplus 15 16 #include <memory> 17 18 namespace com::android::graphics::libvulkan::flags { 19 20 class flag_provider_interface { 21 public: 22 virtual ~flag_provider_interface() = default; 23 virtual bool swapchain_mutable_format_ext() = 0; 24 virtual bool vulkan_1_4_instance_api() = 0; 25 }; 26 27 extern std::unique_ptr<flag_provider_interface> provider_; 28 29 swapchain_mutable_format_ext()30inline bool swapchain_mutable_format_ext() { 31 return COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_SWAPCHAIN_MUTABLE_FORMAT_EXT; 32 } vulkan_1_4_instance_api()33inline bool vulkan_1_4_instance_api() { 34 return COM_ANDROID_GRAPHICS_LIBVULKAN_FLAGS_VULKAN_1_4_INSTANCE_API; 35 } 36 37 } 38 39 extern "C" { 40 #endif // __cplusplus 41 42 43 bool com_android_graphics_libvulkan_flags_swapchain_mutable_format_ext(); 44 bool com_android_graphics_libvulkan_flags_vulkan_1_4_instance_api(); 45 46 #ifdef __cplusplus 47 } // extern "C" 48 #endif 49 50