aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/scenegraph/softwarecontext/softwarelayer.cpp')
-rw-r--r--src/plugins/scenegraph/softwarecontext/softwarelayer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp
index 2ee14610ce..13531c5549 100644
--- a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp
+++ b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp
@@ -26,6 +26,8 @@ SoftwareLayer::SoftwareLayer(QSGRenderContext *renderContext)
, m_context(renderContext)
, m_renderer(0)
, m_device_pixel_ratio(1)
+ , m_mirrorHorizontal(false)
+ , m_mirrorVertical(false)
, m_live(true)
, m_grab(true)
, m_recursive(false)
@@ -151,6 +153,22 @@ void SoftwareLayer::setDevicePixelRatio(qreal ratio)
m_device_pixel_ratio = ratio;
}
+void SoftwareLayer::setMirrorHorizontal(bool mirror)
+{
+ if (m_mirrorHorizontal == mirror)
+ return;
+ m_mirrorHorizontal = mirror;
+ markDirtyTexture();
+}
+
+void SoftwareLayer::setMirrorVertical(bool mirror)
+{
+ if (m_mirrorVertical == mirror)
+ return;
+ m_mirrorVertical = mirror;
+ markDirtyTexture();
+}
+
void SoftwareLayer::markDirtyTexture()
{
m_dirtyTexture = true;
@@ -198,6 +216,8 @@ void SoftwareLayer::grab()
m_renderer->setDeviceRect(m_size);
m_renderer->setViewportRect(m_size);
+ m_renderer->m_mirrorHorizontal = m_mirrorHorizontal;
+ m_renderer->m_mirrorVertical = m_mirrorVertical;
m_renderer->m_projectionRect = QRect(m_rect.x() * m_device_pixel_ratio,
m_rect.y() * m_device_pixel_ratio,
m_rect.width() * m_device_pixel_ratio,