Index: Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h |
diff --git a/Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h b/Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h |
deleted file mode 100644 |
index 7f30f1491e854131a16d84fdb98cdc0566092df5..0000000000000000000000000000000000000000 |
--- a/Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.h |
+++ /dev/null |
@@ -1,247 +0,0 @@ |
-/* |
- * Copyright (C) 2010 Apple Inc. All rights reserved. |
- * Copyright (C) 2011, 2012 Collabora Ltd. |
- * Copyright (C) 2012 Intel Corporation. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#ifndef GraphicsLayerClutter_h |
-#define GraphicsLayerClutter_h |
- |
-#if USE(ACCELERATED_COMPOSITING) |
- |
-#include "GraphicsLayer.h" |
-#include "GraphicsLayerClient.h" |
-#include "Image.h" |
-#include "ImageSource.h" |
-#include "PlatformClutterAnimation.h" |
-#include "PlatformClutterLayerClient.h" |
-#include <wtf/HashMap.h> |
-#include <wtf/HashSet.h> |
-#include <wtf/text/StringHash.h> |
- |
-#include <clutter/clutter.h> |
-#include <wtf/gobject/GRefPtr.h> |
- |
-typedef struct _GraphicsLayerActor GraphicsLayerActor; |
- |
-namespace WebCore { |
- |
-class TransformState; |
- |
-typedef Vector<GRefPtr<GraphicsLayerActor> > GraphicsLayerActorList; |
- |
-class GraphicsLayerClutter : public GraphicsLayer, public PlatformClutterLayerClient { |
-public: |
- enum LayerType { LayerTypeLayer, LayerTypeWebLayer, LayerTypeVideoLayer, LayerTypeTransformLayer, LayerTypeRootLayer, LayerTypeCustom }; |
- |
- GraphicsLayerClutter(GraphicsLayerClient*); |
- virtual ~GraphicsLayerClutter(); |
- |
- virtual ClutterActor* platformLayer() const; |
- virtual void addChild(GraphicsLayer*); |
- virtual void addChildAtIndex(GraphicsLayer*, int index); |
- virtual void addChildAbove(GraphicsLayer*, GraphicsLayer* sibling); |
- virtual void addChildBelow(GraphicsLayer*, GraphicsLayer* sibling); |
- virtual void removeFromParent(); |
- virtual bool replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild); |
- virtual bool setChildren(const Vector<GraphicsLayer*>&); |
- virtual void setParent(GraphicsLayer*); |
- |
- virtual void setDrawsContent(bool); |
- virtual void setAnchorPoint(const FloatPoint3D&); |
- virtual void setOpacity(float); |
- virtual void setPosition(const FloatPoint&); |
- virtual void setSize(const FloatSize&); |
- |
- virtual void setTransform(const TransformationMatrix&); |
- virtual void setName(const String&); |
- virtual void setNeedsDisplay(); |
- virtual void setNeedsDisplayInRect(const FloatRect&); |
- |
- virtual void setPreserves3D(bool); |
- |
- virtual bool addAnimation(const KeyframeValueList&, const IntSize& boxSize, const Animation*, const String& animationName, double timeOffset); |
- virtual void removeAnimation(const String& animationName); |
- |
- virtual void flushCompositingState(const FloatRect&); |
- virtual void flushCompositingStateForThisLayerOnly(); |
- |
- struct CommitState { |
- bool ancestorHasTransformAnimation; |
- CommitState() |
- : ancestorHasTransformAnimation(false) |
- { } |
- }; |
- void recursiveCommitChanges(const CommitState&, const TransformState&, float pageScaleFactor = 1, const FloatPoint& positionRelativeToBase = FloatPoint(), bool affectedByPageScale = false); |
- |
-private: |
- FloatPoint computePositionRelativeToBase(float& pageScale) const; |
- |
- bool animationIsRunning(const String& animationName) const |
- { |
- return m_runningAnimations.find(animationName) != m_runningAnimations.end(); |
- } |
- |
- void commitLayerChangesBeforeSublayers(float pageScaleFactor, const FloatPoint& positionRelativeToBase); |
- void commitLayerChangesAfterSublayers(); |
- |
- void updateOpacityOnLayer(); |
- |
- virtual void platformClutterLayerAnimationStarted(double beginTime); |
- virtual void platformClutterLayerPaintContents(GraphicsContext&, const IntRect& clip); |
- |
- GraphicsLayerActor* primaryLayer() const { return m_structuralLayer.get() ? m_structuralLayer.get() : m_layer.get(); } |
- GraphicsLayerActor* layerForSuperlayer() const; |
- GraphicsLayerActor* animatedLayer(AnimatedPropertyID) const; |
- |
- PassRefPtr<PlatformClutterAnimation> createBasicAnimation(const Animation*, const String& keyPath, bool additive); |
- PassRefPtr<PlatformClutterAnimation> createKeyframeAnimation(const Animation*, const String&, bool additive); |
- void setupAnimation(PlatformClutterAnimation*, const Animation*, bool additive); |
- |
- const TimingFunction* timingFunctionForAnimationValue(const AnimationValue*, const Animation*); |
- |
- bool setAnimationEndpoints(const KeyframeValueList&, const Animation*, PlatformClutterAnimation*); |
- bool setAnimationKeyframes(const KeyframeValueList&, const Animation*, PlatformClutterAnimation*); |
- |
- void setAnimationOnLayer(PlatformClutterAnimation*, AnimatedPropertyID, const String& animationName, int index, double timeOffset); |
- bool removeClutterAnimationFromLayer(AnimatedPropertyID, const String& animationName, int index); |
- void pauseClutterAnimationOnLayer(AnimatedPropertyID, const String& animationName, int index, double timeOffset); |
- |
- bool createAnimationFromKeyframes(const KeyframeValueList&, const Animation*, const String& animationName, double timeOffset); |
- bool createTransformAnimationsFromKeyframes(const KeyframeValueList&, const Animation*, const String& animationName, double timeOffset, const IntSize& boxSize); |
- |
- bool setTransformAnimationEndpoints(const KeyframeValueList&, const Animation*, PlatformClutterAnimation*, int functionIndex, TransformOperation::OperationType, bool isMatrixAnimation, const IntSize& boxSize); |
- bool setTransformAnimationKeyframes(const KeyframeValueList&, const Animation*, PlatformClutterAnimation*, int functionIndex, TransformOperation::OperationType, bool isMatrixAnimation, const IntSize& boxSize); |
- |
- enum MoveOrCopy { Move, Copy }; |
- void moveOrCopyAnimations(MoveOrCopy, GraphicsLayerActor* fromLayer, GraphicsLayerActor* toLayer); |
- |
- bool appendToUncommittedAnimations(const KeyframeValueList&, const TransformOperations*, const Animation*, const String& animationName, const IntSize& boxSize, int animationIndex, double timeOffset, bool isMatrixAnimation); |
- |
- enum LayerChange { |
- NoChange = 0, |
- NameChanged = 1 << 1, |
- ChildrenChanged = 1 << 2, // also used for content layer, and preserves-3d, and size if tiling changes? |
- GeometryChanged = 1 << 3, |
- TransformChanged = 1 << 4, |
- ChildrenTransformChanged = 1 << 5, |
- Preserves3DChanged = 1 << 6, |
- MasksToBoundsChanged = 1 << 7, |
- DrawsContentChanged = 1 << 8, // need this? |
- BackgroundColorChanged = 1 << 9, |
- ContentsOpaqueChanged = 1 << 10, |
- BackfaceVisibilityChanged = 1 << 11, |
- OpacityChanged = 1 << 12, |
- AnimationChanged = 1 << 13, |
- DirtyRectsChanged = 1 << 14, |
- ContentsImageChanged = 1 << 15, |
- ContentsMediaLayerChanged = 1 << 16, |
- ContentsCanvasLayerChanged = 1 << 17, |
- ContentsColorLayerChanged = 1 << 18, |
- ContentsRectChanged = 1 << 19, |
- MaskLayerChanged = 1 << 20, |
- ReplicatedLayerChanged = 1 << 21, |
- ContentsNeedsDisplay = 1 << 22, |
- AcceleratesDrawingChanged = 1 << 23, |
- ContentsScaleChanged = 1 << 24, |
- ContentsVisibilityChanged = 1 << 25, |
- VisibleRectChanged = 1 << 26, |
- FiltersChanged = 1 << 27, |
- DebugIndicatorsChanged = 1 << 28 |
- }; |
- |
- typedef unsigned LayerChangeFlags; |
- void noteLayerPropertyChanged(LayerChangeFlags); |
- void noteSublayersChanged(); |
- |
- void updateBackfaceVisibility(); |
- void updateStructuralLayer(); |
- void updateLayerNames(); |
- void updateSublayerList(); |
- void updateGeometry(float pixelAlignmentScale, const FloatPoint& positionRelativeToBase); |
- void updateTransform(); |
- void updateLayerDrawsContent(float pixelAlignmentScale, const FloatPoint& positionRelativeToBase); |
- |
- void updateAnimations(); |
- |
- enum StructuralLayerPurpose { |
- NoStructuralLayer = 0, |
- StructuralLayerForPreserves3D, |
- StructuralLayerForReplicaFlattening |
- }; |
- void ensureStructuralLayer(StructuralLayerPurpose); |
- StructuralLayerPurpose structuralLayerPurpose() const; |
- |
- void repaintLayerDirtyRects(); |
- |
- GRefPtr<GraphicsLayerActor> m_layer; |
- GRefPtr<GraphicsLayerActor> m_structuralLayer; // A layer used for structural reasons, like preserves-3d or replica-flattening. Is the parent of m_layer. |
- |
- Vector<FloatRect> m_dirtyRects; |
- LayerChangeFlags m_uncommittedChanges; |
- |
- // This represents the animation of a single property. There may be multiple transform animations for |
- // a single transition or keyframe animation, so index is used to distinguish these. |
- struct LayerPropertyAnimation { |
- LayerPropertyAnimation(PassRefPtr<PlatformClutterAnimation> caAnimation, const String& animationName, AnimatedPropertyID property, int index, double timeOffset) |
- : m_animation(caAnimation) |
- , m_name(animationName) |
- , m_property(property) |
- , m_index(index) |
- , m_timeOffset(timeOffset) |
- { } |
- |
- RefPtr<PlatformClutterAnimation> m_animation; |
- String m_name; |
- AnimatedPropertyID m_property; |
- int m_index; |
- double m_timeOffset; |
- }; |
- |
- // Uncommitted transitions and animations. |
- Vector<LayerPropertyAnimation> m_uncomittedAnimations; |
- |
- enum Action { Remove, Pause }; |
- struct AnimationProcessingAction { |
- AnimationProcessingAction(Action action = Remove, double timeOffset = 0) |
- : action(action) |
- , timeOffset(timeOffset) |
- { |
- } |
- Action action; |
- double timeOffset; // only used for pause |
- }; |
- typedef HashMap<String, AnimationProcessingAction> AnimationsToProcessMap; |
- AnimationsToProcessMap m_animationsToProcess; |
- |
- // Map of animation names to their associated lists of property animations, so we can remove/pause them. |
- typedef HashMap<String, Vector<LayerPropertyAnimation> > AnimationsMap; |
- AnimationsMap m_runningAnimations; |
-}; |
- |
-} // namespace WebCore |
- |
-#endif // USE(ACCELERATED_COMPOSITING) |
- |
-#endif // GraphicsLayerClutter_h |