26 std::vector<std::shared_ptr<fml::Mapping>> shader_mappings = {
27 std::make_shared<fml::NonOwnedMapping>(impeller_entity_shaders_vk_data,
28 impeller_entity_shaders_vk_length),
29 std::make_shared<fml::NonOwnedMapping>(
30 impeller_framebuffer_blend_shaders_vk_data,
31 impeller_framebuffer_blend_shaders_vk_length),
32 std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_vk_data,
33 impeller_modern_shaders_vk_length),
36 auto instance_proc_addr =
37 vulkan_dylib->ResolveFunction<PFN_vkGetInstanceProcAddr>(
38 "vkGetInstanceProcAddr");
40 if (!instance_proc_addr.has_value()) {
56 if (!p_settings.
quiet) {
59 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (Vulkan with "
60 "Validation Layers).";
62 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (Vulkan).";
65 if (context && context->GetDriverInfo()->IsKnownBadDriver()) {
67 <<
"Known bad Vulkan driver encountered, falling back to OpenGLES.";
static std::shared_ptr< impeller::ContextMTL > CreateImpellerContext()
Holds state that is shared across Android surfaces.
void SetImpellerContext(const std::shared_ptr< impeller::Context > &impeller_context)
AndroidContextVKImpeller(const AndroidContext::ContextSettings &settings)
AndroidRenderingAPI RenderingApi() const override
~AndroidContextVKImpeller()
bool IsValid() const override
static std::shared_ptr< ContextVK > Create(Settings settings)
impeller::Flags impeller_flags
bool enable_surface_control
bool enable_surface_control
std::vector< std::shared_ptr< fml::Mapping > > shader_libraries_data
PFN_vkGetInstanceProcAddr proc_address_callback
fml::UniqueFD cache_directory