diff options
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp | 11 |
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(), |