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); |