| reed@android.com | 6c924ad | 2009-03-31 03:48:49 +0000 | [diff] [blame] | 1 |  | 
 | 2 | #ifndef SkNWayCanvas_DEFINED | 
 | 3 | #define SkNWayCanvas_DEFINED | 
 | 4 |  | 
 | 5 | #include "SkCanvas.h" | 
 | 6 |  | 
 | 7 | class SkNWayCanvas : public SkCanvas { | 
 | 8 | public: | 
 | 9 |     SkNWayCanvas(); | 
 | 10 |     virtual ~SkNWayCanvas(); | 
 | 11 |      | 
 | 12 |     void addCanvas(SkCanvas*); | 
 | 13 |     void removeCanvas(SkCanvas*); | 
 | 14 |     void removeAll(); | 
 | 15 |  | 
 | 16 |     /////////////////////////////////////////////////////////////////////////// | 
 | 17 |     // These are forwarded to the N canvases we're referencing | 
 | 18 |  | 
 | 19 |     virtual int save(SaveFlags flags = kMatrixClip_SaveFlag); | 
 | 20 |     virtual int saveLayer(const SkRect* bounds, const SkPaint* paint, | 
 | 21 |                           SaveFlags flags = kARGB_ClipLayer_SaveFlag); | 
 | 22 |     virtual void restore(); | 
 | 23 |     virtual bool translate(SkScalar dx, SkScalar dy); | 
 | 24 |     virtual bool scale(SkScalar sx, SkScalar sy); | 
 | 25 |     virtual bool rotate(SkScalar degrees); | 
 | 26 |     virtual bool skew(SkScalar sx, SkScalar sy); | 
 | 27 |     virtual bool concat(const SkMatrix& matrix); | 
 | 28 |     virtual void setMatrix(const SkMatrix& matrix); | 
 | 29 |     virtual bool clipRect(const SkRect& rect, | 
 | 30 |                           SkRegion::Op op = SkRegion::kIntersect_Op); | 
 | 31 |     virtual bool clipPath(const SkPath& path, | 
 | 32 |                           SkRegion::Op op = SkRegion::kIntersect_Op); | 
 | 33 |     virtual bool clipRegion(const SkRegion& deviceRgn, | 
 | 34 |                             SkRegion::Op op = SkRegion::kIntersect_Op); | 
 | 35 |  | 
 | 36 |     virtual void drawPaint(const SkPaint& paint); | 
 | 37 |     virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], | 
 | 38 |                             const SkPaint& paint); | 
 | 39 |     virtual void drawRect(const SkRect& rect, const SkPaint& paint); | 
 | 40 |     virtual void drawPath(const SkPath& path, const SkPaint& paint); | 
 | 41 |     virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, | 
 | 42 |                             const SkPaint* paint = NULL); | 
 | 43 |     virtual void drawBitmapRect(const SkBitmap& bitmap, const SkIRect* src, | 
 | 44 |                                 const SkRect& dst, const SkPaint* paint = NULL); | 
 | 45 |     virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, | 
 | 46 |                                   const SkPaint* paint = NULL); | 
 | 47 |     virtual void drawSprite(const SkBitmap& bitmap, int left, int top, | 
 | 48 |                             const SkPaint* paint = NULL); | 
 | 49 |     virtual void drawText(const void* text, size_t byteLength, SkScalar x, | 
 | 50 |                           SkScalar y, const SkPaint& paint); | 
 | 51 |     virtual void drawPosText(const void* text, size_t byteLength, | 
 | 52 |                              const SkPoint pos[], const SkPaint& paint); | 
 | 53 |     virtual void drawPosTextH(const void* text, size_t byteLength, | 
 | 54 |                               const SkScalar xpos[], SkScalar constY, | 
 | 55 |                               const SkPaint& paint); | 
 | 56 |     virtual void drawTextOnPath(const void* text, size_t byteLength, | 
 | 57 |                                 const SkPath& path, const SkMatrix* matrix, | 
 | 58 |                                 const SkPaint& paint); | 
| reed@android.com | f76bacf | 2009-05-13 14:00:33 +0000 | [diff] [blame] | 59 |     virtual void drawPicture(SkPicture&); | 
 | 60 |     virtual void drawShape(SkShape*); | 
| reed@android.com | 6c924ad | 2009-03-31 03:48:49 +0000 | [diff] [blame] | 61 |     virtual void drawVertices(VertexMode vmode, int vertexCount, | 
 | 62 |                               const SkPoint vertices[], const SkPoint texs[], | 
 | 63 |                               const SkColor colors[], SkXfermode* xmode, | 
 | 64 |                               const uint16_t indices[], int indexCount, | 
 | 65 |                               const SkPaint& paint); | 
 | 66 |  | 
 | 67 |     virtual SkBounder* setBounder(SkBounder* bounder); | 
 | 68 |     virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter); | 
 | 69 |      | 
 | 70 | private: | 
 | 71 |     SkTDArray<SkCanvas*> fList; | 
 | 72 |      | 
 | 73 |     class Iter; | 
 | 74 |  | 
 | 75 |     typedef SkCanvas INHERITED; | 
 | 76 | }; | 
 | 77 |  | 
 | 78 |  | 
 | 79 | #endif | 
 | 80 |  |