Index: skia/ext/vector_canvas.h |
=================================================================== |
--- skia/ext/vector_canvas.h (revision 78814) |
+++ skia/ext/vector_canvas.h (working copy) |
@@ -7,21 +7,38 @@ |
#pragma once |
#include "skia/ext/platform_canvas.h" |
+#include "skia/ext/vector_platform_device.h" |
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) |
+typedef struct _cairo cairo_t; |
+#endif |
+ |
namespace skia { |
-class PlatformDevice; |
- |
// This class is a specialization of the regular PlatformCanvas. It is designed |
// to work with a VectorDevice to manage platform-specific drawing. It allows |
// using both Skia operations and platform-specific operations. It *doesn't* |
// support reading back from the bitmap backstore since it is not used. |
class SK_API VectorCanvas : public PlatformCanvas { |
public: |
- // Ownership of |device| is transfered to VectorCanvas. |
- explicit VectorCanvas(PlatformDevice* device); |
+ VectorCanvas(); |
+ explicit VectorCanvas(SkDeviceFactory* factory); |
+#if defined(WIN32) |
+ VectorCanvas(HDC dc, int width, int height); |
+#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) |
+ // Caller owns |context|. Ownership is not transferred. |
+ VectorCanvas(cairo_t* context, int width, int height); |
+#endif |
virtual ~VectorCanvas(); |
+ // For two-part init, call if you use the no-argument constructor above |
+#if defined(WIN32) |
+ bool initialize(HDC context, int width, int height); |
+#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) |
+ // Ownership of |context| is not transferred. |
+ bool initialize(cairo_t* context, int width, int height); |
+#endif |
+ |
virtual SkBounder* setBounder(SkBounder* bounder); |
virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter); |