diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/effects/SkNWayCanvas.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/include/effects/SkNWayCanvas.h b/include/effects/SkNWayCanvas.h new file mode 100644 index 0000000000..2394037157 --- /dev/null +++ b/include/effects/SkNWayCanvas.h @@ -0,0 +1,79 @@ + +#ifndef SkNWayCanvas_DEFINED +#define SkNWayCanvas_DEFINED + +#include "SkCanvas.h" + +class SkNWayCanvas : public SkCanvas { +public: + SkNWayCanvas(); + virtual ~SkNWayCanvas(); + + void addCanvas(SkCanvas*); + void removeCanvas(SkCanvas*); + void removeAll(); + + /////////////////////////////////////////////////////////////////////////// + // These are forwarded to the N canvases we're referencing + + virtual int save(SaveFlags flags = kMatrixClip_SaveFlag); + virtual int saveLayer(const SkRect* bounds, const SkPaint* paint, + SaveFlags flags = kARGB_ClipLayer_SaveFlag); + virtual void restore(); + virtual bool translate(SkScalar dx, SkScalar dy); + virtual bool scale(SkScalar sx, SkScalar sy); + virtual bool rotate(SkScalar degrees); + virtual bool skew(SkScalar sx, SkScalar sy); + virtual bool concat(const SkMatrix& matrix); + virtual void setMatrix(const SkMatrix& matrix); + virtual bool clipRect(const SkRect& rect, + SkRegion::Op op = SkRegion::kIntersect_Op); + virtual bool clipPath(const SkPath& path, + SkRegion::Op op = SkRegion::kIntersect_Op); + virtual bool clipRegion(const SkRegion& deviceRgn, + SkRegion::Op op = SkRegion::kIntersect_Op); + + virtual void drawPaint(const SkPaint& paint); + virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], + const SkPaint& paint); + virtual void drawRect(const SkRect& rect, const SkPaint& paint); + virtual void drawPath(const SkPath& path, const SkPaint& paint); + virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, + const SkPaint* paint = NULL); + virtual void drawBitmapRect(const SkBitmap& bitmap, const SkIRect* src, + const SkRect& dst, const SkPaint* paint = NULL); + virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, + const SkPaint* paint = NULL); + virtual void drawSprite(const SkBitmap& bitmap, int left, int top, + const SkPaint* paint = NULL); + virtual void drawText(const void* text, size_t byteLength, SkScalar x, + SkScalar y, const SkPaint& paint); + virtual void drawPosText(const void* text, size_t byteLength, + const SkPoint pos[], const SkPaint& paint); + virtual void drawPosTextH(const void* text, size_t byteLength, + const SkScalar xpos[], SkScalar constY, + const SkPaint& paint); + virtual void drawTextOnPath(const void* text, size_t byteLength, + const SkPath& path, const SkMatrix* matrix, + const SkPaint& paint); + virtual void drawPicture(SkPicture& picture); + virtual void drawVertices(VertexMode vmode, int vertexCount, + const SkPoint vertices[], const SkPoint texs[], + const SkColor colors[], SkXfermode* xmode, + const uint16_t indices[], int indexCount, + const SkPaint& paint); + + virtual SkBounder* setBounder(SkBounder* bounder); + virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter); + +private: + SkTDArray<SkCanvas*> fList; + + class Iter; + + typedef SkCanvas INHERITED; +}; + + +#endif + |