Index: experimental/svg/SkSVGDevice.h |
diff --git a/experimental/svg/SkSVGDevice.h b/experimental/svg/SkSVGDevice.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d6c48e2c0fcf44e5396ab256828fc304685bb732 |
--- /dev/null |
+++ b/experimental/svg/SkSVGDevice.h |
@@ -0,0 +1,72 @@ |
+/* |
+ * Copyright 2015 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkSVGDevice_DEFINED |
+#define SkSVGDevice_DEFINED |
+ |
+#include "SkDevice.h" |
+ |
+class SkWStream; |
+class SkXMLWriter; |
+ |
+class SkSVGDevice : public SkBaseDevice { |
+public: |
+ static SkBaseDevice* Create(const SkISize& size, SkWStream* wstream); |
+ |
+ virtual SkImageInfo imageInfo() const SK_OVERRIDE; |
+ |
+protected: |
+ virtual void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode, size_t count, |
+ const SkPoint[], const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawRect(const SkDraw&, const SkRect& r, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawOval(const SkDraw&, const SkRect& oval, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawRRect(const SkDraw&, const SkRRect& rr, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawPath(const SkDraw&, const SkPath& path, |
+ const SkPaint& paint, |
+ const SkMatrix* prePathMatrix = NULL, |
+ bool pathIsMutable = false) SK_OVERRIDE; |
+ |
+ virtual void drawBitmap(const SkDraw&, const SkBitmap& bitmap, |
+ const SkMatrix& matrix, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawSprite(const SkDraw&, const SkBitmap& bitmap, |
+ int x, int y, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawBitmapRect(const SkDraw&, const SkBitmap&, |
+ const SkRect* srcOrNull, const SkRect& dst, |
+ const SkPaint& paint, |
+ SkCanvas::DrawBitmapRectFlags flags) SK_OVERRIDE; |
+ |
+ virtual void drawText(const SkDraw&, const void* text, size_t len, |
+ SkScalar x, SkScalar y, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawPosText(const SkDraw&, const void* text, size_t len, |
+ const SkScalar pos[], int scalarsPerPos, |
+ const SkPoint& offset, const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len, |
+ const SkPath& path, const SkMatrix* matrix, |
+ const SkPaint& paint) SK_OVERRIDE; |
+ virtual void drawVertices(const SkDraw&, SkCanvas::VertexMode, int vertexCount, |
+ const SkPoint verts[], const SkPoint texs[], |
+ const SkColor colors[], SkXfermode* xmode, |
+ const uint16_t indices[], int indexCount, |
+ const SkPaint& paint) SK_OVERRIDE; |
+ |
+ virtual void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y, |
+ const SkPaint&) SK_OVERRIDE; |
+ virtual const SkBitmap& onAccessBitmap() SK_OVERRIDE; |
+ |
+private: |
+ SkSVGDevice(const SkISize& size, SkWStream* wstream); |
+ virtual ~SkSVGDevice(); |
+ |
+ void addPaint(const SkPaint& paint); |
+ void addTransform(const SkMatrix& t); |
+ |
+ SkXMLWriter* fWriter; |
+ SkBitmap fLegacyBitmap; |
+}; |
+ |
+#endif // SkSVGDevice_DEFINED |