diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2023-03-02 13:05:26 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2023-04-04 11:00:11 +0200 |
commit | 356f65b87c508c44bf31bc3134eaebfd6f39c6ec (patch) | |
tree | 3422b3aed75e4ab99294445e871563345f2b3338 /src/core/compositor/display_software_output_surface.cpp | |
parent | caf5f383ac53401dc2749f43ce46a208fe8738c9 (diff) |
Adapt to painting cleanup
Pass through alphaChannel requirement correctly, instead of having a
nonfunctional hasAlphaChannel().
Pick-to: 6.5
Change-Id: I99adb17aa38fd91ea8fd93b86a352bc476690837
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src/core/compositor/display_software_output_surface.cpp')
-rw-r--r-- | src/core/compositor/display_software_output_surface.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/core/compositor/display_software_output_surface.cpp b/src/core/compositor/display_software_output_surface.cpp index 2277dfea3..10872da27 100644 --- a/src/core/compositor/display_software_output_surface.cpp +++ b/src/core/compositor/display_software_output_surface.cpp @@ -20,7 +20,7 @@ class DisplaySoftwareOutputSurface::Device final : public viz::SoftwareOutputDev public Compositor { public: - Device(); + Device(bool requiresAlpha); // Overridden from viz::SoftwareOutputDevice. void Resize(const gfx::Size &sizeInPixels, float devicePixelRatio) override; @@ -31,20 +31,23 @@ public: QImage image() override; float devicePixelRatio() override; QSize size() override; - bool hasAlphaChannel() override; + bool requiresAlphaChannel() override; private: mutable QMutex m_mutex; float m_devicePixelRatio = 1.0; + bool m_requiresAlpha; scoped_refptr<base::SingleThreadTaskRunner> m_taskRunner; SwapBuffersCallback m_swapCompletionCallback; QImage m_image; float m_imageDevicePixelRatio = 1.0; }; -DisplaySoftwareOutputSurface::Device::Device() +DisplaySoftwareOutputSurface::Device::Device(bool requiresAlpha) : Compositor(Type::Software) -{} + , m_requiresAlpha(requiresAlpha) +{ +} void DisplaySoftwareOutputSurface::Device::Resize(const gfx::Size &sizeInPixels, float devicePixelRatio) { @@ -122,13 +125,13 @@ QSize DisplaySoftwareOutputSurface::Device::size() return m_image.size(); } -bool DisplaySoftwareOutputSurface::Device::hasAlphaChannel() +bool DisplaySoftwareOutputSurface::Device::requiresAlphaChannel() { - return m_image.format() == QImage::Format_ARGB32_Premultiplied; + return m_requiresAlpha; } -DisplaySoftwareOutputSurface::DisplaySoftwareOutputSurface() - : SoftwareOutputSurface(std::make_unique<Device>()) +DisplaySoftwareOutputSurface::DisplaySoftwareOutputSurface(bool requiresAlpha) + : SoftwareOutputSurface(std::make_unique<Device>(requiresAlpha)) {} DisplaySoftwareOutputSurface::~DisplaySoftwareOutputSurface() {} |