diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-12-04 16:17:27 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2014-12-17 16:43:22 +0200 |
commit | 1dae7aa22fcd16ff7d3d47c173c8590e4841f141 (patch) | |
tree | cfa772ae483d04630fa97c03204d8fed6b0ecb23 | |
parent | de42b3a21ddb8aadd2f01c3f4c15663f78545ae6 (diff) |
Support QSGLayer::setRect
Carry any non-full rect from the layer to QPainter::setWindow.
This is needed by cc::RenderPass::output_rect in QtWebEngine.
Change-Id: I8ffd7f0b7646e664a225df096de455899338d4ba
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/context.cpp | 1 | ||||
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/context.h | 2 | ||||
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/softwarelayer.cpp | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/scenegraph/softwarecontext/context.cpp b/src/plugins/scenegraph/softwarecontext/context.cpp index d25406ce2d..dafbfdaae9 100644 --- a/src/plugins/scenegraph/softwarecontext/context.cpp +++ b/src/plugins/scenegraph/softwarecontext/context.cpp @@ -147,6 +147,7 @@ void PixmapRenderer::render(QPixmap *target) target->fill(clearColor()); QPainter painter(target); painter.setRenderHint(QPainter::Antialiasing); + painter.setWindow(m_projectionRect); RenderingVisitor(&painter).visitChildren(rootNode()); } diff --git a/src/plugins/scenegraph/softwarecontext/context.h b/src/plugins/scenegraph/softwarecontext/context.h index fc38e7d7e0..92a0f31d8a 100644 --- a/src/plugins/scenegraph/softwarecontext/context.h +++ b/src/plugins/scenegraph/softwarecontext/context.h @@ -66,6 +66,8 @@ public: virtual void render(); void render(QPixmap *target); + + QRect m_projectionRect; }; class RenderContext : public QSGRenderContext diff --git a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp index 037c73a08e..61f5aa031f 100644 --- a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp +++ b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp @@ -196,6 +196,7 @@ void SoftwareLayer::grab() m_renderer->setDeviceRect(m_size); m_renderer->setViewportRect(m_size); + m_renderer->m_projectionRect = m_rect.toRect(); m_renderer->setClearColor(Qt::transparent); m_renderer->renderScene(); |