summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
index 4261a0be2..dff4e0eb1 100644
--- a/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
@@ -114,7 +114,16 @@ void TextureMapperLayerClientQt::renderCompositedLayers(GraphicsContext* context
m_textureMapper->setTextDrawingMode(context->textDrawingMode());
QPainter* painter = context->platformContext();
- const QTransform transform = painter->worldTransform();
+ QTransform transform;
+ if (m_textureMapper->accelerationMode() == TextureMapper::OpenGLMode) {
+ // TextureMapperGL needs to duplicate the entire transform QPainter would do,
+ // including the transforms QPainter would normally do behind the scenes.
+ transform = painter->deviceTransform();
+ } else {
+ // TextureMapperImageBuffer needs a transform that can be used
+ // with QPainter::setWorldTransform.
+ transform = painter->worldTransform();
+ }
const TransformationMatrix matrix(
transform.m11(), transform.m12(), 0, transform.m13(),
transform.m21(), transform.m22(), 0, transform.m23(),