Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 /* | |
| 2 * Copyright 2013 The Android Open Source Project | |
| 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 | |
| 9 #ifndef SkCanvasSimplifier_DEFINED | |
| 10 #define SkCanvasSimplifier_DEFINED | |
| 11 | |
| 12 #include "SkCanvas.h" | |
| 13 | |
| 14 /** \class SkCanvasSimplifier | |
| 15 | |
| 16 Canvas Simplifier will simplify the geometry and the paint so it is easier t o have the vectorial | |
| 17 properties preserved. | |
| 18 | |
| 19 Right now it is a pass though layer, that calls into the base canvas. | |
| 20 | |
| 21 TODO(edisonn): For example instead f using perspective matrix, it will flatt en the geometry so | |
| 22 PDF can export the geometry easier. | |
| 23 | |
| 24 TODO(edisonn): It could update the shader of the paint, or do other xfer tha t PDF does not | |
| 25 support natively. | |
| 26 */ | |
| 27 class SkCanvasSimplifier : public SkCanvas { | |
|
vandebo (ex-Chrome)
2013/09/27 15:50:17
There's probably a better name for this: SkPerspec
edisonn
2013/10/04 19:40:37
removed
| |
| 28 public: | |
| 29 SK_DECLARE_INST_COUNT(SkCanvasSimplifier) | |
| 30 | |
| 31 SkCanvasSimplifier(); | |
| 32 | |
| 33 /** Construct a canvas with the specified device to draw into. | |
| 34 @param device Specifies a device for the canvas to draw into. | |
| 35 */ | |
| 36 explicit SkCanvasSimplifier(SkBaseDevice* device); | |
| 37 | |
| 38 virtual ~SkCanvasSimplifier(); | |
| 39 | |
| 40 virtual int save(SaveFlags flags = kMatrixClip_SaveFlag); | |
| 41 | |
| 42 virtual int saveLayer(const SkRect* bounds, const SkPaint* paint, | |
| 43 SaveFlags flags = kARGB_ClipLayer_SaveFlag); | |
| 44 | |
| 45 virtual void restore(); | |
| 46 | |
| 47 virtual bool isDrawingToLayer() const; | |
| 48 | |
| 49 virtual bool translate(SkScalar dx, SkScalar dy); | |
| 50 | |
| 51 virtual bool scale(SkScalar sx, SkScalar sy); | |
| 52 | |
| 53 virtual bool rotate(SkScalar degrees); | |
| 54 | |
| 55 virtual bool skew(SkScalar sx, SkScalar sy); | |
| 56 | |
| 57 virtual bool concat(const SkMatrix& matrix); | |
| 58 | |
| 59 virtual void setMatrix(const SkMatrix& matrix); | |
| 60 | |
| 61 virtual bool clipRect(const SkRect& rect, | |
| 62 SkRegion::Op op = SkRegion::kIntersect_Op, | |
| 63 bool doAntiAlias = false); | |
| 64 | |
| 65 virtual bool clipRRect(const SkRRect& rrect, | |
| 66 SkRegion::Op op = SkRegion::kIntersect_Op, | |
| 67 bool doAntiAlias = false); | |
| 68 | |
| 69 virtual bool clipPath(const SkPath& path, | |
| 70 SkRegion::Op op = SkRegion::kIntersect_Op, | |
| 71 bool doAntiAlias = false); | |
| 72 | |
| 73 virtual bool clipRegion(const SkRegion& deviceRgn, | |
| 74 SkRegion::Op op = SkRegion::kIntersect_Op); | |
| 75 | |
| 76 virtual void clear(SkColor); | |
| 77 | |
| 78 virtual void drawPaint(const SkPaint& paint); | |
| 79 | |
| 80 virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], | |
| 81 const SkPaint& paint); | |
| 82 | |
| 83 virtual void drawRect(const SkRect& rect, const SkPaint& paint); | |
| 84 | |
| 85 virtual void drawOval(const SkRect& oval, const SkPaint&); | |
| 86 | |
| 87 virtual void drawRRect(const SkRRect& rrect, const SkPaint& paint); | |
| 88 | |
| 89 virtual void drawPath(const SkPath& path, const SkPaint& paint); | |
| 90 | |
| 91 virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, | |
| 92 const SkPaint* paint = NULL); | |
| 93 | |
| 94 virtual void drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, | |
| 95 const SkRect& dst, | |
| 96 const SkPaint* paint = NULL, | |
| 97 DrawBitmapRectFlags flags = kNone_DrawBitm apRectFlag); | |
| 98 | |
| 99 virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, | |
| 100 const SkPaint* paint = NULL); | |
| 101 | |
| 102 virtual void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, | |
| 103 const SkRect& dst, const SkPaint* paint = NULL); | |
| 104 | |
| 105 virtual void drawSprite(const SkBitmap& bitmap, int left, int top, | |
| 106 const SkPaint* paint = NULL); | |
| 107 | |
| 108 | |
| 109 virtual void drawText(const void* text, size_t byteLength, SkScalar x, | |
| 110 SkScalar y, const SkPaint& paint); | |
| 111 | |
| 112 virtual void drawPosText(const void* text, size_t byteLength, | |
| 113 const SkPoint pos[], const SkPaint& paint); | |
| 114 | |
| 115 virtual void drawPosTextH(const void* text, size_t byteLength, | |
| 116 const SkScalar xpos[], SkScalar constY, | |
| 117 const SkPaint& paint); | |
| 118 | |
| 119 virtual void drawTextOnPath(const void* text, size_t byteLength, | |
| 120 const SkPath& path, const SkMatrix* matrix, | |
| 121 const SkPaint& paint); | |
| 122 | |
| 123 virtual void drawPicture(SkPicture& picture); | |
| 124 | |
| 125 virtual void drawVertices(VertexMode vmode, int vertexCount, | |
| 126 const SkPoint vertices[], const SkPoint texs[], | |
| 127 const SkColor colors[], SkXfermode* xmode, | |
| 128 const uint16_t indices[], int indexCount, | |
| 129 const SkPaint& paint); | |
| 130 | |
| 131 | |
| 132 virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter); | |
| 133 | |
| 134 | |
| 135 private: | |
| 136 typedef SkCanvas INHERITED; | |
| 137 }; | |
| 138 | |
| 139 #endif // SkCanvasSimplifier_DEFINED | |
| OLD | NEW |