From 2d3295df4f52b543fa0d7d9fbd9a78a233bb0ab4 Mon Sep 17 00:00:00 2001 From: "kenneth@webkit.org" Date: Wed, 22 Feb 2012 13:56:24 +0000 Subject: [PATCH] Merge setVisibleRectTrajectoryVector and adjustVisibleRect to the more descriptive coverWithTilesIfNeeded https://bugs.webkit.org/show_bug.cgi?id=79230 Reviewed by Simon Hausmann. Source/WebCore: Both setVisibleRectTrajectoryVector and the adjustVisibleRect are used for initiating re-tiling, so make that more obvious and merge the two. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::coverWithTilesIfNeeded): * platform/graphics/TiledBackingStore.h: (TiledBackingStore): Source/WebKit/qt: * Api/qgraphicswebview.cpp: (QGraphicsWebView::paint): Use coverWithTilesIfNeeded(). Source/WebKit2: Replace use by coverWithTilesIfNeeded(). * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp: (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector): (WebCore::WebGraphicsLayer::adjustVisibleRect): (WebCore::WebGraphicsLayer::computeTransformedVisibleRect): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108491 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 17 +++++++++++++++++ .../WebCore/platform/graphics/TiledBackingStore.cpp | 19 ++++++------------- Source/WebCore/platform/graphics/TiledBackingStore.h | 11 +++++------ Source/WebKit/qt/Api/qgraphicswebview.cpp | 6 +++--- Source/WebKit/qt/ChangeLog | 13 +++++++++++++ Source/WebKit2/ChangeLog | 15 +++++++++++++++ .../WebProcess/WebCoreSupport/WebGraphicsLayer.cpp | 8 ++++---- 7 files changed, 63 insertions(+), 26 deletions(-) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 2d7c950..0146dd3 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,20 @@ +2012-02-22 Kenneth Rohde Christiansen + + Merge setVisibleRectTrajectoryVector and adjustVisibleRect to + the more descriptive coverWithTilesIfNeeded + https://bugs.webkit.org/show_bug.cgi?id=79230 + + Reviewed by Simon Hausmann. + + Both setVisibleRectTrajectoryVector and the adjustVisibleRect are + used for initiating re-tiling, so make that more obvious and merge + the two. + + * platform/graphics/TiledBackingStore.cpp: + (WebCore::TiledBackingStore::coverWithTilesIfNeeded): + * platform/graphics/TiledBackingStore.h: + (TiledBackingStore): + 2012-02-17 Nikolas Zimmermann REGRESSION: unbalanced transparency layers for clipPath diff --git a/Source/WebCore/platform/graphics/TiledBackingStore.cpp b/Source/WebCore/platform/graphics/TiledBackingStore.cpp index 52f1285..41ae545 100644 --- a/Source/WebCore/platform/graphics/TiledBackingStore.cpp +++ b/Source/WebCore/platform/graphics/TiledBackingStore.cpp @@ -68,12 +68,15 @@ void TiledBackingStore::setTileCreationDelay(double delay) m_tileCreationDelay = delay; } -void TiledBackingStore::setVisibleRectTrajectoryVector(const FloatPoint& vector) +void TiledBackingStore::coverWithTilesIfNeeded(const FloatPoint& panningTrajectoryVector) { - if (m_visibleRectTrajectoryVector == vector) + IntRect visibleRect = visibleContentsRect(); + if (m_visibleRectTrajectoryVector == panningTrajectoryVector && m_previousVisibleRect == visibleRect) return; - m_visibleRectTrajectoryVector = vector; + m_visibleRectTrajectoryVector = panningTrajectoryVector; + m_previousVisibleRect = visibleRect; + startTileCreationTimer(); } @@ -161,16 +164,6 @@ void TiledBackingStore::paint(GraphicsContext* context, const IntRect& rect) context->restore(); } -void TiledBackingStore::adjustVisibleRect() -{ - IntRect visibleRect = visibleContentsRect(); - if (m_previousVisibleRect == visibleRect) - return; - m_previousVisibleRect = visibleRect; - - startTileCreationTimer(); -} - IntRect TiledBackingStore::visibleContentsRect() { return mapFromContents(intersection(m_client->tiledBackingStoreVisibleRect(), m_client->tiledBackingStoreContentsRect())); diff --git a/Source/WebCore/platform/graphics/TiledBackingStore.h b/Source/WebCore/platform/graphics/TiledBackingStore.h index f2e2a80..2715b26 100644 --- a/Source/WebCore/platform/graphics/TiledBackingStore.h +++ b/Source/WebCore/platform/graphics/TiledBackingStore.h @@ -44,12 +44,13 @@ public: TiledBackingStore(TiledBackingStoreClient*, PassOwnPtr = TiledBackingStoreBackend::create()); ~TiledBackingStore(); - void adjustVisibleRect(); - TiledBackingStoreClient* client() { return m_client; } + + void coverWithTilesIfNeeded(const FloatPoint& panningTrajectoryVector = FloatPoint()); + float contentsScale() { return m_contentsScale; } void setContentsScale(float); - + bool contentsFrozen() const { return m_contentsFrozen; } void setContentsFrozen(bool); void updateTileBuffers(); @@ -59,11 +60,9 @@ public: IntSize tileSize() { return m_tileSize; } void setTileSize(const IntSize&); - + double tileCreationDelay() const { return m_tileCreationDelay; } void setTileCreationDelay(double delay); - - void setVisibleRectTrajectoryVector(const FloatPoint&); IntRect mapToContents(const IntRect&) const; IntRect mapFromContents(const IntRect&) const; diff --git a/Source/WebKit/qt/Api/qgraphicswebview.cpp b/Source/WebKit/qt/Api/qgraphicswebview.cpp index c1eb529..910d681 100644 --- a/Source/WebKit/qt/Api/qgraphicswebview.cpp +++ b/Source/WebKit/qt/Api/qgraphicswebview.cpp @@ -288,13 +288,13 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* #if USE(TILED_BACKING_STORE) if (WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(page()->mainFrame())->tiledBackingStore()) { // FIXME: We should set the backing store viewport earlier than in paint - backingStore->adjustVisibleRect(); + backingStore->coverWithTilesIfNeeded(); // QWebFrame::render is a public API, bypass it for tiled rendering so behavior does not need to change. - WebCore::GraphicsContext context(painter); + WebCore::GraphicsContext context(painter); page()->mainFrame()->d->renderFromTiledBackingStore(&context, option->exposedRect.toAlignedRect()); painter->setRenderHints(oldHints); return; - } + } #endif #if USE(ACCELERATED_COMPOSITING) && !USE(TEXTURE_MAPPER) page()->mainFrame()->render(painter, d->overlay() ? QWebFrame::ContentsLayer : QWebFrame::AllLayers, option->exposedRect.toAlignedRect()); diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog index 132e975..8f07007 100644 --- a/Source/WebKit/qt/ChangeLog +++ b/Source/WebKit/qt/ChangeLog @@ -1,3 +1,16 @@ +2012-02-22 Kenneth Rohde Christiansen + + Merge setVisibleRectTrajectoryVector and adjustVisibleRect to + the more descriptive coverWithTilesIfNeeded + https://bugs.webkit.org/show_bug.cgi?id=79230 + + Reviewed by Simon Hausmann. + + * Api/qgraphicswebview.cpp: + (QGraphicsWebView::paint): + + Use coverWithTilesIfNeeded(). + 2012-02-22 Ryosuke Niwa Remove the remaining uses of CSSStyleDeclaration in Editor diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog index 6d5b5e1..5c83513 100644 --- a/Source/WebKit2/ChangeLog +++ b/Source/WebKit2/ChangeLog @@ -1,3 +1,18 @@ +2012-02-22 Kenneth Rohde Christiansen + + Merge setVisibleRectTrajectoryVector and adjustVisibleRect to + the more descriptive coverWithTilesIfNeeded + https://bugs.webkit.org/show_bug.cgi?id=79230 + + Reviewed by Simon Hausmann. + + Replace use by coverWithTilesIfNeeded(). + + * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp: + (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector): + (WebCore::WebGraphicsLayer::adjustVisibleRect): + (WebCore::WebGraphicsLayer::computeTransformedVisibleRect): + 2012-02-22 Zalan Bujtas [Qt][WK2] Add frame flattening setting to QWebPreferences. diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp index 26ad739..1e18b71 100644 --- a/Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp +++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp @@ -482,7 +482,7 @@ void WebGraphicsLayer::setRootLayer(bool isRoot) void WebGraphicsLayer::setVisibleContentRectTrajectoryVector(const FloatPoint& trajectoryVector) { if (m_mainBackingStore) - m_mainBackingStore->setVisibleRectTrajectoryVector(trajectoryVector); + m_mainBackingStore->coverWithTilesIfNeeded(trajectoryVector); } void WebGraphicsLayer::setContentsScale(float scale) @@ -628,7 +628,7 @@ void WebGraphicsLayer::setWebGraphicsLayerClient(WebKit::WebGraphicsLayerClient* void WebGraphicsLayer::adjustVisibleRect() { if (m_mainBackingStore) - m_mainBackingStore->adjustVisibleRect(); + m_mainBackingStore->coverWithTilesIfNeeded(); } void WebGraphicsLayer::computeTransformedVisibleRect() @@ -641,9 +641,9 @@ void WebGraphicsLayer::computeTransformedVisibleRect() m_layerTransform.setFlattening(!preserves3D()); m_layerTransform.setChildrenTransform(childrenTransform()); m_layerTransform.combineTransforms(parent() ? toWebGraphicsLayer(parent())->m_layerTransform.combinedForChildren() : TransformationMatrix()); + // The combined transform will be used in tiledBackingStoreVisibleRect. - if (m_mainBackingStore) - m_mainBackingStore->adjustVisibleRect(); + adjustVisibleRect(); } #endif -- 2.7.4