summaryrefslogtreecommitdiffstats
path: root/src/core/compositor/display_software_output_surface.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-03-02 13:05:26 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-04-04 11:00:11 +0200
commit356f65b87c508c44bf31bc3134eaebfd6f39c6ec (patch)
tree3422b3aed75e4ab99294445e871563345f2b3338 /src/core/compositor/display_software_output_surface.cpp
parentcaf5f383ac53401dc2749f43ce46a208fe8738c9 (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.cpp19
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() {}