Changeset 100060 in webkit
- Timestamp:
- Nov 11, 2011, 6:56:27 PM (15 years ago)
- Location:
- trunk/Source
- Files:
-
- 14 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/platform/graphics/chromium/LayerChromium.cpp (modified) (1 diff)
-
WebCore/platform/graphics/chromium/LayerChromium.h (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerImpl.h (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp (modified) (2 diffs)
-
WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.h (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp (modified) (5 diffs)
-
WebCore/platform/graphics/chromium/cc/CCThreadProxy.h (modified) (1 diff)
-
WebKit/chromium/ChangeLog (modified) (1 diff)
-
WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r100059 r100060 1 2011-11-11 James Robinson <jamesr@chromium.org> 2 3 Rollout http://trac.webkit.org/changeset/99844 4 Solution is more complicated than the problem it was intended to solve. 5 6 * platform/graphics/chromium/LayerChromium.cpp: 7 * platform/graphics/chromium/LayerChromium.h: 8 * platform/graphics/chromium/cc/CCLayerImpl.cpp: 9 * platform/graphics/chromium/cc/CCLayerImpl.h: 10 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 11 (WebCore::CCLayerTreeHost::applyScrollAndScale): 12 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 13 * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: 14 * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h: 15 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: 16 (WebCore::CCLayerTreeHostImpl::processScrollDeltas): 17 * platform/graphics/chromium/cc/CCThreadProxy.cpp: 18 (WebCore::CCThreadProxy::beginFrameAndCommit): 19 (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread): 20 * platform/graphics/chromium/cc/CCThreadProxy.h: 21 1 22 2011-11-11 Levi Weintraub <leviw@chromium.org> 2 23 -
trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.cpp
r99844 r100060 105 105 } 106 106 107 void LayerChromium::applyScrollAndScale(const IntSize& scrollDelta, float pageScale)108 {109 // FIXME: apply scroll delta not just to CCLayerTreeHostClient.110 if (!layerTreeHost() || !layerTreeHost()->client())111 return;112 113 layerTreeHost()->client()->applyScrollAndScale(scrollDelta, pageScale);114 }115 116 107 void LayerChromium::setLayerTreeHost(CCLayerTreeHost* host) 117 108 { -
trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.h
r99844 r100060 136 136 137 137 IntSize scrollDelta() const { return IntSize(); } 138 void applyScrollAndScale(const IntSize& scrollDelta, float pageScale);139 138 140 139 bool doubleSided() const { return m_doubleSided; } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp
r99844 r100060 396 396 } 397 397 398 void CCLayerImpl::applyScrollAndScale(const IntSize& scrollDelta, float pageScale)399 {400 m_scrollDelta -= scrollDelta;401 }402 403 398 void CCLayerImpl::setDoubleSided(bool doubleSided) 404 399 { -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h
r99844 r100060 163 163 void setScrollable(bool scrollable) { m_scrollable = scrollable; } 164 164 165 void applyScrollAndScale(const IntSize& scrollDelta, float pageScale);166 167 165 const IntRect& visibleLayerRect() const { return m_visibleLayerRect; } 168 166 void setVisibleLayerRect(const IntRect& visibleLayerRect) { m_visibleLayerRect = visibleLayerRect; } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r99844 r100060 462 462 } 463 463 464 void CCLayerTreeHost::applyScrollAndScale(const CCScrollAndScaleSet& info) 465 { 466 // FIXME: pushing scroll offsets to non-root layers not implemented 467 if (!info.scrolls.size()) 468 return; 469 470 ASSERT(info.scrolls.size() == 1); 471 IntSize scrollDelta = info.scrolls[0].scrollDelta; 472 m_client->applyScrollAndScale(scrollDelta, info.pageScale); 473 } 474 464 475 void CCLayerTreeHost::startRateLimiter(GraphicsContext3D* context) 465 476 { -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r99844 r100060 175 175 176 176 void updateCompositorResources(GraphicsContext3D*, CCTextureUpdater&); 177 void applyScrollAndScale(const CCScrollAndScaleSet&); 177 178 void startRateLimiter(GraphicsContext3D*); 178 179 void stopRateLimiter(GraphicsContext3D*); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp
r99844 r100060 434 434 } 435 435 436 template<typename LayerType>437 static void applyScrollAndScaleInternal(LayerType* rootLayer, const CCScrollAndScaleSet& scrollInfo)438 {439 if (!rootLayer || !scrollInfo.scrolls.size())440 return;441 442 // FIXME: apply scroll deltas from layer other than the root.443 ASSERT(scrollInfo.scrolls.size() == 1 && scrollInfo.scrolls[0].layerId == rootLayer->id());444 rootLayer->applyScrollAndScale(scrollInfo.scrolls[0].scrollDelta, scrollInfo.pageScale);445 }446 447 436 void CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(LayerChromium* layer, LayerChromium* rootLayer, const TransformationMatrix& parentMatrix, const TransformationMatrix& fullHierarchyMatrix, Vector<RefPtr<LayerChromium> >& renderSurfaceLayerList, Vector<RefPtr<LayerChromium> >& layerList, int maxTextureSize) 448 437 { … … 455 444 } 456 445 457 void CCLayerTreeHostCommon::applyScrollAndScale(LayerChromium* rootLayer, const CCScrollAndScaleSet& scrollInfo)458 {459 applyScrollAndScaleInternal(rootLayer, scrollInfo);460 }461 462 void CCLayerTreeHostCommon::applyScrollAndScale(CCLayerImpl* rootLayer, const CCScrollAndScaleSet& scrollInfo)463 {464 applyScrollAndScaleInternal(rootLayer, scrollInfo);465 }466 467 446 } // namespace WebCore -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.h
r99844 r100060 50 50 IntSize scrollDelta; 51 51 }; 52 struct ScrollAndScaleSet {53 Vector<ScrollUpdateInfo> scrolls;54 float pageScale;55 };56 57 static void applyScrollAndScale(LayerChromium* rootLayer, const ScrollAndScaleSet& scrollInfo);58 static void applyScrollAndScale(CCLayerImpl* rootLayer, const ScrollAndScaleSet& scrollInfo);59 52 }; 60 53 61 typedef CCLayerTreeHostCommon::ScrollAndScaleSet CCScrollAndScaleSet; 54 struct CCScrollAndScaleSet { 55 Vector<CCLayerTreeHostCommon::ScrollUpdateInfo> scrolls; 56 float pageScale; 57 }; 62 58 63 59 template<typename LayerType> -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
r99844 r100060 339 339 scrollInfo->scrolls.append(scroll); 340 340 341 m_scrollLayerImpl->setScrollPosition(m_scrollLayerImpl->scrollPosition() + m_scrollLayerImpl->scrollDelta()); 342 m_scrollLayerImpl->setPosition(m_scrollLayerImpl->position() - m_scrollLayerImpl->scrollDelta()); 343 m_scrollLayerImpl->setScrollDelta(IntSize()); 344 341 345 return scrollInfo.release(); 342 346 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
r100055 r100060 33 33 #include "cc/CCInputHandler.h" 34 34 #include "cc/CCLayerTreeHost.h" 35 #include "cc/CCLayerTreeHostCommon.h"36 35 #include "cc/CCMainThreadTask.h" 37 36 #include "cc/CCScheduler.h" … … 356 355 357 356 // Scroll deltas need to be applied even if the commit will be dropped. 358 CCLayerTreeHostCommon::applyScrollAndScale(m_layerTreeHost->rootLayer(), *scrollInfo);357 m_layerTreeHost->applyScrollAndScale(*scrollInfo.get()); 359 358 360 359 // Drop beginFrameAndCommit calls that occur out of sequence. See createBeginFrameAndCommitTaskOnImplThread for … … 388 387 TRACE_EVENT("commit", this, 0); 389 388 CCCompletionEvent completion; 390 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::beginFrameCompleteOnImplThread, AllowCrossThreadAccess(&completion) , scrollInfo));389 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::beginFrameCompleteOnImplThread, AllowCrossThreadAccess(&completion))); 391 390 completion.wait(); 392 391 } … … 397 396 } 398 397 399 void CCThreadProxy::beginFrameCompleteOnImplThread(CCCompletionEvent* completion , PassOwnPtr<CCScrollAndScaleSet> scrollInfo)398 void CCThreadProxy::beginFrameCompleteOnImplThread(CCCompletionEvent* completion) 400 399 { 401 400 TRACE_EVENT("CCThreadProxy::beginFrameCompleteOnImplThread", this, 0); … … 414 413 m_currentTextureUpdaterOnImplThread = adoptPtr(new CCTextureUpdater(m_layerTreeHostImpl->contentsTextureAllocator())); 415 414 m_layerTreeHost->updateCompositorResources(m_layerTreeHostImpl->context(), *m_currentTextureUpdaterOnImplThread); 416 CCLayerTreeHostCommon::applyScrollAndScale(m_layerTreeHostImpl->scrollLayer(), *scrollInfo);417 415 418 416 m_schedulerOnImplThread->beginFrameComplete(); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
r100055 r100060 94 94 PassOwnPtr<CCMainThread::Task> createBeginFrameAndCommitTaskOnImplThread(); 95 95 void obtainBeginFrameAndCommitTaskFromCCThread(CCCompletionEvent*, CCMainThread::Task**); 96 void beginFrameCompleteOnImplThread(CCCompletionEvent* , PassOwnPtr<CCScrollAndScaleSet>);96 void beginFrameCompleteOnImplThread(CCCompletionEvent*); 97 97 void requestReadbackOnImplThread(ReadbackRequest*); 98 98 void finishAllRenderingOnImplThread(CCCompletionEvent*); -
trunk/Source/WebKit/chromium/ChangeLog
r100054 r100060 1 2011-11-11 James Robinson <jamesr@chromium.org> 2 3 Rollout http://trac.webkit.org/changeset/99844 4 Solution is more complicated than the problem it was intended to solve. 5 6 * tests/CCLayerTreeHostImplTest.cpp: 7 (WebKit::TEST_F): 8 1 9 2011-11-11 Iain Merrick <husky@google.com> 2 10 -
trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
r99865 r100060 31 31 #include "MockWebGraphicsContext3D.h" 32 32 #include "cc/CCLayerImpl.h" 33 #include "cc/CCLayerTreeHostCommon.h"34 33 #include "cc/CCSingleThreadProxy.h" 35 34 #include <gtest/gtest.h> … … 127 126 128 127 scrollInfo = m_hostImpl->processScrollDeltas(); 129 ASSERT_EQ(root->scrollPosition(), scrollPosition );128 ASSERT_EQ(root->scrollPosition(), scrollPosition + scrollDelta); 130 129 ASSERT_EQ(scrollInfo->scrolls.size(), 1u); 131 130 expectContains(*scrollInfo.get(), root->id(), scrollDelta); 131 expectClearedScrollDeltasRecursive(root.get()); 132 132 133 133 IntSize scrollDelta2(-5, 27); 134 134 root->scrollBy(scrollDelta2); 135 135 scrollInfo = m_hostImpl->processScrollDeltas(); 136 ASSERT_EQ(root->scrollPosition(), scrollPosition );136 ASSERT_EQ(root->scrollPosition(), scrollPosition + scrollDelta + scrollDelta2); 137 137 ASSERT_EQ(scrollInfo->scrolls.size(), 1u); 138 expectContains(*scrollInfo, root->id(), scrollDelta + scrollDelta2); 139 EXPECT_EQ(root->scrollDelta(), scrollDelta + scrollDelta2); 140 141 CCLayerTreeHostCommon::applyScrollAndScale(m_hostImpl->rootLayer(), *scrollInfo); 138 expectContains(*scrollInfo.get(), root->id(), scrollDelta2); 139 expectClearedScrollDeltasRecursive(root.get()); 140 142 141 root->scrollBy(IntSize()); 143 142 scrollInfo = m_hostImpl->processScrollDeltas(); 144 ASSERT_EQ(root->scrollPosition(), scrollPosition );143 ASSERT_EQ(root->scrollPosition(), scrollPosition + scrollDelta + scrollDelta2); 145 144 ASSERT_EQ(scrollInfo->scrolls.size(), 0u); 146 145 expectClearedScrollDeltasRecursive(root.get());
Note:
See TracChangeset
for help on using the changeset viewer.