summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
commitad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (patch)
treeb34b0daceb7c8e7fdde4b4ec43650ab7caadb0a9 /Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp
parent03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (diff)
downloadqtwebkit-ad0d549d4cc13433f77c1ac8f0ab379c83d93f28.tar.gz
Imported WebKit commit bb52bf3c0119e8a128cd93afe5572413a8617de9 (http://svn.webkit.org/repository/webkit/trunk@108790)
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp')
-rw-r--r--Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp26
1 files changed, 7 insertions, 19 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp b/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp
index 7cea0b426..ee116c2e9 100644
--- a/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp
@@ -72,29 +72,17 @@ Vector<IntRect> TiledBackingStoreRemoteTile::updateBackBuffer()
if (!isDirty())
return Vector<IntRect>();
- // FIXME: Only use a local buffer when we know the tile is animated (after the first invalidate)
- // and destroy it after a few seconds of inactivity. We can render directly to shared
- // memory in other cases.
- if (!m_localBuffer || m_localBuffer->size() != m_rect.size()) {
- m_localBuffer = ImageBuffer::create(m_rect.size());
- m_localBuffer->context()->translate(-m_rect.x(), -m_rect.y());
- m_localBuffer->context()->scale(FloatSize(m_tiledBackingStore->contentsScale(), m_tiledBackingStore->contentsScale()));
- }
- // This assumes that the GraphicsContext on the ImageBuffer acts synchronously
- // for us to be able to draw this buffer on the ShareableBitmap right after.
- m_tiledBackingStore->client()->tiledBackingStorePaint(m_localBuffer->context(), m_tiledBackingStore->mapToContents(m_dirtyRect));
-
- RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(m_rect.size(), ShareableBitmap::SupportsAlpha);
+ RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(m_dirtyRect.size(), m_tiledBackingStore->supportsAlpha() ? ShareableBitmap::SupportsAlpha : 0);
OwnPtr<GraphicsContext> graphicsContext(bitmap->createGraphicsContext());
- graphicsContext->drawImageBuffer(m_localBuffer.get(), ColorSpaceDeviceRGB, IntPoint(0, 0));
-
-#if PLATFORM(QT)
- // Qt uses BGRA interally, we swizzle to RGBA for OpenGL.
- bitmap->swizzleRGB();
-#endif
+ graphicsContext->translate(-m_dirtyRect.x(), -m_dirtyRect.y());
+ graphicsContext->scale(FloatSize(m_tiledBackingStore->contentsScale(), m_tiledBackingStore->contentsScale()));
+ m_tiledBackingStore->client()->tiledBackingStorePaint(graphicsContext.get(), m_tiledBackingStore->mapToContents(m_dirtyRect));
UpdateInfo updateInfo;
updateInfo.updateRectBounds = m_rect;
+ IntRect updateRect = m_dirtyRect;
+ updateRect.move(-m_rect.x(), -m_rect.y());
+ updateInfo.updateRects.append(updateRect);
updateInfo.updateScaleFactor = m_tiledBackingStore->contentsScale();
bitmap->createHandle(updateInfo.bitmapHandle);