diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2017-01-27 08:36:56 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:31:42 +0000 |
commit | 6b406688a4020916ba2966e6e5252d9c1385970f (patch) | |
tree | 65af619b76adb44fee03f2e496a2e4dc5c455dd8 /Source/WebCore/html/HTMLCanvasElement.cpp | |
parent | 46167faa61861b01a0e4e8e774da9febc3c2956e (diff) | |
download | qtwebkit-6b406688a4020916ba2966e6e5252d9c1385970f.tar.gz |
Imported WebKit commit bdab88b903fe1a254c80af20161183976670cd3b
Change-Id: Idc1156f4a64df4e7d89e90d4e03451f004c8ae6d
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebCore/html/HTMLCanvasElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLCanvasElement.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp index e88911b7a..8ea5b0381 100644 --- a/Source/WebCore/html/HTMLCanvasElement.cpp +++ b/Source/WebCore/html/HTMLCanvasElement.cpp @@ -52,6 +52,10 @@ #include <runtime/JSCInlines.h> #include <runtime/JSLock.h> +#if PLATFORM(QT) +#include "QWebPageClient.h" +#endif + #if ENABLE(WEBGL) #include "WebGLContextAttributes.h" #include "WebGLRenderingContextBase.h" @@ -667,7 +671,17 @@ void HTMLCanvasElement::createImageBuffer() const RenderingMode renderingMode = shouldAccelerate(bufferSize) ? Accelerated : Unaccelerated; - setImageBuffer(ImageBuffer::create(size(), renderingMode)); +#if PLATFORM(QT) && ENABLE(ACCELERATED_2D_CANVAS) + if (renderingMode == Accelerated) { + QWebPageClient* client = document().page()->chrome().platformPageClient(); + // The WebKit2 Chrome does not have a pageclient. + QOpenGLContext* context = client ? client->openGLContextIfAvailable() : 0; + setImageBuffer(ImageBuffer::createCompatibleBuffer(size(), 1.0f, ColorSpaceDeviceRGB, context)); + } else +#endif + { + setImageBuffer(ImageBuffer::create(size(), renderingMode)); + } if (!m_imageBuffer) return; m_imageBuffer->context().setShadowsIgnoreTransforms(true); |