GraphicsLayerChromium.h [plain text]
#ifndef GraphicsLayerChromium_h
#define GraphicsLayerChromium_h
#if USE(ACCELERATED_COMPOSITING)
#include "GraphicsContext.h"
#include "GraphicsLayer.h"
namespace WebCore {
class LayerChromium;
class GraphicsLayerChromium : public GraphicsLayer {
public:
GraphicsLayerChromium(GraphicsLayerClient*);
virtual ~GraphicsLayerChromium();
virtual void setName(const String&);
virtual NativeLayer nativeLayer() const;
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 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 setContentsRect(const IntRect&);
virtual void setContentsToImage(Image*);
virtual void setContentsToVideo(PlatformLayer*);
virtual PlatformLayer* platformLayer() const;
virtual void setDebugBackgroundColor(const Color&);
virtual void setDebugBorder(const Color&, float borderWidth);
virtual void setGeometryOrientation(CompositingCoordinatesOrientation);
void notifySyncRequired()
{
if (m_client)
m_client->notifySyncRequired(this);
}
private:
void updateOpacityOnLayer();
LayerChromium* primaryLayer() const { return m_transformLayer.get() ? m_transformLayer.get() : m_layer.get(); }
LayerChromium* hostLayerForSublayers() const;
LayerChromium* layerForSuperlayer() const;
void updateSublayerList();
void updateLayerPosition();
void updateLayerSize();
void updateAnchorPoint();
void updateTransform();
void updateChildrenTransform();
void updateMasksToBounds();
void updateContentsOpaque();
void updateBackfaceVisibility();
void updateLayerPreserves3D();
void updateLayerDrawsContent();
void updateLayerBackgroundColor();
void updateContentsImage();
void updateContentsVideo();
void updateContentsRect();
void updateGeometryOrientation();
void setupContentsLayer(LayerChromium*);
LayerChromium* contentsLayer() const { return m_contentsLayer.get(); }
RefPtr<LayerChromium> m_layer;
RefPtr<LayerChromium> m_transformLayer;
RefPtr<LayerChromium> m_contentsLayer;
enum ContentsLayerPurpose {
NoContentsLayer = 0,
ContentsLayerForImage,
ContentsLayerForVideo
};
ContentsLayerPurpose m_contentsLayerPurpose;
bool m_contentsLayerHasBackgroundColor : 1;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif