diff options
author | Andy Nichols <andy.nichols@theqtcompany.com> | 2015-01-06 16:49:34 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@theqtcompany.com> | 2015-01-08 12:42:51 +0200 |
commit | af30f6492bedb0d24a2d5b518e4e01f000852520 (patch) | |
tree | 810d474df63c831aa3f2e119b6b417860f6c9826 /src/plugins | |
parent | 5c4c7fe9b4a111d5e6071b67c3813b05c096e8c7 (diff) |
Account for Device Pixel Ratio when rendering QSGLayer
Change-Id: I3570a6ee87786f1459a922bd43f38d1bbbe2c640
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Paul Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/context.cpp | 1 | ||||
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/softwarelayer.cpp | 9 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/scenegraph/softwarecontext/context.cpp b/src/plugins/scenegraph/softwarecontext/context.cpp index dafbfdaae9..f107290f62 100644 --- a/src/plugins/scenegraph/softwarecontext/context.cpp +++ b/src/plugins/scenegraph/softwarecontext/context.cpp @@ -143,7 +143,6 @@ void PixmapRenderer::render() void PixmapRenderer::render(QPixmap *target) { - const QRect rect(0, 0, target->width(), target->height()); target->fill(clearColor()); QPainter painter(target); painter.setRenderHint(QPainter::Antialiasing); diff --git a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp index 61f5aa031f..059278c547 100644 --- a/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp +++ b/src/plugins/scenegraph/softwarecontext/softwarelayer.cpp @@ -185,8 +185,10 @@ void SoftwareLayer::grab() m_renderer->setDevicePixelRatio(m_device_pixel_ratio); m_renderer->setRootNode(static_cast<QSGRootNode *>(root)); - if (m_pixmap.size() != m_size) + if (m_pixmap.size() != m_size) { m_pixmap = QPixmap(m_size); + m_pixmap.setDevicePixelRatio(m_device_pixel_ratio); + } // Render texture. root->markDirty(QSGNode::DirtyForceUpdate); // Force matrix, clip and opacity update. @@ -196,7 +198,10 @@ void SoftwareLayer::grab() m_renderer->setDeviceRect(m_size); m_renderer->setViewportRect(m_size); - m_renderer->m_projectionRect = m_rect.toRect(); + 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, + m_rect.height() * m_device_pixel_ratio); m_renderer->setClearColor(Qt::transparent); m_renderer->renderScene(); |