Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2014 Google Inc. All rights reserved. | 3 * Copyright (C) 2014 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 | 33 |
| 34 namespace WebCore { | 34 namespace WebCore { |
| 35 | 35 |
| 36 class RenderLayer; | 36 class RenderLayer; |
| 37 | 37 |
| 38 class CompositingLayerAssigner { | 38 class CompositingLayerAssigner { |
| 39 public: | 39 public: |
| 40 explicit CompositingLayerAssigner(RenderLayerCompositor*); | 40 explicit CompositingLayerAssigner(RenderLayerCompositor*); |
| 41 ~CompositingLayerAssigner(); | 41 ~CompositingLayerAssigner(); |
| 42 | 42 |
| 43 void assign(RenderLayer* updateRoot, bool& layersChanged); | 43 void assign(RenderLayer* updateRoot, bool& layersChanged, Vector<RenderLayer *>& layersNeedingRepaint); |
| 44 | 44 |
| 45 // FIXME: This function should be private. We should remove the one caller | 45 // FIXME: This function should be private. We should remove the one caller |
| 46 // once we've fixed the compositing chicken/egg issues. | 46 // once we've fixed the compositing chicken/egg issues. |
| 47 CompositingStateTransitionType computeCompositedLayerUpdate(RenderLayer*); | 47 CompositingStateTransitionType computeCompositedLayerUpdate(RenderLayer*); |
| 48 | 48 |
| 49 private: | 49 private: |
| 50 struct SquashingState { | 50 struct SquashingState { |
| 51 SquashingState() | 51 SquashingState() |
| 52 : mostRecentMapping(0) | 52 : mostRecentMapping(0) |
| 53 , hasMostRecentMapping(false) | 53 , hasMostRecentMapping(false) |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 70 size_t nextSquashedLayerIndex; | 70 size_t nextSquashedLayerIndex; |
| 71 | 71 |
| 72 // The absolute bounding rect of all the squashed layers. | 72 // The absolute bounding rect of all the squashed layers. |
| 73 IntRect boundingRect; | 73 IntRect boundingRect; |
| 74 | 74 |
| 75 // This is simply the sum of the areas of the squashed rects. This can b e very skewed if the rects overlap, | 75 // This is simply the sum of the areas of the squashed rects. This can b e very skewed if the rects overlap, |
| 76 // but should be close enough to drive a heuristic. | 76 // but should be close enough to drive a heuristic. |
| 77 uint64_t totalAreaOfSquashedRects; | 77 uint64_t totalAreaOfSquashedRects; |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 void assignLayersToBackingsInternal(RenderLayer*, SquashingState&, bool& lay ersChanged); | 80 void assignLayersToBackingsInternal(RenderLayer*, SquashingState&, bool& lay ersChanged, Vector<RenderLayer*>& layersNeedingRepaint); |
| 81 void assignLayersToBackingsForReflectionLayer(RenderLayer* reflectionLayer, bool& layersChanged); | 81 void assignLayersToBackingsForReflectionLayer(RenderLayer* reflectionLayer, bool& layersChanged, Vector<RenderLayer*>& layersNeedingRepaint); |
| 82 bool canSquashIntoCurrentSquashingOwner(const RenderLayer*, const SquashingS tate&); | 82 bool canSquashIntoCurrentSquashingOwner(const RenderLayer*, const SquashingS tate&); |
| 83 bool squashingWouldExceedSparsityTolerance(const RenderLayer* candidate, con st SquashingState&); | 83 bool squashingWouldExceedSparsityTolerance(const RenderLayer* candidate, con st SquashingState&); |
| 84 bool updateSquashingAssignment(RenderLayer*, SquashingState&, CompositingSta teTransitionType); | 84 bool updateSquashingAssignment(RenderLayer*, SquashingState&, CompositingSta teTransitionType, Vector<RenderLayer*>& layersNeedingRepaint); |
| 85 bool needsOwnBacking(const RenderLayer*) const; | 85 bool needsOwnBacking(const RenderLayer*) const; |
| 86 | 86 |
| 87 Vector<RenderLayer*> m_layersNeedingRepaint; | |
|
Ian Vollick
2014/06/04 04:40:35
(Note: we've chatted about removing this offline;
chrishtr
2014/06/04 16:35:55
Done.
| |
| 88 | |
| 87 RenderLayerCompositor* m_compositor; | 89 RenderLayerCompositor* m_compositor; |
| 88 bool m_layerSquashingEnabled; | 90 bool m_layerSquashingEnabled; |
| 89 }; | 91 }; |
| 90 | 92 |
| 91 } // namespace WebCore | 93 } // namespace WebCore |
| 92 | 94 |
| 93 #endif // CompositingLayerAssigner_h | 95 #endif // CompositingLayerAssigner_h |
| OLD | NEW |