diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
commit | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch) | |
tree | 988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp | |
parent | dd91e772430dc294e3bf478c119ef8d43c0a3358 (diff) | |
download | qtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz |
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp')
-rw-r--r-- | Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp b/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp index ee116c2e9..2125600b1 100644 --- a/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp +++ b/Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp @@ -30,8 +30,8 @@ #include "GraphicsContext.h" #include "ImageBuffer.h" +#include "SurfaceUpdateInfo.h" #include "TiledBackingStoreClient.h" -#include "UpdateInfo.h" using namespace WebCore; @@ -72,26 +72,25 @@ Vector<IntRect> TiledBackingStoreRemoteTile::updateBackBuffer() if (!isDirty()) return Vector<IntRect>(); - RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(m_dirtyRect.size(), m_tiledBackingStore->supportsAlpha() ? ShareableBitmap::SupportsAlpha : 0); - OwnPtr<GraphicsContext> graphicsContext(bitmap->createGraphicsContext()); + SurfaceUpdateInfo updateInfo; + OwnPtr<GraphicsContext> graphicsContext = m_client->beginContentUpdate(m_dirtyRect.size(), updateInfo.surfaceHandle, updateInfo.surfaceOffset); + if (!graphicsContext) + return Vector<IntRect>(); 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); + updateInfo.updateRect = m_dirtyRect; + updateInfo.updateRect.move(-m_rect.x(), -m_rect.y()); + updateInfo.scaleFactor = m_tiledBackingStore->contentsScale(); + graphicsContext.release(); static int id = 0; if (!m_ID) { m_ID = ++id; - m_client->createTile(m_ID, updateInfo); + m_client->createTile(m_ID, updateInfo, m_rect); } else - m_client->updateTile(m_ID, updateInfo); + m_client->updateTile(m_ID, updateInfo, m_rect); m_dirtyRect = IntRect(); return Vector<IntRect>(); |