OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 bool clipsCompositingDescendants(const RenderLayer*) const; | 99 bool clipsCompositingDescendants(const RenderLayer*) const; |
100 | 100 |
101 // Whether the given layer needs an extra 'contents' layer. | 101 // Whether the given layer needs an extra 'contents' layer. |
102 bool needsContentsCompositingLayer(const RenderLayer*) const; | 102 bool needsContentsCompositingLayer(const RenderLayer*) const; |
103 | 103 |
104 bool supportsFixedRootBackgroundCompositing() const; | 104 bool supportsFixedRootBackgroundCompositing() const; |
105 bool needsFixedRootBackgroundLayer(const RenderLayer*) const; | 105 bool needsFixedRootBackgroundLayer(const RenderLayer*) const; |
106 GraphicsLayer* fixedRootBackgroundLayer() const; | 106 GraphicsLayer* fixedRootBackgroundLayer() const; |
107 void setNeedsUpdateFixedBackground() { m_needsUpdateFixedBackground = true;
} | 107 void setNeedsUpdateFixedBackground() { m_needsUpdateFixedBackground = true;
} |
108 | 108 |
109 // Repaint the appropriate layers when the given RenderLayer starts or stops
being composited. | 109 // Issue paint invalidations of the appropriate layers when the given Render
Layer starts or stops being composited. |
110 void repaintOnCompositingChange(RenderLayer*); | 110 void paintInvalidationOnCompositingChange(RenderLayer*); |
111 | 111 |
112 void fullyInvalidatePaint(); | 112 void fullyInvalidatePaint(); |
113 | 113 |
114 RenderLayer* rootRenderLayer() const; | 114 RenderLayer* rootRenderLayer() const; |
115 GraphicsLayer* rootGraphicsLayer() const; | 115 GraphicsLayer* rootGraphicsLayer() const; |
116 GraphicsLayer* scrollLayer() const; | 116 GraphicsLayer* scrollLayer() const; |
117 GraphicsLayer* containerLayer() const; | 117 GraphicsLayer* containerLayer() const; |
118 | 118 |
119 // We don't always have a root transform layer. This function lazily allocat
es one | 119 // We don't always have a root transform layer. This function lazily allocat
es one |
120 // and returns it as required. | 120 // and returns it as required. |
(...skipping 23 matching lines...) Expand all Loading... |
144 void rootFixedBackgroundsChanged(); | 144 void rootFixedBackgroundsChanged(); |
145 | 145 |
146 bool scrollingLayerDidChange(RenderLayer*); | 146 bool scrollingLayerDidChange(RenderLayer*); |
147 | 147 |
148 String layerTreeAsText(LayerTreeFlags); | 148 String layerTreeAsText(LayerTreeFlags); |
149 | 149 |
150 GraphicsLayer* layerForHorizontalScrollbar() const { return m_layerForHorizo
ntalScrollbar.get(); } | 150 GraphicsLayer* layerForHorizontalScrollbar() const { return m_layerForHorizo
ntalScrollbar.get(); } |
151 GraphicsLayer* layerForVerticalScrollbar() const { return m_layerForVertical
Scrollbar.get(); } | 151 GraphicsLayer* layerForVerticalScrollbar() const { return m_layerForVertical
Scrollbar.get(); } |
152 GraphicsLayer* layerForScrollCorner() const { return m_layerForScrollCorner.
get(); } | 152 GraphicsLayer* layerForScrollCorner() const { return m_layerForScrollCorner.
get(); } |
153 | 153 |
154 void resetTrackedRepaintRects(); | 154 void resetTrackedPaintInvalidationRects(); |
155 void setTracksRepaints(bool); | 155 void setTracksPaintInvalidations(bool); |
156 | 156 |
157 virtual String debugName(const GraphicsLayer*) OVERRIDE; | 157 virtual String debugName(const GraphicsLayer*) OVERRIDE; |
158 DocumentLifecycle& lifecycle() const; | 158 DocumentLifecycle& lifecycle() const; |
159 | 159 |
160 void updatePotentialCompositingReasonsFromStyle(RenderLayer*); | 160 void updatePotentialCompositingReasonsFromStyle(RenderLayer*); |
161 | 161 |
162 // Whether the layer could ever be composited. | 162 // Whether the layer could ever be composited. |
163 bool canBeComposited(const RenderLayer*) const; | 163 bool canBeComposited(const RenderLayer*) const; |
164 | 164 |
165 // FIXME: Move allocateOrClearCompositedLayerMapping to CompositingLayerAssi
gner once we've fixed | 165 // FIXME: Move allocateOrClearCompositedLayerMapping to CompositingLayerAssi
gner once we've fixed |
(...skipping 10 matching lines...) Expand all Loading... |
176 class OverlapMap; | 176 class OverlapMap; |
177 | 177 |
178 #if ENABLE(ASSERT) | 178 #if ENABLE(ASSERT) |
179 void assertNoUnresolvedDirtyBits(); | 179 void assertNoUnresolvedDirtyBits(); |
180 #endif | 180 #endif |
181 | 181 |
182 // GraphicsLayerClient implementation | 182 // GraphicsLayerClient implementation |
183 virtual void notifyAnimationStarted(const GraphicsLayer*, double) OVERRIDE {
} | 183 virtual void notifyAnimationStarted(const GraphicsLayer*, double) OVERRIDE {
} |
184 virtual void paintContents(const GraphicsLayer*, GraphicsContext&, GraphicsL
ayerPaintingPhase, const IntRect&) OVERRIDE; | 184 virtual void paintContents(const GraphicsLayer*, GraphicsContext&, GraphicsL
ayerPaintingPhase, const IntRect&) OVERRIDE; |
185 | 185 |
186 virtual bool isTrackingRepaints() const OVERRIDE; | 186 virtual bool isTrackingPaintInvalidations() const OVERRIDE; |
187 | 187 |
188 // Whether the given RL needs to paint into its own separate backing (and he
nce would need its own CompositedLayerMapping). | 188 // Whether the given RL needs to paint into its own separate backing (and he
nce would need its own CompositedLayerMapping). |
189 bool needsOwnBacking(const RenderLayer*) const; | 189 bool needsOwnBacking(const RenderLayer*) const; |
190 | 190 |
191 void updateWithoutAcceleratedCompositing(CompositingUpdateType); | 191 void updateWithoutAcceleratedCompositing(CompositingUpdateType); |
192 void updateIfNeeded(); | 192 void updateIfNeeded(); |
193 | 193 |
194 void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*
, OverlapMap&, struct CompositingRecursionData&, bool& descendantHas3DTransform,
Vector<RenderLayer*>& unclippedDescendants, IntRect& absoluteDecendantBoundingB
ox); | 194 void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*
, OverlapMap&, struct CompositingRecursionData&, bool& descendantHas3DTransform,
Vector<RenderLayer*>& unclippedDescendants, IntRect& absoluteDecendantBoundingB
ox); |
195 | 195 |
196 bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const; | 196 bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 | 229 |
230 // The root layer doesn't composite if it's a non-scrollable frame. | 230 // The root layer doesn't composite if it's a non-scrollable frame. |
231 // So, after a layout we set this dirty bit to know that we need | 231 // So, after a layout we set this dirty bit to know that we need |
232 // to recompute whether the root layer should composite even if | 232 // to recompute whether the root layer should composite even if |
233 // none of its descendants composite. | 233 // none of its descendants composite. |
234 // FIXME: Get rid of all the callers of setCompositingModeEnabled | 234 // FIXME: Get rid of all the callers of setCompositingModeEnabled |
235 // except the one in updateIfNeeded, then rename this to | 235 // except the one in updateIfNeeded, then rename this to |
236 // m_compositingDirty. | 236 // m_compositingDirty. |
237 bool m_rootShouldAlwaysCompositeDirty; | 237 bool m_rootShouldAlwaysCompositeDirty; |
238 bool m_needsUpdateFixedBackground; | 238 bool m_needsUpdateFixedBackground; |
239 bool m_isTrackingRepaints; // Used for testing. | 239 bool m_isTrackingPaintInvalidations; // Used for testing. |
240 | 240 |
241 RootLayerAttachment m_rootLayerAttachment; | 241 RootLayerAttachment m_rootLayerAttachment; |
242 | 242 |
243 // Enclosing container layer, which clips for iframe content | 243 // Enclosing container layer, which clips for iframe content |
244 OwnPtr<GraphicsLayer> m_containerLayer; | 244 OwnPtr<GraphicsLayer> m_containerLayer; |
245 OwnPtr<GraphicsLayer> m_scrollLayer; | 245 OwnPtr<GraphicsLayer> m_scrollLayer; |
246 | 246 |
247 // Enclosing layer for overflow controls and the clipping layer | 247 // Enclosing layer for overflow controls and the clipping layer |
248 OwnPtr<GraphicsLayer> m_overflowControlsHostLayer; | 248 OwnPtr<GraphicsLayer> m_overflowControlsHostLayer; |
249 | 249 |
250 // Layers for overflow controls | 250 // Layers for overflow controls |
251 OwnPtr<GraphicsLayer> m_layerForHorizontalScrollbar; | 251 OwnPtr<GraphicsLayer> m_layerForHorizontalScrollbar; |
252 OwnPtr<GraphicsLayer> m_layerForVerticalScrollbar; | 252 OwnPtr<GraphicsLayer> m_layerForVerticalScrollbar; |
253 OwnPtr<GraphicsLayer> m_layerForScrollCorner; | 253 OwnPtr<GraphicsLayer> m_layerForScrollCorner; |
254 #if USE(RUBBER_BANDING) | 254 #if USE(RUBBER_BANDING) |
255 OwnPtr<GraphicsLayer> m_layerForOverhangShadow; | 255 OwnPtr<GraphicsLayer> m_layerForOverhangShadow; |
256 #endif | 256 #endif |
257 | 257 |
258 bool m_inOverlayFullscreenVideo; | 258 bool m_inOverlayFullscreenVideo; |
259 }; | 259 }; |
260 | 260 |
261 } // namespace blink | 261 } // namespace blink |
262 | 262 |
263 #endif // RenderLayerCompositor_h | 263 #endif // RenderLayerCompositor_h |
OLD | NEW |