blob: 1789b6f5138e987c0f7ab5b346e45cbef9e08058 [file] [log] [blame]
edisonn@google.comcf2cfa12013-08-21 16:31:37 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkNulCanvas_DEFINED
9#define SkNulCanvas_DEFINED
edisonn@google.comac03d912013-07-22 15:36:39 +000010
11#include "SkCanvas.h"
12
13class SK_API SkNulCanvas : public SkCanvas {
14public:
15 SK_DECLARE_INST_COUNT(SkNulCanvas);
16
17 SkNulCanvas() {}
robertphillips@google.com1f2f3382013-08-29 11:54:56 +000018 explicit SkNulCanvas(SkBaseDevice* device) : SkCanvas(device) {}
edisonn@google.comac03d912013-07-22 15:36:39 +000019
20 explicit SkNulCanvas(const SkBitmap& bitmap) : SkCanvas(bitmap) {}
21 virtual ~SkNulCanvas() {}
22
23 virtual int save(SaveFlags flags = kMatrixClip_SaveFlag) {return 0;}
24 virtual int saveLayer(const SkRect* bounds, const SkPaint* paint,
25 SaveFlags flags = kARGB_ClipLayer_SaveFlag) {return 0;}
26 int saveLayerAlpha(const SkRect* bounds, U8CPU alpha,
27 SaveFlags flags = kARGB_ClipLayer_SaveFlag) {return 0;}
28 virtual void restore() {}
29 int getSaveCount() const {return 0;}
30 virtual bool isDrawingToLayer() const {return false;}
31 virtual bool translate(SkScalar dx, SkScalar dy) {return true;}
32 virtual bool scale(SkScalar sx, SkScalar sy) {return true;}
33 virtual bool rotate(SkScalar degrees) {return true;}
34 virtual bool skew(SkScalar sx, SkScalar sy) {return true;}
35 virtual bool concat(const SkMatrix& matrix) {return true;}
36 virtual void setMatrix(const SkMatrix& matrix) {}
37 virtual bool clipRect(const SkRect& rect,
38 SkRegion::Op op = SkRegion::kIntersect_Op,
39 bool doAntiAlias = false) {return true;}
40 virtual bool clipRRect(const SkRRect& rrect,
41 SkRegion::Op op = SkRegion::kIntersect_Op,
42 bool doAntiAlias = false) {return true;}
43 virtual bool clipPath(const SkPath& path,
44 SkRegion::Op op = SkRegion::kIntersect_Op,
45 bool doAntiAlias = false) {return true;}
46 virtual bool clipRegion(const SkRegion& deviceRgn,
47 SkRegion::Op op = SkRegion::kIntersect_Op) {return true;}
48 virtual void clear(SkColor) {}
49 virtual void drawPaint(const SkPaint& paint) {}
50 virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[],
51 const SkPaint& paint) {}
52 virtual void drawRect(const SkRect& rect, const SkPaint& paint) {}
53 virtual void drawOval(const SkRect& oval, const SkPaint&) {}
54 virtual void drawRRect(const SkRRect& rrect, const SkPaint& paint) {}
55 virtual void drawPath(const SkPath& path, const SkPaint& paint) {}
56 virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top,
57 const SkPaint* paint = NULL) {}
58 virtual void drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src,
59 const SkRect& dst,
edisonn@google.com2c817772013-08-16 16:30:02 +000060 const SkPaint* paint,
61 DrawBitmapRectFlags flags) {}
edisonn@google.comac03d912013-07-22 15:36:39 +000062 virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m,
63 const SkPaint* paint = NULL) {}
64 virtual void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center,
65 const SkRect& dst, const SkPaint* paint = NULL) {}
66 virtual void drawSprite(const SkBitmap& bitmap, int left, int top,
67 const SkPaint* paint = NULL) {}
68 virtual void drawText(const void* text, size_t byteLength, SkScalar x,
69 SkScalar y, const SkPaint& paint) {}
70 virtual void drawPosText(const void* text, size_t byteLength,
71 const SkPoint pos[], const SkPaint& paint) {}
72 virtual void drawPosTextH(const void* text, size_t byteLength,
73 const SkScalar xpos[], SkScalar constY,
74 const SkPaint& paint) {}
75 virtual void drawTextOnPath(const void* text, size_t byteLength,
76 const SkPath& path, const SkMatrix* matrix,
77 const SkPaint& paint) {}
78 virtual void drawPicture(SkPicture& picture) {}
79 virtual void drawVertices(VertexMode vmode, int vertexCount,
80 const SkPoint vertices[], const SkPoint texs[],
81 const SkColor colors[], SkXfermode* xmode,
82 const uint16_t indices[], int indexCount,
83 const SkPaint& paint) {}
84 virtual void drawData(const void* data, size_t length) {}
85 virtual void beginCommentGroup(const char* description) {}
86 virtual void addComment(const char* kywd, const char* value) {}
87 virtual void endCommentGroup() {}
88 virtual SkBounder* setBounder(SkBounder* bounder) {return NULL;}
89 virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter) {return NULL;}
90
91protected:
92 virtual SkCanvas* canvasForDrawIter() {return NULL;}
robertphillips@google.com1f2f3382013-08-29 11:54:56 +000093 virtual SkBaseDevice* setDevice(SkBaseDevice* device) {return NULL;}
edisonn@google.comac03d912013-07-22 15:36:39 +000094
95private:
96 typedef SkCanvas INHERITED;
97};
98
edisonn@google.comcf2cfa12013-08-21 16:31:37 +000099#endif // SkNulCanvas_DEFINED