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

Side by Side Diff: Source/core/rendering/style/RenderStyle.cpp

Issue 202683005: optimizing layout performance when only transform3d matrix changed by Base URL: http://src.chromium.org/blink/trunk/
Patch Set: Created 6 years, 9 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) 1999 Antti Koivisto (koivisto@kde.org) 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. 4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 return StyleDifferenceLayout; 451 return StyleDifferenceLayout;
452 452
453 if (rareNonInheritedData->m_multiCol.get() != other->rareNonInheritedDat a->m_multiCol.get() 453 if (rareNonInheritedData->m_multiCol.get() != other->rareNonInheritedDat a->m_multiCol.get()
454 && *rareNonInheritedData->m_multiCol.get() != *other->rareNonInherit edData->m_multiCol.get()) 454 && *rareNonInheritedData->m_multiCol.get() != *other->rareNonInherit edData->m_multiCol.get())
455 return StyleDifferenceLayout; 455 return StyleDifferenceLayout;
456 456
457 if (!transformDataEquivalent(other)) { 457 if (!transformDataEquivalent(other)) {
458 // Don't return early here; instead take note of the type of 458 // Don't return early here; instead take note of the type of
459 // change, and deal with it when looking at compositing. 459 // change, and deal with it when looking at compositing.
460 changedContextSensitiveProperties |= ContextSensitivePropertyTransfo rm; 460 changedContextSensitiveProperties |= ContextSensitivePropertyTransfo rm;
461 // if only diff with transform3d parameters changed
462 if (transform().has3DOperation() && other->transform().has3DOperatio n()) {
463 changedContextSensitiveProperties |= ContextSensitivePropertyTra nsform3D;
464 }
465
461 } 466 }
462 467
463 // If the counter directives change, trigger a relayout to re-calculate counter values and rebuild the counter node tree. 468 // If the counter directives change, trigger a relayout to re-calculate counter values and rebuild the counter node tree.
464 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirecti ves.get(); 469 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirecti ves.get();
465 const CounterDirectiveMap* mapB = other->rareNonInheritedData->m_counter Directives.get(); 470 const CounterDirectiveMap* mapB = other->rareNonInheritedData->m_counter Directives.get();
466 if (!(mapA == mapB || (mapA && mapB && *mapA == *mapB))) 471 if (!(mapA == mapB || (mapA && mapB && *mapA == *mapB)))
467 return StyleDifferenceLayout; 472 return StyleDifferenceLayout;
468 473
469 // We only need do layout for opacity changes if adding or losing opacit y could trigger a change 474 // We only need do layout for opacity changes if adding or losing opacit y could trigger a change
470 // in us being a stacking context. 475 // in us being a stacking context.
(...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1640 // right 1645 // right
1641 radiiSum = radii.topRight().height() + radii.bottomRight().height(); 1646 radiiSum = radii.topRight().height() + radii.bottomRight().height();
1642 if (radiiSum > rect.height()) 1647 if (radiiSum > rect.height())
1643 factor = std::min(rect.height() / radiiSum, factor); 1648 factor = std::min(rect.height() / radiiSum, factor);
1644 1649
1645 ASSERT(factor <= 1); 1650 ASSERT(factor <= 1);
1646 return factor; 1651 return factor;
1647 } 1652 }
1648 1653
1649 } // namespace WebCore 1654 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698