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

Side by Side Diff: Source/WebCore/rendering/RenderLayerCompositor.cpp

Issue 11970041: Merge 139461 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1364/
Patch Set: Created 7 years, 11 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
« no previous file with comments | « Source/WebCore/rendering/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 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 startTime = currentTime(); 447 startTime = currentTime();
448 } 448 }
449 #endif 449 #endif
450 450
451 if (checkForHierarchyUpdate) { 451 if (checkForHierarchyUpdate) {
452 // Go through the layers in presentation order, so that we can compute w hich RenderLayers need compositing layers. 452 // Go through the layers in presentation order, so that we can compute w hich RenderLayers need compositing layers.
453 // FIXME: we could maybe do this and the hierarchy udpate in one pass, b ut the parenting logic would be more complex. 453 // FIXME: we could maybe do this and the hierarchy udpate in one pass, b ut the parenting logic would be more complex.
454 CompositingState compState(updateRoot, m_compositingConsultsOverlap); 454 CompositingState compState(updateRoot, m_compositingConsultsOverlap);
455 bool layersChanged = false; 455 bool layersChanged = false;
456 bool saw3DTransform = false; 456 bool saw3DTransform = false;
457 m_fixedPositionLayerNotCompositedReasonMap.clear();
458 if (m_compositingConsultsOverlap) { 457 if (m_compositingConsultsOverlap) {
459 OverlapMap overlapTestRequestMap; 458 OverlapMap overlapTestRequestMap;
460 computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap , compState, layersChanged, saw3DTransform); 459 computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap , compState, layersChanged, saw3DTransform);
461 } else 460 } else
462 computeCompositingRequirements(0, updateRoot, 0, compState, layersCh anged, saw3DTransform); 461 computeCompositingRequirements(0, updateRoot, 0, compState, layersCh anged, saw3DTransform);
463 462
464 needHierarchyUpdate |= layersChanged; 463 needHierarchyUpdate |= layersChanged;
465 } 464 }
466 465
467 #if !LOG_DISABLED 466 #if !LOG_DISABLED
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 542
544 LOG(Compositing, "%*p %dx%d %.2fKB (%s) %s\n", 12 + depth * 2, layer, backin g->compositedBounds().width(), backing->compositedBounds().height(), 543 LOG(Compositing, "%*p %dx%d %.2fKB (%s) %s\n", 12 + depth * 2, layer, backin g->compositedBounds().width(), backing->compositedBounds().height(),
545 backing->backingStoreMemoryEstimate() / 1024, 544 backing->backingStoreMemoryEstimate() / 1024,
546 reasonForCompositing(layer), layer->backing()->nameForLayer().utf8().dat a()); 545 reasonForCompositing(layer), layer->backing()->nameForLayer().utf8().dat a());
547 } 546 }
548 #endif 547 #endif
549 548
550 bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeR epaint shouldRepaint) 549 bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeR epaint shouldRepaint)
551 { 550 {
552 bool layerChanged = false; 551 bool layerChanged = false;
552 RenderLayer::ViewportConstrainedNotCompositedReason viewportConstrainedNotCo mpositedReason = RenderLayer::NoNotCompositedReason;
553 553
554 if (needsToBeComposited(layer)) { 554 if (needsToBeComposited(layer, &viewportConstrainedNotCompositedReason)) {
555 enableCompositingMode(); 555 enableCompositingMode();
556 556
557 if (!layer->backing()) { 557 if (!layer->backing()) {
558 // If we need to repaint, do so before making backing 558 // If we need to repaint, do so before making backing
559 if (shouldRepaint == CompositingChangeRepaintNow) 559 if (shouldRepaint == CompositingChangeRepaintNow)
560 repaintOnCompositingChange(layer); 560 repaintOnCompositingChange(layer);
561 561
562 layer->ensureBacking(); 562 layer->ensureBacking();
563 563
564 // At this time, the ScrollingCooridnator only supports the top-leve l frame. 564 // At this time, the ScrollingCooridnator only supports the top-leve l frame.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 616
617 if (layerChanged && layer->renderer()->isRenderPart()) { 617 if (layerChanged && layer->renderer()->isRenderPart()) {
618 RenderLayerCompositor* innerCompositor = frameContentsCompositor(toRende rPart(layer->renderer())); 618 RenderLayerCompositor* innerCompositor = frameContentsCompositor(toRende rPart(layer->renderer()));
619 if (innerCompositor && innerCompositor->inCompositingMode()) 619 if (innerCompositor && innerCompositor->inCompositingMode())
620 innerCompositor->updateRootLayerAttachment(); 620 innerCompositor->updateRootLayerAttachment();
621 } 621 }
622 622
623 if (layerChanged) 623 if (layerChanged)
624 layer->clearClipRectsIncludingDescendants(PaintingClipRects); 624 layer->clearClipRectsIncludingDescendants(PaintingClipRects);
625 625
626 // If a fixed position layer gained/lost a backing, the scrolling coordinato r needs to recalculate whether it can do fast scrolling. 626 // If a fixed position layer gained/lost a backing or the reason not composi ting it changed,
627 if (layerChanged && layer->renderer()->style()->position() == FixedPosition) { 627 // the scrolling coordinator needs to recalculate whether it can do fast scr olling.
628 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordina tor()) 628 if (layer->renderer()->style()->position() == FixedPosition) {
629 scrollingCoordinator->frameViewFixedObjectsDidChange(m_renderView->f rameView()); 629 if (layer->viewportConstrainedNotCompositedReason() != viewportConstrain edNotCompositedReason) {
630 layer->setViewportConstrainedNotCompositedReason(viewportConstrained NotCompositedReason);
631 layerChanged = true;
632 }
633 if (layerChanged) {
634 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoor dinator())
635 scrollingCoordinator->frameViewFixedObjectsDidChange(m_renderVie w->frameView());
636 }
630 } 637 }
631 638
632 if (layer->backing()) 639 if (layer->backing())
633 layer->backing()->updateDebugIndicators(m_showDebugBorders, m_showRepain tCounter); 640 layer->backing()->updateDebugIndicators(m_showDebugBorders, m_showRepain tCounter);
634 641
635 return layerChanged; 642 return layerChanged;
636 } 643 }
637 644
638 bool RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Comp ositingChangeRepaint shouldRepaint) 645 bool RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Comp ositingChangeRepaint shouldRepaint)
639 { 646 {
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 #endif 845 #endif
839 846
840 layer->setIndirectCompositingReason(compositingReason); 847 layer->setIndirectCompositingReason(compositingReason);
841 848
842 // The children of this layer don't need to composite, unless there is 849 // The children of this layer don't need to composite, unless there is
843 // a compositing layer among them, so start by inheriting the compositing 850 // a compositing layer among them, so start by inheriting the compositing
844 // ancestor with m_subtreeIsCompositing set to false. 851 // ancestor with m_subtreeIsCompositing set to false.
845 CompositingState childState(compositingState); 852 CompositingState childState(compositingState);
846 childState.m_subtreeIsCompositing = false; 853 childState.m_subtreeIsCompositing = false;
847 854
848 FixedPositionLayerNotCompositedReason fixedPositionLayerNotCompositedReason = NoReason; 855 bool willBeComposited = needsToBeComposited(layer);
849 bool willBeComposited = needsToBeComposited(layer, &fixedPositionLayerNotCom positedReason);
850 if (willBeComposited) { 856 if (willBeComposited) {
851 // Tell the parent it has compositing descendants. 857 // Tell the parent it has compositing descendants.
852 compositingState.m_subtreeIsCompositing = true; 858 compositingState.m_subtreeIsCompositing = true;
853 // This layer now acts as the ancestor for kids. 859 // This layer now acts as the ancestor for kids.
854 childState.m_compositingAncestor = layer; 860 childState.m_compositingAncestor = layer;
855 861
856 if (overlapMap) 862 if (overlapMap)
857 overlapMap->pushCompositingContainer(); 863 overlapMap->pushCompositingContainer();
858 } else if (fixedPositionLayerNotCompositedReason != NoReason) 864 }
859 m_fixedPositionLayerNotCompositedReasonMap.set(layer, fixedPositionLayer NotCompositedReason);
860 865
861 #if !ASSERT_DISABLED 866 #if !ASSERT_DISABLED
862 LayerListMutationDetector mutationChecker(layer); 867 LayerListMutationDetector mutationChecker(layer);
863 #endif 868 #endif
864 869
865 bool anyDescendantHas3DTransform = false; 870 bool anyDescendantHas3DTransform = false;
866 871
867 if (layer->isStackingContext()) { 872 if (layer->isStackingContext()) {
868 if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) { 873 if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) {
869 size_t listSize = negZOrderList->size(); 874 size_t listSize = negZOrderList->size();
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 if (frameRenderer->widget()) { 1562 if (frameRenderer->widget()) {
1558 ASSERT(frameRenderer->widget()->isFrameView()); 1563 ASSERT(frameRenderer->widget()->isFrameView());
1559 FrameView* view = static_cast<FrameView*>(frameRenderer->widget()); 1564 FrameView* view = static_cast<FrameView*>(frameRenderer->widget());
1560 if (view->isOverlappedIncludingAncestors() || view->hasCompositingAncest or()) 1565 if (view->isOverlappedIncludingAncestors() || view->hasCompositingAncest or())
1561 return true; 1566 return true;
1562 } 1567 }
1563 1568
1564 return false; 1569 return false;
1565 } 1570 }
1566 1571
1567 bool RenderLayerCompositor::needsToBeComposited(const RenderLayer* layer, FixedP ositionLayerNotCompositedReason* fixedPositionLayerNotCompositedReason) const 1572 bool RenderLayerCompositor::needsToBeComposited(const RenderLayer* layer, Render Layer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompositedR eason) const
1568 { 1573 {
1569 if (!canBeComposited(layer)) 1574 if (!canBeComposited(layer))
1570 return false; 1575 return false;
1571 1576
1572 return requiresCompositingLayer(layer, fixedPositionLayerNotCompositedReason ) || layer->mustCompositeForIndirectReasons() || (inCompositingMode() && layer-> isRootLayer()); 1577 return requiresCompositingLayer(layer, viewportConstrainedNotCompositedReaso n) || layer->mustCompositeForIndirectReasons() || (inCompositingMode() && layer- >isRootLayer());
1573 } 1578 }
1574 1579
1575 // Note: this specifies whether the RL needs a compositing layer for intrinsic r easons. 1580 // Note: this specifies whether the RL needs a compositing layer for intrinsic r easons.
1576 // Use needsToBeComposited() to determine if a RL actually needs a compositing l ayer. 1581 // Use needsToBeComposited() to determine if a RL actually needs a compositing l ayer.
1577 // static 1582 // static
1578 bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer, F ixedPositionLayerNotCompositedReason* fixedPositionLayerNotCompositedReason) con st 1583 bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer, R enderLayer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompos itedReason) const
1579 { 1584 {
1580 RenderObject* renderer = layer->renderer(); 1585 RenderObject* renderer = layer->renderer();
1581 // The compositing state of a reflection should match that of its reflected layer. 1586 // The compositing state of a reflection should match that of its reflected layer.
1582 if (layer->isReflection()) { 1587 if (layer->isReflection()) {
1583 renderer = renderer->parent(); // The RenderReplica's parent is the obje ct being reflected. 1588 renderer = renderer->parent(); // The RenderReplica's parent is the obje ct being reflected.
1584 layer = toRenderLayerModelObject(renderer)->layer(); 1589 layer = toRenderLayerModelObject(renderer)->layer();
1585 } 1590 }
1586 // The root layer always has a compositing layer, but it may not have backin g. 1591 // The root layer always has a compositing layer, but it may not have backin g.
1587 return requiresCompositingForTransform(renderer) 1592 return requiresCompositingForTransform(renderer)
1588 || requiresCompositingForVideo(renderer) 1593 || requiresCompositingForVideo(renderer)
1589 || requiresCompositingForCanvas(renderer) 1594 || requiresCompositingForCanvas(renderer)
1590 || requiresCompositingForPlugin(renderer) 1595 || requiresCompositingForPlugin(renderer)
1591 || requiresCompositingForFrame(renderer) 1596 || requiresCompositingForFrame(renderer)
1592 || (canRender3DTransforms() && renderer->style()->backfaceVisibility() = = BackfaceVisibilityHidden) 1597 || (canRender3DTransforms() && renderer->style()->backfaceVisibility() = = BackfaceVisibilityHidden)
1593 || clipsCompositingDescendants(layer) 1598 || clipsCompositingDescendants(layer)
1594 || requiresCompositingForAnimation(renderer) 1599 || requiresCompositingForAnimation(renderer)
1595 || requiresCompositingForFilters(renderer) 1600 || requiresCompositingForFilters(renderer)
1596 || requiresCompositingForPosition(renderer, layer, fixedPositionLayerNot CompositedReason) 1601 || requiresCompositingForPosition(renderer, layer, viewportConstrainedNo tCompositedReason)
1597 || requiresCompositingForOverflowScrolling(layer) 1602 || requiresCompositingForOverflowScrolling(layer)
1598 || requiresCompositingForBlending(renderer); 1603 || requiresCompositingForBlending(renderer);
1599 } 1604 }
1600 1605
1601 bool RenderLayerCompositor::canBeComposited(const RenderLayer* layer) const 1606 bool RenderLayerCompositor::canBeComposited(const RenderLayer* layer) const
1602 { 1607 {
1603 // FIXME: We disable accelerated compositing for elements in a RenderFlowThr ead as it doesn't work properly. 1608 // FIXME: We disable accelerated compositing for elements in a RenderFlowThr ead as it doesn't work properly.
1604 // See http://webkit.org/b/84900 to re-enable it. 1609 // See http://webkit.org/b/84900 to re-enable it.
1605 return m_hasAcceleratedCompositing && layer->isSelfPaintingLayer() && !layer ->renderer()->inRenderFlowThread(); 1610 return m_hasAcceleratedCompositing && layer->isSelfPaintingLayer() && !layer ->renderer()->inRenderFlowThread();
1606 } 1611 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1674 if (clipsCompositingDescendants(layer)) 1679 if (clipsCompositingDescendants(layer))
1675 return "clips compositing descendants"; 1680 return "clips compositing descendants";
1676 1681
1677 if (requiresCompositingForAnimation(renderer)) 1682 if (requiresCompositingForAnimation(renderer))
1678 return "animation"; 1683 return "animation";
1679 1684
1680 if (requiresCompositingForFilters(renderer)) 1685 if (requiresCompositingForFilters(renderer))
1681 return "filters"; 1686 return "filters";
1682 1687
1683 if (requiresCompositingForPosition(renderer, layer)) 1688 if (requiresCompositingForPosition(renderer, layer))
1684 return "position: fixed"; 1689 return renderer->style()->position() == FixedPosition ? "position: fixed " : "position: sticky";
1685 1690
1686 if (requiresCompositingForOverflowScrolling(layer)) 1691 if (requiresCompositingForOverflowScrolling(layer))
1687 return "-webkit-overflow-scrolling: touch"; 1692 return "-webkit-overflow-scrolling: touch";
1688 1693
1689 if (layer->indirectCompositingReason() == RenderLayer::IndirectCompositingFo rStacking) 1694 if (layer->indirectCompositingReason() == RenderLayer::IndirectCompositingFo rStacking)
1690 return "stacking"; 1695 return "stacking";
1691 1696
1692 if (layer->indirectCompositingReason() == RenderLayer::IndirectCompositingFo rOverlap) 1697 if (layer->indirectCompositingReason() == RenderLayer::IndirectCompositingFo rOverlap)
1693 return "overlap"; 1698 return "overlap";
1694 1699
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
1964 bool RenderLayerCompositor::requiresCompositingForBlending(RenderObject* rendere r) const 1969 bool RenderLayerCompositor::requiresCompositingForBlending(RenderObject* rendere r) const
1965 { 1970 {
1966 #if ENABLE(CSS_COMPOSITING) 1971 #if ENABLE(CSS_COMPOSITING)
1967 return renderer->hasBlendMode(); 1972 return renderer->hasBlendMode();
1968 #else 1973 #else
1969 UNUSED_PARAM(renderer); 1974 UNUSED_PARAM(renderer);
1970 return false; 1975 return false;
1971 #endif 1976 #endif
1972 } 1977 }
1973 1978
1974 bool RenderLayerCompositor::requiresCompositingForPosition(RenderObject* rendere r, const RenderLayer* layer, FixedPositionLayerNotCompositedReason* fixedPositio nLayerNotCompositedReason) const 1979 bool RenderLayerCompositor::requiresCompositingForPosition(RenderObject* rendere r, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReason * viewportConstrainedNotCompositedReason) const
1975 { 1980 {
1976 // position:fixed elements that create their own stacking context (e.g. have an explicit z-index, 1981 // position:fixed elements that create their own stacking context (e.g. have an explicit z-index,
1977 // opacity, transform) can get their own composited layer. A stacking contex t is required otherwise 1982 // opacity, transform) can get their own composited layer. A stacking contex t is required otherwise
1978 // z-index and clipping will be broken. 1983 // z-index and clipping will be broken.
1979 if (!(renderer->isOutOfFlowPositioned() && renderer->style()->position() == FixedPosition && layer->isStackingContext())) 1984 if (!(renderer->isOutOfFlowPositioned() && renderer->style()->position() == FixedPosition && layer->isStackingContext()))
1980 return false; 1985 return false;
1981 1986
1982 if (Settings* settings = m_renderView->document()->settings()) 1987 if (Settings* settings = m_renderView->document()->settings())
1983 if (!settings->acceleratedCompositingForFixedPositionEnabled()) 1988 if (!settings->acceleratedCompositingForFixedPositionEnabled())
1984 return false; 1989 return false;
1985 1990
1986 RenderObject* container = renderer->container(); 1991 RenderObject* container = renderer->container();
1987 // If the renderer is not hooked up yet then we have to wait until it is. 1992 // If the renderer is not hooked up yet then we have to wait until it is.
1988 if (!container) { 1993 if (!container) {
1989 m_reevaluateCompositingAfterLayout = true; 1994 m_reevaluateCompositingAfterLayout = true;
1990 return false; 1995 return false;
1991 } 1996 }
1992 1997
1993 // Don't promote fixed position elements that are descendants of transformed elements. 1998 // Don't promote fixed position elements that are descendants of a non-view container, e.g. transformed elements.
1994 // They will stay fixed wrt the transformed element rather than the enclosin g frame. 1999 // They will stay fixed wrt the container rather than the enclosing frame.
1995 if (container != m_renderView) { 2000 if (container != m_renderView) {
1996 if (fixedPositionLayerNotCompositedReason) 2001 if (viewportConstrainedNotCompositedReason)
1997 *fixedPositionLayerNotCompositedReason = DescendantOfTransformedElem ent; 2002 *viewportConstrainedNotCompositedReason = RenderLayer::NotComposited ForNonViewContainer;
1998 return false; 2003 return false;
1999 } 2004 }
2000 2005
2001 // Fixed position elements that are invisible in the current view don't get their own layer. 2006 // Fixed position elements that are invisible in the current view don't get their own layer.
2002 if (FrameView* frameView = m_renderView->frameView()) { 2007 if (FrameView* frameView = m_renderView->frameView()) {
2003 IntRect viewBounds = frameView->visibleContentRect(); 2008 IntRect viewBounds = frameView->visibleContentRect();
2004 LayoutRect layerBounds = layer->calculateLayerBounds(rootRenderLayer(), 0, RenderLayer::DefaultCalculateLayerBoundsFlags 2009 LayoutRect layerBounds = layer->calculateLayerBounds(rootRenderLayer(), 0, RenderLayer::DefaultCalculateLayerBoundsFlags
2005 | RenderLayer::ExcludeHiddenDescendants | RenderLayer::DontConstrain ForMask | RenderLayer::IncludeCompositedDescendants); 2010 | RenderLayer::ExcludeHiddenDescendants | RenderLayer::DontConstrain ForMask | RenderLayer::IncludeCompositedDescendants);
2006 layerBounds.scale(frameView->frame()->frameScaleFactor()); 2011 layerBounds.scale(frameView->frame()->frameScaleFactor());
2007 if (!viewBounds.intersects(enclosingIntRect(layerBounds))) { 2012 if (!viewBounds.intersects(enclosingIntRect(layerBounds))) {
2008 if (fixedPositionLayerNotCompositedReason) 2013 if (viewportConstrainedNotCompositedReason)
2009 *fixedPositionLayerNotCompositedReason = LayerBoundsOutOfView; 2014 *viewportConstrainedNotCompositedReason = RenderLayer::NotCompos itedForBoundsOutOfView;
2010 return false; 2015 return false;
2011 } 2016 }
2012 } 2017 }
2013 2018
2014 return true; 2019 return true;
2015 } 2020 }
2016 2021
2017 bool RenderLayerCompositor::requiresCompositingForOverflowScrolling(const Render Layer* layer) const 2022 bool RenderLayerCompositor::requiresCompositingForOverflowScrolling(const Render Layer* layer) const
2018 { 2023 {
2019 return layer->needsCompositedScrolling(); 2024 return layer->needsCompositedScrolling();
(...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
2798 #if ENABLE(RUBBER_BANDING) 2803 #if ENABLE(RUBBER_BANDING)
2799 info.addMember(m_layerForOverhangAreas); 2804 info.addMember(m_layerForOverhangAreas);
2800 info.addMember(m_contentShadowLayer); 2805 info.addMember(m_contentShadowLayer);
2801 #endif 2806 #endif
2802 info.addMember(m_layerUpdater); 2807 info.addMember(m_layerUpdater);
2803 } 2808 }
2804 2809
2805 } // namespace WebCore 2810 } // namespace WebCore
2806 2811
2807 #endif // USE(ACCELERATED_COMPOSITING) 2812 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderLayerCompositor.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698