diff --git a/Libraries/LibGfx/SkiaBackendContext.h b/Libraries/LibGfx/SkiaBackendContext.h index c60cd99868b..91fcef4b5cf 100644 --- a/Libraries/LibGfx/SkiaBackendContext.h +++ b/Libraries/LibGfx/SkiaBackendContext.h @@ -9,14 +9,14 @@ #include #include -#ifdef AK_OS_MACOS -# include -#endif - #ifdef USE_VULKAN # include #endif +#ifdef AK_OS_MACOS +# include +#endif + class GrDirectContext; class SkSurface; @@ -30,11 +30,11 @@ class SkiaBackendContext : public RefCounted { public: #ifdef USE_VULKAN - static RefPtr create_vulkan_context(Gfx::VulkanContext&); + static RefPtr create_vulkan_context(VulkanContext&); #endif #ifdef AK_OS_MACOS - static RefPtr create_metal_context(MetalContext&); + static RefPtr create_metal_context(MetalContext&); #endif SkiaBackendContext() { } diff --git a/Libraries/LibWeb/HTML/TraversableNavigable.cpp b/Libraries/LibWeb/HTML/TraversableNavigable.cpp index 1b9bf7f11e2..6a0cf7f0b22 100644 --- a/Libraries/LibWeb/HTML/TraversableNavigable.cpp +++ b/Libraries/LibWeb/HTML/TraversableNavigable.cpp @@ -29,14 +29,6 @@ TraversableNavigable::TraversableNavigable(GC::Ref page) : Navigable(page) , m_session_history_traversal_queue(vm().heap().allocate()) { -#ifdef AK_OS_MACOS - auto display_list_player_type = page->client().display_list_player_type(); - if (display_list_player_type == DisplayListPlayerType::SkiaGPUIfAvailable) - auto metal_context = Gfx::get_metal_context(); - m_skia_backend_context = Gfx::SkiaBackendContext::create_metal_context(*metal_context); - } -#endif - #ifdef USE_VULKAN auto display_list_player_type = page->client().display_list_player_type(); if (display_list_player_type == DisplayListPlayerType::SkiaGPUIfAvailable) { @@ -49,6 +41,13 @@ TraversableNavigable::TraversableNavigable(GC::Ref page) } } #endif + +#ifdef AK_OS_MACOS + auto display_list_player_type = page->client().display_list_player_type(); + if (display_list_player_type == DisplayListPlayerType::SkiaGPUIfAvailable) + auto metal_context = Gfx::get_metal_context(); + m_skia_backend_context = Gfx::SkiaBackendContext::create_metal_context(*metal_context); +#endif } TraversableNavigable::~TraversableNavigable() = default; @@ -1402,19 +1401,19 @@ void TraversableNavigable::paint(DevicePixelRect const& content_rect, Painting:: switch (page().client().display_list_player_type()) { case DisplayListPlayerType::SkiaGPUIfAvailable: { -#ifdef AK_OS_MACOS - if (m_skia_backend_context && is(target)) { - auto& iosurface_backing_store = static_cast(target); - auto painting_surface = Gfx::PaintingSurface::wrap_iosurface(iosurface_backing_store.iosurface_handle(), *m_skia_backend_context); - Painting::DisplayListPlayerSkia player(*m_skia_backend_context, painting_surface); +#ifdef USE_VULKAN + if (m_skia_backend_context) { + Painting::DisplayListPlayerSkia player(*m_skia_backend_context, target.bitmap()); player.execute(*display_list); return; } #endif -#ifdef USE_VULKAN - if (m_skia_backend_context) { - Painting::DisplayListPlayerSkia player(*m_skia_backend_context, target.bitmap()); +#ifdef AK_OS_MACOS + if (m_skia_backend_context && is(target)) { + auto& iosurface_backing_store = static_cast(target); + auto painting_surface = Gfx::PaintingSurface::wrap_iosurface(iosurface_backing_store.iosurface_handle(), *m_skia_backend_context); + Painting::DisplayListPlayerSkia player(*m_skia_backend_context, painting_surface); player.execute(*display_list); return; } diff --git a/Libraries/LibWeb/HTML/TraversableNavigable.h b/Libraries/LibWeb/HTML/TraversableNavigable.h index 50af2efa73f..7f30026abe5 100644 --- a/Libraries/LibWeb/HTML/TraversableNavigable.h +++ b/Libraries/LibWeb/HTML/TraversableNavigable.h @@ -15,14 +15,14 @@ #include #include -#ifdef AK_OS_MACOS -# include -#endif - #ifdef USE_VULKAN # include #endif +#ifdef AK_OS_MACOS +# include +#endif + namespace Web::HTML { // https://html.spec.whatwg.org/multipage/document-sequences.html#traversable-navigable