SkNWayCanvas.h revision 6c924ad46c89955e78e071c792ef00df9910b42f
16c924ad46c89955e78e071c792ef00df9910b42freed@android.com 26c924ad46c89955e78e071c792ef00df9910b42freed@android.com#ifndef SkNWayCanvas_DEFINED 36c924ad46c89955e78e071c792ef00df9910b42freed@android.com#define SkNWayCanvas_DEFINED 46c924ad46c89955e78e071c792ef00df9910b42freed@android.com 56c924ad46c89955e78e071c792ef00df9910b42freed@android.com#include "SkCanvas.h" 66c924ad46c89955e78e071c792ef00df9910b42freed@android.com 76c924ad46c89955e78e071c792ef00df9910b42freed@android.comclass SkNWayCanvas : public SkCanvas { 86c924ad46c89955e78e071c792ef00df9910b42freed@android.compublic: 96c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkNWayCanvas(); 106c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual ~SkNWayCanvas(); 116c924ad46c89955e78e071c792ef00df9910b42freed@android.com 126c924ad46c89955e78e071c792ef00df9910b42freed@android.com void addCanvas(SkCanvas*); 136c924ad46c89955e78e071c792ef00df9910b42freed@android.com void removeCanvas(SkCanvas*); 146c924ad46c89955e78e071c792ef00df9910b42freed@android.com void removeAll(); 156c924ad46c89955e78e071c792ef00df9910b42freed@android.com 166c924ad46c89955e78e071c792ef00df9910b42freed@android.com /////////////////////////////////////////////////////////////////////////// 176c924ad46c89955e78e071c792ef00df9910b42freed@android.com // These are forwarded to the N canvases we're referencing 186c924ad46c89955e78e071c792ef00df9910b42freed@android.com 196c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual int save(SaveFlags flags = kMatrixClip_SaveFlag); 206c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual int saveLayer(const SkRect* bounds, const SkPaint* paint, 216c924ad46c89955e78e071c792ef00df9910b42freed@android.com SaveFlags flags = kARGB_ClipLayer_SaveFlag); 226c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void restore(); 236c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool translate(SkScalar dx, SkScalar dy); 246c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool scale(SkScalar sx, SkScalar sy); 256c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool rotate(SkScalar degrees); 266c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool skew(SkScalar sx, SkScalar sy); 276c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool concat(const SkMatrix& matrix); 286c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void setMatrix(const SkMatrix& matrix); 296c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool clipRect(const SkRect& rect, 306c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkRegion::Op op = SkRegion::kIntersect_Op); 316c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool clipPath(const SkPath& path, 326c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkRegion::Op op = SkRegion::kIntersect_Op); 336c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual bool clipRegion(const SkRegion& deviceRgn, 346c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkRegion::Op op = SkRegion::kIntersect_Op); 356c924ad46c89955e78e071c792ef00df9910b42freed@android.com 366c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPaint(const SkPaint& paint); 376c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], 386c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint); 396c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawRect(const SkRect& rect, const SkPaint& paint); 406c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPath(const SkPath& path, const SkPaint& paint); 416c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, 426c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint = NULL); 436c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawBitmapRect(const SkBitmap& bitmap, const SkIRect* src, 446c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkRect& dst, const SkPaint* paint = NULL); 456c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, 466c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint = NULL); 476c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawSprite(const SkBitmap& bitmap, int left, int top, 486c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint = NULL); 496c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawText(const void* text, size_t byteLength, SkScalar x, 506c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkScalar y, const SkPaint& paint); 516c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPosText(const void* text, size_t byteLength, 526c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPoint pos[], const SkPaint& paint); 536c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPosTextH(const void* text, size_t byteLength, 546c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkScalar xpos[], SkScalar constY, 556c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint); 566c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawTextOnPath(const void* text, size_t byteLength, 576c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPath& path, const SkMatrix* matrix, 586c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint); 596c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawPicture(SkPicture& picture); 606c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual void drawVertices(VertexMode vmode, int vertexCount, 616c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPoint vertices[], const SkPoint texs[], 626c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkColor colors[], SkXfermode* xmode, 636c924ad46c89955e78e071c792ef00df9910b42freed@android.com const uint16_t indices[], int indexCount, 646c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint); 656c924ad46c89955e78e071c792ef00df9910b42freed@android.com 666c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual SkBounder* setBounder(SkBounder* bounder); 676c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter); 686c924ad46c89955e78e071c792ef00df9910b42freed@android.com 696c924ad46c89955e78e071c792ef00df9910b42freed@android.comprivate: 706c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkTDArray<SkCanvas*> fList; 716c924ad46c89955e78e071c792ef00df9910b42freed@android.com 726c924ad46c89955e78e071c792ef00df9910b42freed@android.com class Iter; 736c924ad46c89955e78e071c792ef00df9910b42freed@android.com 746c924ad46c89955e78e071c792ef00df9910b42freed@android.com typedef SkCanvas INHERITED; 756c924ad46c89955e78e071c792ef00df9910b42freed@android.com}; 766c924ad46c89955e78e071c792ef00df9910b42freed@android.com 776c924ad46c89955e78e071c792ef00df9910b42freed@android.com 786c924ad46c89955e78e071c792ef00df9910b42freed@android.com#endif 796c924ad46c89955e78e071c792ef00df9910b42freed@android.com 80