GraphicsLayerBlackBerry.h [plain text]
#ifndef GraphicsLayerBlackBerry_h
#define GraphicsLayerBlackBerry_h
#if USE(ACCELERATED_COMPOSITING)
#include "GraphicsLayer.h"
#include <wtf/Vector.h>
namespace WebCore {
class LayerAnimation;
class LayerWebKitThread;
class GraphicsLayerBlackBerry : public GraphicsLayer {
public:
GraphicsLayerBlackBerry(GraphicsLayerClient*);
virtual ~GraphicsLayerBlackBerry();
virtual void setName(const String&);
virtual bool setChildren(const Vector<GraphicsLayer*>&);
virtual void addChild(GraphicsLayer*);
virtual void addChildAtIndex(GraphicsLayer*, int index);
virtual void addChildAbove(GraphicsLayer*, GraphicsLayer* sibling);
virtual void addChildBelow(GraphicsLayer*, GraphicsLayer* sibling);
virtual bool replaceChild(GraphicsLayer* oldChild, GraphicsLayer* newChild);
virtual void removeFromParent();
virtual void setPosition(const FloatPoint&);
virtual void setAnchorPoint(const FloatPoint3D&);
virtual void setSize(const FloatSize&);
virtual void setTransform(const TransformationMatrix&);
virtual void setChildrenTransform(const TransformationMatrix&);
virtual void setPreserves3D(bool);
virtual void setMasksToBounds(bool);
virtual void setDrawsContent(bool);
virtual void setContentsVisible(bool);
virtual void setMaskLayer(GraphicsLayer*);
virtual void setReplicatedByLayer(GraphicsLayer*);
virtual void setFixedPosition(bool);
virtual void setHasFixedContainer(bool);
virtual void setHasFixedAncestorInDOMTree(bool);
virtual void setBackgroundColor(const Color&);
virtual void clearBackgroundColor();
virtual void setContentsOpaque(bool);
virtual void setBackfaceVisibility(bool);
virtual void setOpacity(float);
virtual void setNeedsDisplay();
virtual void setNeedsDisplayInRect(const FloatRect&);
virtual void setContentsNeedsDisplay();
virtual void setContentsRect(const IntRect&);
virtual bool addAnimation(const KeyframeValueList&, const IntSize& boxSize, const Animation*, const String& animationName, double timeOffset);
virtual void pauseAnimation(const String& animationName, double timeOffset);
virtual void removeAnimation(const String& animationName);
virtual void suspendAnimations(double time);
virtual void resumeAnimations();
virtual void setContentsToImage(Image*);
virtual void setContentsToMedia(PlatformLayer*);
virtual void setContentsToCanvas(PlatformLayer*);
virtual PlatformLayer* platformLayer() const;
virtual void setDebugBackgroundColor(const Color&);
virtual void setDebugBorder(const Color&, float borderWidth);
void notifySyncRequired()
{
if (m_client)
m_client->notifySyncRequired(this);
}
void notifyAnimationStarted(double time)
{
if (m_client)
m_client->notifyAnimationStarted(this, time);
}
bool contentsVisible(const IntRect& contentRect) const;
private:
virtual void willBeDestroyed();
void updateOpacityOnLayer();
LayerWebKitThread* primaryLayer() const { return m_transformLayer.get() ? m_transformLayer.get() : m_layer.get(); }
LayerWebKitThread* hostLayerForSublayers() const;
LayerWebKitThread* layerForSuperlayer() const;
void updateSublayerList();
void updateLayerPosition();
void updateLayerSize();
void updateAnchorPoint();
void updateTransform();
void updateChildrenTransform();
void updateMasksToBounds();
void updateContentsOpaque();
void updateBackfaceVisibility();
void updateLayerPreserves3D();
void updateLayerIsDrawable();
void updateFixedPosition();
void updateHasFixedContainer();
void updateHasFixedAncestorInDOMTree();
void updateLayerBackgroundColor();
void updateAnimations();
void updateContentsImage(Image*);
void updateContentsVideo();
void updateContentsRect();
void setupContentsLayer(LayerWebKitThread*);
LayerWebKitThread* contentsLayer() const { return m_contentsLayer.get(); }
RefPtr<LayerWebKitThread> m_layer;
RefPtr<LayerWebKitThread> m_transformLayer;
RefPtr<LayerWebKitThread> m_contentsLayer;
Vector<RefPtr<LayerAnimation> > m_runningAnimations;
Vector<RefPtr<LayerAnimation> > m_suspendedAnimations;
double m_suspendTime;
enum ContentsLayerPurpose {
NoContentsLayer = 0,
ContentsLayerForImage,
ContentsLayerForVideo,
ContentsLayerForCanvas,
};
ContentsLayerPurpose m_contentsLayerPurpose;
bool m_contentsLayerHasBackgroundColor : 1;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif