CCTiledLayerImpl.h [plain text]
#ifndef CCTiledLayerImpl_h
#define CCTiledLayerImpl_h
#include "LayerTextureUpdater.h"
#include "TransformationMatrix.h"
#include "cc/CCLayerImpl.h"
#include "cc/CCLayerTilingData.h"
namespace WebCore {
class DrawableTile;
class CCTiledLayerImpl : public CCLayerImpl {
public:
static PassOwnPtr<CCTiledLayerImpl> create(int id)
{
return adoptPtr(new CCTiledLayerImpl(id));
}
virtual ~CCTiledLayerImpl();
virtual void appendQuads(CCQuadCuller&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
virtual void bindContentsTexture(LayerRendererChromium*) OVERRIDE;
virtual void dumpLayerProperties(TextStream&, int indent) const OVERRIDE;
void setSkipsDraw(bool skipsDraw) { m_skipsDraw = skipsDraw; }
void setTilingData(const CCLayerTilingData& tiler);
void pushTileProperties(int, int, Platform3DObject textureId, const IntRect& opaqueRect);
void setContentsSwizzled(bool contentsSwizzled) { m_contentsSwizzled = contentsSwizzled; }
bool contentsSwizzled() const { return m_contentsSwizzled; }
virtual Region visibleContentOpaqueRegion() const OVERRIDE;
virtual void didLoseContext() OVERRIDE;
protected:
explicit CCTiledLayerImpl(int id);
bool hasTileAt(int, int) const;
bool hasTextureIdForTileAt(int, int) const;
virtual TransformationMatrix quadTransform() const OVERRIDE;
private:
virtual const char* layerTypeAsString() const OVERRIDE { return "ContentLayer"; }
DrawableTile* tileAt(int, int) const;
DrawableTile* createTile(int, int);
bool m_skipsDraw;
bool m_contentsSwizzled;
OwnPtr<CCLayerTilingData> m_tiler;
};
}
#endif // CCTiledLayerImpl_h