Chromium Code Reviews| Index: cc/ScrollbarLayerChromium.cpp |
| diff --git a/cc/ScrollbarLayerChromium.cpp b/cc/ScrollbarLayerChromium.cpp |
| index 4f3a09fa5e47e6f2b4ff938adb24fb727fbff76d..67faf20ea2838f3a5084eba134195a5837d5db8b 100644 |
| --- a/cc/ScrollbarLayerChromium.cpp |
| +++ b/cc/ScrollbarLayerChromium.cpp |
| @@ -9,7 +9,6 @@ |
| #include "ScrollbarLayerChromium.h" |
| #include "base/basictypes.h" |
| -#include "BitmapCanvasLayerTextureUpdater.h" |
| #include "CCLayerTreeHost.h" |
| #include "CCScrollbarLayerImpl.h" |
| #include "CCTextureUpdateQueue.h" |
| @@ -193,25 +192,25 @@ void ScrollbarLayerChromium::createTextureUpdaterIfNeeded() |
| m_textureFormat = layerTreeHost()->rendererCapabilities().bestTextureFormat; |
| if (!m_backTrackUpdater) |
| - m_backTrackUpdater = BitmapCanvasLayerTextureUpdater::create(ScrollbarBackgroundPainter::create(m_scrollbar.get(), m_painter, m_geometry.get(), WebKit::WebScrollbar::BackTrackPart)); |
| + m_backTrackUpdater = CachingBitmapCanvasLayerTextureUpdater::Create(ScrollbarBackgroundPainter::create(m_scrollbar.get(), m_painter, m_geometry.get(), WebKit::WebScrollbar::BackTrackPart)); |
| if (!m_backTrack) |
| m_backTrack = m_backTrackUpdater->createTexture(layerTreeHost()->contentsTextureManager()); |
| // Only create two-part track if we think the two parts could be different in appearance. |
| if (m_scrollbar->isCustomScrollbar()) { |
| if (!m_foreTrackUpdater) |
| - m_foreTrackUpdater = BitmapCanvasLayerTextureUpdater::create(ScrollbarBackgroundPainter::create(m_scrollbar.get(), m_painter, m_geometry.get(), WebKit::WebScrollbar::ForwardTrackPart)); |
| + m_foreTrackUpdater = CachingBitmapCanvasLayerTextureUpdater::Create(ScrollbarBackgroundPainter::create(m_scrollbar.get(), m_painter, m_geometry.get(), WebKit::WebScrollbar::ForwardTrackPart)); |
| if (!m_foreTrack) |
| m_foreTrack = m_foreTrackUpdater->createTexture(layerTreeHost()->contentsTextureManager()); |
| } |
| if (!m_thumbUpdater) |
| - m_thumbUpdater = BitmapCanvasLayerTextureUpdater::create(ScrollbarThumbPainter::create(m_scrollbar.get(), m_painter, m_geometry.get())); |
| + m_thumbUpdater = CachingBitmapCanvasLayerTextureUpdater::Create(ScrollbarThumbPainter::create(m_scrollbar.get(), m_painter, m_geometry.get())); |
| if (!m_thumb) |
| m_thumb = m_thumbUpdater->createTexture(layerTreeHost()->contentsTextureManager()); |
| } |
| -void ScrollbarLayerChromium::updatePart(LayerTextureUpdater* painter, LayerTextureUpdater::Texture* texture, const IntRect& rect, CCTextureUpdateQueue& queue, CCRenderingStats& stats) |
| +void ScrollbarLayerChromium::updatePart(CachingBitmapCanvasLayerTextureUpdater* painter, LayerTextureUpdater::Texture* texture, const IntRect& rect, CCTextureUpdateQueue& queue, CCRenderingStats& stats) |
| { |
| // Skip painting and uploading if there are no invalidations and |
| // we already have valid texture data. |
| @@ -230,6 +229,9 @@ void ScrollbarLayerChromium::updatePart(LayerTextureUpdater* painter, LayerTextu |
| float heightScale = static_cast<float>(contentBounds().height()) / bounds().height(); |
| IntRect paintedOpaqueRect; |
| painter->prepareToUpdate(rect, rect.size(), widthScale, heightScale, paintedOpaqueRect, stats); |
| + if (!painter->pixelsDidChange() && texture->texture()->haveBackingTexture()) |
| + return; |
|
jamesr
2012/10/03 20:22:33
place add a TRACE_INSTANT0("cc", ...) here so we c
wjmaclean
2012/10/03 21:30:53
Good plan - done!
|
| + |
| texture->prepareRect(rect, stats); |
| IntSize destOffset(0, 0); |