diff options
Diffstat (limited to 'src/core/compositor/display_skia_output_device.h')
-rw-r--r-- | src/core/compositor/display_skia_output_device.h | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/src/core/compositor/display_skia_output_device.h b/src/core/compositor/display_skia_output_device.h index e2818d604..e6a97b810 100644 --- a/src/core/compositor/display_skia_output_device.h +++ b/src/core/compositor/display_skia_output_device.h @@ -4,15 +4,15 @@ #ifndef DISPLAY_SKIA_OUTPUT_DEVICE_H #define DISPLAY_SKIA_OUTPUT_DEVICE_H -#include "compositor_resource_fence.h" +#include <QtCore/QMutex> +#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h> + #include "compositor.h" -#include "base/threading/thread_task_runner_handle.h" +#include "base/task/single_thread_task_runner.h" #include "components/viz/service/display_embedder/skia_output_device.h" #include "gpu/command_buffer/service/shared_context_state.h" -#include <QMutex> - QT_BEGIN_NAMESPACE class QQuickWindow; QT_END_NAMESPACE @@ -23,18 +23,21 @@ class DisplaySkiaOutputDevice final : public viz::SkiaOutputDevice, public Compo { public: DisplaySkiaOutputDevice(scoped_refptr<gpu::SharedContextState> contextState, + bool requiresAlpha, gpu::MemoryTracker *memoryTracker, DidSwapBufferCompleteCallback didSwapBufferCompleteCallback); ~DisplaySkiaOutputDevice() override; // Overridden from SkiaOutputDevice. void SetFrameSinkId(const viz::FrameSinkId &frame_sink_id) override; - bool Reshape(const SkSurfaceCharacterization &characterization, - const gfx::ColorSpace& colorSpace, + bool Reshape(const SkImageInfo &image_info, + const gfx::ColorSpace &color_space, + int sample_count, float device_scale_factor, gfx::OverlayTransform transform) override; - void SwapBuffers(BufferPresentedCallback feedback, - viz::OutputSurfaceFrame frame) override; + void Present(const absl::optional<gfx::Rect>& update_rect, + BufferPresentedCallback feedback, + viz::OutputSurfaceFrame frame) override; void EnsureBackbuffer() override; void DiscardBackbuffer() override; SkSurface *BeginPaint(std::vector<GrBackendSemaphore> *semaphores) override; @@ -43,26 +46,22 @@ public: // Overridden from Compositor. void swapFrame() override; void waitForTexture() override; - int textureId() override; + QSGTexture *texture(QQuickWindow *win, uint32_t texOpts) override; + bool textureIsFlipped() override; QSize size() override; - bool hasAlphaChannel() override; + bool requiresAlphaChannel() override; float devicePixelRatio() override; -#if QT_CONFIG(webengine_vulkan) - VkImage vkImage(QQuickWindow *win) override; - VkImageLayout vkImageLayout() override; - void releaseVulkanResources(QQuickWindow *win) override; -#endif private: struct Shape { - SkSurfaceCharacterization characterization; + SkImageInfo imageInfo; float devicePixelRatio; gfx::ColorSpace colorSpace; bool operator==(const Shape &that) const { - return (characterization == that.characterization && + return (imageInfo == that.imageInfo && devicePixelRatio == that.devicePixelRatio && colorSpace == that.colorSpace); } @@ -81,12 +80,8 @@ private: std::unique_ptr<Buffer> m_backBuffer; viz::OutputSurfaceFrame m_frame; bool m_readyToUpdate = false; + bool m_requiresAlpha; scoped_refptr<base::SingleThreadTaskRunner> m_taskRunner; - -#if QT_CONFIG(webengine_vulkan) - VkImage m_importedImage = VK_NULL_HANDLE; - VkDeviceMemory m_importedImageMemory = VK_NULL_HANDLE; -#endif // QT_CONFIG(webengine_vulkan) }; } // namespace QtWebEngineCore |