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

Side by Side Diff: sky/engine/core/rendering/InlineFlowBox.cpp

Issue 878023002: Merge outline paint phases into the foreground phase. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: rebase Created 5 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after
993 { 993 {
994 LayoutRect overflowRect(visualOverflowRect(lineTop, lineBottom)); 994 LayoutRect overflowRect(visualOverflowRect(lineTop, lineBottom));
995 overflowRect.moveBy(paintOffset); 995 overflowRect.moveBy(paintOffset);
996 996
997 if (!paintInfo.rect.intersects(pixelSnappedIntRect(overflowRect))) 997 if (!paintInfo.rect.intersects(pixelSnappedIntRect(overflowRect)))
998 return; 998 return;
999 999
1000 if (paintInfo.phase == PaintPhaseMask) { 1000 if (paintInfo.phase == PaintPhaseMask) {
1001 paintMask(paintInfo, paintOffset); 1001 paintMask(paintInfo, paintOffset);
1002 return; 1002 return;
1003 } else if (paintInfo.phase == PaintPhaseForeground) {
1004 // Paint our background, border and box-shadow.
1005 paintBoxDecorationBackground(paintInfo, paintOffset);
1006 } 1003 }
1007 1004
1008 // Paint our children. 1005 if (paintInfo.phase == PaintPhaseForeground)
1009 if (paintInfo.phase != PaintPhaseSelfOutline) { 1006 paintBoxDecorationBackground(paintInfo, paintOffset);
1010 PaintInfo childInfo(paintInfo);
1011 childInfo.phase = paintInfo.phase == PaintPhaseChildOutlines ? PaintPhas eOutline : paintInfo.phase;
1012 1007
1013 if (childInfo.paintingRoot && childInfo.paintingRoot->isDescendantOf(&re nderer())) 1008 PaintInfo childInfo(paintInfo);
1014 childInfo.paintingRoot = 0;
1015 else
1016 childInfo.updatePaintingRootForChildren(&renderer());
1017 1009
1018 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { 1010 if (childInfo.paintingRoot && childInfo.paintingRoot->isDescendantOf(&render er()))
1019 if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPai ntingLayer()) 1011 childInfo.paintingRoot = 0;
1020 curr->paint(childInfo, paintOffset, lineTop, lineBottom); 1012 else
1021 } 1013 childInfo.updatePaintingRootForChildren(&renderer());
1014
1015 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
1016 if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPaintin gLayer())
1017 curr->paint(childInfo, paintOffset, lineTop, lineBottom);
1022 } 1018 }
1023 } 1019 }
1024 1020
1025 void InlineFlowBox::paintFillLayers(const PaintInfo& paintInfo, const Color& c, const FillLayer& fillLayer, const LayoutRect& rect) 1021 void InlineFlowBox::paintFillLayers(const PaintInfo& paintInfo, const Color& c, const FillLayer& fillLayer, const LayoutRect& rect)
1026 { 1022 {
1027 if (fillLayer.next()) 1023 if (fillLayer.next())
1028 paintFillLayers(paintInfo, c, *fillLayer.next(), rect); 1024 paintFillLayers(paintInfo, c, *fillLayer.next(), rect);
1029 paintFillLayer(paintInfo, c, fillLayer, rect); 1025 paintFillLayer(paintInfo, c, fillLayer, rect);
1030 } 1026 }
1031 1027
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 ASSERT(child->prevOnLine() == prev); 1417 ASSERT(child->prevOnLine() == prev);
1422 prev = child; 1418 prev = child;
1423 } 1419 }
1424 ASSERT(prev == m_lastChild); 1420 ASSERT(prev == m_lastChild);
1425 #endif 1421 #endif
1426 } 1422 }
1427 1423
1428 #endif 1424 #endif
1429 1425
1430 } // namespace blink 1426 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | sky/engine/core/rendering/InlineTextBox.cpp » ('j') | sky/engine/core/rendering/RenderBlock.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698