#ifndef WebTiledLayer_h
#define WebTiledLayer_h
#if USE(ACCELERATED_COMPOSITING)
#include "WebLayer.h"
namespace WebCore {
class WebTiledLayer : public WebLayer {
public:
static PassRefPtr<WebTiledLayer> create(const CGSize& tileSize, GraphicsLayer* owner);
virtual ~WebTiledLayer();
virtual void setBounds(const CGRect&);
virtual void setFrame(const CGRect&);
protected:
WebTiledLayer(const CGSize& tileSize, GraphicsLayer* owner);
virtual WKCACFLayer* internalSublayerAtIndex(int) const;
virtual int internalIndexOfSublayer(const WKCACFLayer*);
virtual size_t internalSublayerCount() const;
virtual void internalInsertSublayer(PassRefPtr<WKCACFLayer>, size_t index);
virtual void internalRemoveAllSublayers();
virtual void internalSetSublayers(const Vector<RefPtr<WKCACFLayer> >&);
virtual void internalSetNeedsDisplay(const CGRect* dirtyRect);
#ifndef NDEBUG
virtual void internalCheckLayerConsistency();
#endif
private:
static void tileDisplayCallback(CACFLayerRef, CGContextRef);
void drawTile(CACFLayerRef, CGContextRef);
CGSize constrainedSize(const CGSize& size) const;
void addTile();
void removeTile();
CACFLayerRef tileAtIndex(int);
int tileCount() const;
void updateTiles();
CGSize m_tileSize;
CGSize m_constrainedSize;
RetainPtr<CACFLayerRef> m_tileParent;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif // WebTiledLayer_h