Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(486)

Side by Side Diff: Source/core/rendering/compositing/RenderLayerCompositor.cpp

Issue 221563002: Delete RenderLayerCompositor::m_needsToUpdateLayerTreeGeometry (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/compositing/RenderLayerCompositor.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 #endif 195 #endif
196 }; 196 };
197 197
198 RenderLayerCompositor::RenderLayerCompositor(RenderView& renderView) 198 RenderLayerCompositor::RenderLayerCompositor(RenderView& renderView)
199 : m_renderView(renderView) 199 : m_renderView(renderView)
200 , m_compositingReasonFinder(renderView) 200 , m_compositingReasonFinder(renderView)
201 , m_pendingUpdateType(CompositingUpdateNone) 201 , m_pendingUpdateType(CompositingUpdateNone)
202 , m_hasAcceleratedCompositing(true) 202 , m_hasAcceleratedCompositing(true)
203 , m_showRepaintCounter(false) 203 , m_showRepaintCounter(false)
204 , m_needsToRecomputeCompositingRequirements(false) 204 , m_needsToRecomputeCompositingRequirements(false)
205 , m_needsToUpdateLayerTreeGeometry(false)
206 , m_compositing(false) 205 , m_compositing(false)
207 , m_compositingLayersNeedRebuild(false) 206 , m_compositingLayersNeedRebuild(false)
208 , m_forceCompositingMode(false) 207 , m_forceCompositingMode(false)
209 , m_needsUpdateCompositingRequirementsState(false) 208 , m_needsUpdateCompositingRequirementsState(false)
210 , m_isTrackingRepaints(false) 209 , m_isTrackingRepaints(false)
211 , m_rootLayerAttachment(RootLayerUnattached) 210 , m_rootLayerAttachment(RootLayerUnattached)
212 { 211 {
213 } 212 }
214 213
215 RenderLayerCompositor::~RenderLayerCompositor() 214 RenderLayerCompositor::~RenderLayerCompositor()
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 return; 360 return;
362 361
363 m_pendingUpdateType = std::max(m_pendingUpdateType, updateType); 362 m_pendingUpdateType = std::max(m_pendingUpdateType, updateType);
364 363
365 switch (updateType) { 364 switch (updateType) {
366 case CompositingUpdateNone: 365 case CompositingUpdateNone:
367 ASSERT_NOT_REACHED(); 366 ASSERT_NOT_REACHED();
368 break; 367 break;
369 case CompositingUpdateAfterStyleChange: 368 case CompositingUpdateAfterStyleChange:
370 m_needsToRecomputeCompositingRequirements = true; 369 m_needsToRecomputeCompositingRequirements = true;
371 m_needsToUpdateLayerTreeGeometry = true;
372 break; 370 break;
373 case CompositingUpdateAfterLayout: 371 case CompositingUpdateAfterLayout:
374 m_needsToRecomputeCompositingRequirements = true; 372 m_needsToRecomputeCompositingRequirements = true;
375 m_needsToUpdateLayerTreeGeometry = true;
376 break; 373 break;
377 case CompositingUpdateOnScroll: 374 case CompositingUpdateOnScroll:
378 m_needsToRecomputeCompositingRequirements = true; // Overlap can change with scrolling, so need to check for hierarchy updates. 375 m_needsToRecomputeCompositingRequirements = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
379 m_needsToUpdateLayerTreeGeometry = true;
380 break; 376 break;
381 case CompositingUpdateOnCompositedScroll: 377 case CompositingUpdateOnCompositedScroll:
382 m_needsToUpdateLayerTreeGeometry = true;
383 break;
384 case CompositingUpdateAfterCanvasContextChange: 378 case CompositingUpdateAfterCanvasContextChange:
385 m_needsToUpdateLayerTreeGeometry = true;
386 break; 379 break;
387 } 380 }
388 381
389 page()->animator().scheduleVisualUpdate(); 382 page()->animator().scheduleVisualUpdate();
390 } 383 }
391 384
392 static void clearAncestorDependentPropertyCacheRecursive(RenderLayer* layer) 385 static void clearAncestorDependentPropertyCacheRecursive(RenderLayer* layer)
393 { 386 {
394 layer->clearAncestorDependentPropertyCache(); 387 layer->clearAncestorDependentPropertyCache();
395 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), AllChildren ); 388 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), AllChildren );
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 if (childCompositor && childCompositor->hasUnresolvedDirtyBits()) { 425 if (childCompositor && childCompositor->hasUnresolvedDirtyBits()) {
433 m_renderView.frameView()->scheduleAnimation(); 426 m_renderView.frameView()->scheduleAnimation();
434 return; 427 return;
435 } 428 }
436 } 429 }
437 } 430 }
438 } 431 }
439 432
440 bool RenderLayerCompositor::hasUnresolvedDirtyBits() 433 bool RenderLayerCompositor::hasUnresolvedDirtyBits()
441 { 434 {
442 return m_needsToRecomputeCompositingRequirements || m_compositingLayersNeedR ebuild || m_needsToUpdateLayerTreeGeometry || m_needsUpdateCompositingRequiremen tsState || m_pendingUpdateType > CompositingUpdateNone; 435 return m_needsToRecomputeCompositingRequirements || m_compositingLayersNeedR ebuild || m_needsUpdateCompositingRequirementsState || m_pendingUpdateType > Com positingUpdateNone;
443 } 436 }
444 437
445 void RenderLayerCompositor::updateCompositingLayersInternal() 438 void RenderLayerCompositor::updateCompositingLayersInternal()
446 { 439 {
447 if (isMainFrame() && m_renderView.frameView()) 440 if (isMainFrame() && m_renderView.frameView())
448 finishCompositingUpdateForFrameTree(&m_renderView.frameView()->frame()); 441 finishCompositingUpdateForFrameTree(&m_renderView.frameView()->frame());
449 442
450 if (m_forceCompositingMode && !m_compositing) 443 if (m_forceCompositingMode && !m_compositing)
451 enableCompositingMode(true); 444 enableCompositingMode(true);
452 445
453 if (!m_needsToRecomputeCompositingRequirements && !m_compositing) 446 if (!m_needsToRecomputeCompositingRequirements && !m_compositing)
454 return; 447 return;
455 448
456 CompositingUpdateType updateType = m_pendingUpdateType; 449 CompositingUpdateType updateType = m_pendingUpdateType;
457 450
458 bool needCompositingRequirementsUpdate = m_needsToRecomputeCompositingRequir ements; 451 bool needCompositingRequirementsUpdate = m_needsToRecomputeCompositingRequir ements;
459 bool needHierarchyAndGeometryUpdate = m_compositingLayersNeedRebuild; 452 bool needHierarchyAndGeometryUpdate = m_compositingLayersNeedRebuild;
460 bool needGeometryUpdate = m_needsToUpdateLayerTreeGeometry;
461 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() ? scrollingC oordinator()->needsToUpdateAfterCompositingChange() : false; 453 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() ? scrollingC oordinator()->needsToUpdateAfterCompositingChange() : false;
462 454
463 if (!needCompositingRequirementsUpdate && !needHierarchyAndGeometryUpdate && !needGeometryUpdate && !needsToUpdateScrollingCoordinator) 455 if (updateType == CompositingUpdateNone && !needCompositingRequirementsUpdat e && !needHierarchyAndGeometryUpdate && !needsToUpdateScrollingCoordinator)
464 return; 456 return;
465 457
466 m_pendingUpdateType = CompositingUpdateNone; 458 m_pendingUpdateType = CompositingUpdateNone;
467 459
468 GraphicsLayerUpdater::UpdateType graphicsLayerUpdateType = GraphicsLayerUpda ter::DoNotForceUpdate; 460 GraphicsLayerUpdater::UpdateType graphicsLayerUpdateType = GraphicsLayerUpda ter::DoNotForceUpdate;
469 CompositingPropertyUpdater::UpdateType compositingPropertyUpdateType = Compo sitingPropertyUpdater::DoNotForceUpdate; 461 CompositingPropertyUpdater::UpdateType compositingPropertyUpdateType = Compo sitingPropertyUpdater::DoNotForceUpdate;
470 462
471 // FIXME: Teach non-style compositing updates how to do partial tree walks. 463 // FIXME: Teach non-style compositing updates how to do partial tree walks.
472 if (updateType >= CompositingUpdateAfterLayout) { 464 if (updateType >= CompositingUpdateAfterLayout) {
473 graphicsLayerUpdateType = GraphicsLayerUpdater::ForceUpdate; 465 graphicsLayerUpdateType = GraphicsLayerUpdater::ForceUpdate;
474 compositingPropertyUpdateType = CompositingPropertyUpdater::ForceUpdate; 466 compositingPropertyUpdateType = CompositingPropertyUpdater::ForceUpdate;
475 } 467 }
476 468
477 // Only clear the flags if we're updating the entire hierarchy. 469 // Only clear the flags if we're updating the entire hierarchy.
478 m_compositingLayersNeedRebuild = false; 470 m_compositingLayersNeedRebuild = false;
479 m_needsToUpdateLayerTreeGeometry = false;
480 m_needsToRecomputeCompositingRequirements = false; 471 m_needsToRecomputeCompositingRequirements = false;
481 472
482 RenderLayer* updateRoot = rootRenderLayer(); 473 RenderLayer* updateRoot = rootRenderLayer();
483 474
484 if (needCompositingRequirementsUpdate) { 475 if (needCompositingRequirementsUpdate) {
485 // Go through the layers in presentation order, so that we can compute w hich RenderLayers need compositing layers. 476 // Go through the layers in presentation order, so that we can compute w hich RenderLayers need compositing layers.
486 // FIXME: we could maybe do this and the hierarchy udpate in one pass, b ut the parenting logic would be more complex. 477 // FIXME: we could maybe do this and the hierarchy udpate in one pass, b ut the parenting logic would be more complex.
487 CompositingRecursionData recursionData(updateRoot, 0, true); 478 CompositingRecursionData recursionData(updateRoot, 0, true);
488 bool layersChanged = false; 479 bool layersChanged = false;
489 bool saw3DTransform = false; 480 bool saw3DTransform = false;
(...skipping 30 matching lines...) Expand all
520 if (scrollableAreas) { 511 if (scrollableAreas) {
521 for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas ->begin(); it != scrollableAreas->end(); ++it) 512 for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas ->begin(); it != scrollableAreas->end(); ++it)
522 (*it)->updateHasVisibleNonLayerContent(); 513 (*it)->updateHasVisibleNonLayerContent();
523 } 514 }
524 } 515 }
525 516
526 if (layersChanged) 517 if (layersChanged)
527 needHierarchyAndGeometryUpdate = true; 518 needHierarchyAndGeometryUpdate = true;
528 } 519 }
529 520
530 if (needGeometryUpdate || needHierarchyAndGeometryUpdate) { 521 if (updateType >= CompositingUpdateAfterStyleChange || needHierarchyAndGeome tryUpdate) {
531 TRACE_EVENT0("blink_rendering", "GraphicsLayerUpdater::updateRecursive") ; 522 TRACE_EVENT0("blink_rendering", "GraphicsLayerUpdater::updateRecursive") ;
532 GraphicsLayerUpdater().update(*updateRoot, graphicsLayerUpdateType); 523 GraphicsLayerUpdater().update(*updateRoot, graphicsLayerUpdateType);
533 #if !ASSERT_DISABLED 524 #if !ASSERT_DISABLED
534 // FIXME: Move this check to the end of the compositing update. 525 // FIXME: Move this check to the end of the compositing update.
535 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat eRoot); 526 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat eRoot);
536 #endif 527 #endif
537 } 528 }
538 529
539 if (needHierarchyAndGeometryUpdate) { 530 if (needHierarchyAndGeometryUpdate) {
540 // Update the hierarchy of the compositing layers. 531 // Update the hierarchy of the compositing layers.
(...skipping 1568 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 } else if (graphicsLayer == m_scrollLayer.get()) { 2100 } else if (graphicsLayer == m_scrollLayer.get()) {
2110 name = "LocalFrame Scrolling Layer"; 2101 name = "LocalFrame Scrolling Layer";
2111 } else { 2102 } else {
2112 ASSERT_NOT_REACHED(); 2103 ASSERT_NOT_REACHED();
2113 } 2104 }
2114 2105
2115 return name; 2106 return name;
2116 } 2107 }
2117 2108
2118 } // namespace WebCore 2109 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/compositing/RenderLayerCompositor.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698