Chromium Code Reviews| Index: cc/ScrollbarLayerChromium.cpp |
| diff --git a/cc/ScrollbarLayerChromium.cpp b/cc/ScrollbarLayerChromium.cpp |
| index 4f3a09fa5e47e6f2b4ff938adb24fb727fbff76d..5e3f7824ba86197441f2fcf5372eb18db7ac2954 100644 |
| --- a/cc/ScrollbarLayerChromium.cpp |
| +++ b/cc/ScrollbarLayerChromium.cpp |
| @@ -10,6 +10,7 @@ |
| #include "base/basictypes.h" |
| #include "BitmapCanvasLayerTextureUpdater.h" |
| +#include "caching_bitmap_canvas_layer_texture_updater.h" |
| #include "CCLayerTreeHost.h" |
| #include "CCScrollbarLayerImpl.h" |
| #include "CCTextureUpdateQueue.h" |
| @@ -193,20 +194,20 @@ 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()); |
| } |
| @@ -230,6 +231,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 (!static_cast<CachingBitmapCanvasLayerTextureUpdater*>(painter)->PixelsDidChange()) |
|
enne (OOO)
2012/10/03 18:05:26
Please change the signature on updatePart to have
wjmaclean
2012/10/03 19:14:59
Hmm, no, I don't think so. I'd have to change the
|
| + return; |
| + |
| texture->prepareRect(rect, stats); |
| IntSize destOffset(0, 0); |