Chromium Code Reviews| Index: cc/CCLayerTreeHost.cpp |
| diff --git a/cc/CCLayerTreeHost.cpp b/cc/CCLayerTreeHost.cpp |
| index 08e1141c7cc72d1a6a69214d0da8ae86fb29c65c..1f4abc8dda6ff7a56032772700c8893e5f13a5cf 100644 |
| --- a/cc/CCLayerTreeHost.cpp |
| +++ b/cc/CCLayerTreeHost.cpp |
| @@ -68,6 +68,7 @@ CCLayerTreeHost::CCLayerTreeHost(CCLayerTreeHostClient* client, const CCLayerTre |
| , m_triggerIdleUpdates(true) |
| , m_backgroundColor(SK_ColorWHITE) |
| , m_hasTransparentBackground(false) |
| + , m_maxPartialTextureUpdates(0) |
| , m_partialTextureUpdateRequests(0) |
| { |
| ASSERT(CCProxy::isMainThread()); |
| @@ -119,9 +120,6 @@ void CCLayerTreeHost::initializeRenderer() |
| // Update m_settings based on capabilities that we got back from the renderer. |
| m_settings.acceleratePainting = m_proxy->rendererCapabilities().usingAcceleratedPainting; |
| - // Update m_settings based on partial update capability. |
| - m_settings.maxPartialTextureUpdates = min(m_settings.maxPartialTextureUpdates, m_proxy->maxPartialTextureUpdates()); |
| - |
| m_contentsTextureManager = CCPrioritizedTextureManager::create(0, m_proxy->rendererCapabilities().maxTextureSize, CCRenderer::ContentPool); |
| m_surfaceMemoryPlaceholder = m_contentsTextureManager->createTexture(IntSize(), GraphicsContext3D::RGBA); |
| @@ -451,7 +449,7 @@ bool CCLayerTreeHost::initializeRendererIfNeeded() |
| return true; |
| } |
| -void CCLayerTreeHost::updateLayers(CCTextureUpdateQueue& queue, size_t memoryAllocationLimitBytes) |
| +void CCLayerTreeHost::updateLayers(CCTextureUpdateQueue& queue, size_t memoryAllocationLimitBytes, size_t *maxTextureUpdates) |
| { |
| ASSERT(m_rendererInitialized); |
| ASSERT(memoryAllocationLimitBytes); |
| @@ -464,7 +462,7 @@ void CCLayerTreeHost::updateLayers(CCTextureUpdateQueue& queue, size_t memoryAll |
| m_contentsTextureManager->setMaxMemoryLimitBytes(memoryAllocationLimitBytes); |
| - updateLayers(rootLayer(), queue); |
| + updateLayers(rootLayer(), queue, maxTextureUpdates); |
| } |
| static void setScale(LayerChromium* layer, float deviceScaleFactor, float pageScaleFactor) |
| @@ -492,7 +490,7 @@ static void updateLayerScale(LayerChromium* layer, float deviceScaleFactor, floa |
| updateLayerScale(children[i].get(), deviceScaleFactor, pageScaleFactor); |
| } |
| -void CCLayerTreeHost::updateLayers(LayerChromium* rootLayer, CCTextureUpdateQueue& queue) |
| +void CCLayerTreeHost::updateLayers(LayerChromium* rootLayer, CCTextureUpdateQueue& queue, size_t *maxTextureUpdates) |
| { |
| TRACE_EVENT0("cc", "CCLayerTreeHost::updateLayers"); |
| @@ -508,6 +506,8 @@ void CCLayerTreeHost::updateLayers(LayerChromium* rootLayer, CCTextureUpdateQueu |
| // Reset partial texture update requests. |
| m_partialTextureUpdateRequests = 0; |
| + m_maxPartialTextureUpdates = std::min(m_settings.maxPartialTextureUpdates, *maxTextureUpdates); |
| + *maxTextureUpdates = m_maxPartialTextureUpdates; // We need to communicate that we've clamped. |
|
brianderson
2012/09/13 20:09:26
Actually, I shouldn't communicate that we've clamp
|
| bool needMoreUpdates = paintLayerContents(updateList, queue); |
| if (m_triggerIdleUpdates && needMoreUpdates) |
| @@ -716,7 +716,7 @@ bool CCLayerTreeHost::bufferedUpdates() |
| bool CCLayerTreeHost::requestPartialTextureUpdate() |
| { |
| - if (m_partialTextureUpdateRequests >= m_settings.maxPartialTextureUpdates) |
| + if (m_partialTextureUpdateRequests >= m_maxPartialTextureUpdates) |
| return false; |
| m_partialTextureUpdateRequests++; |