RenderLayer* rootRenderLayer() const;
GraphicsLayer* rootGraphicsLayer() const;
+ GraphicsLayer* scrollLayer() const;
enum RootLayerAttachment {
RootLayerUnattached,
void clearBackingForAllLayers();
+ void layerBecameComposited(const RenderLayer*) { ++m_compositedLayerCount; }
+ void layerBecameNonComposited(const RenderLayer*)
+ {
+ ASSERT(m_compositedLayerCount > 0);
+ --m_compositedLayerCount;
+ }
+
void didStartAcceleratedAnimation(CSSPropertyID);
#if ENABLE(VIDEO)
GraphicsLayer* layerForOverhangAreas() const { return m_layerForOverhangAreas.get(); }
#endif
+#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
+ void platformLayerChanged(RenderLayer*, PlatformLayer* oldLayer, PlatformLayer* newLayer);
+ void scrollingLayerAddedOrUpdated(RenderLayer*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer, const IntSize& scrollSize);
+ void scrollingLayerRemoved(RenderLayer*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer);
+ void registerAllScrollingLayers();
+ void unregisterAllScrollingLayers();
+#endif
+
private:
// GraphicsLayerClient Implementation
virtual void notifyAnimationStarted(const GraphicsLayer*, double) { }
// (the clipLayer and scrollLayer) should never show debugging info.
virtual bool showDebugBorders() const { return false; }
virtual bool showRepaintCounter() const { return false; }
+#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
+ virtual void platformLayerChanged(GraphicsLayer*, PlatformLayer* /* oldPlatformLayer */, PlatformLayer* /* newPlatformLayer */) { }
+#endif
// Whether the given RL needs a compositing layer.
bool needsToBeComposited(const RenderLayer*) const;
bool layerHas3DContent(const RenderLayer*) const;
bool hasNonIdentity3DTransform(RenderObject*) const;
+
+ bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const;
void ensureRootLayer();
void destroyRootLayer();
bool requiresCompositingForFrame(RenderObject*) const;
bool requiresCompositingWhenDescendantsAreCompositing(RenderObject*) const;
bool requiresCompositingForFullScreen(RenderObject*) const;
+#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
+ bool requiresCompositingForScrolling(RenderObject* renderer) const;
+#endif
bool requiresCompositingForScrollableFrame() const;
+ bool requiresCompositingForPosition(RenderObject*, const RenderLayer*) const;
bool requiresScrollLayer(RootLayerAttachment) const;
bool requiresHorizontalScrollbarLayer() const;
bool requiresOverhangAreasLayer() const;
#endif
+#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
+ ChromeClient* chromeClient() const;
+#endif
+
private:
RenderView* m_renderView;
OwnPtr<GraphicsLayer> m_rootContentLayer;
bool m_hasAcceleratedCompositing;
ChromeClient::CompositingTriggerFlags m_compositingTriggers;
+ int m_compositedLayerCount;
bool m_showDebugBorders;
bool m_showRepaintCounter;
bool m_compositingConsultsOverlap;
// FIXME: once set, this is never cleared.
mutable bool m_compositingDependsOnGeometry;
+ mutable bool m_compositingNeedsUpdate;
+
bool m_compositing;
bool m_compositingLayersNeedRebuild;
bool m_flushingLayers;
OwnPtr<GraphicsLayer> m_clipLayer;
OwnPtr<GraphicsLayer> m_scrollLayer;
+#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
+ HashSet<RenderLayer*> m_scrollingLayers;
+#endif
+
// Enclosing layer for overflow controls and the clipping layer
OwnPtr<GraphicsLayer> m_overflowControlsHostLayer;