SkSVGCanvas.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright 2015 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. #ifndef SkSVGCanvas_DEFINED
  8. #define SkSVGCanvas_DEFINED
  9. #include "SkCanvas.h"
  10. class SkWStream;
  11. class SkXMLWriter;
  12. class SK_API SkSVGCanvas {
  13. public:
  14. /**
  15. * Returns a new canvas that will generate SVG commands from its draw calls, and send
  16. * them to the provided xmlwriter. Ownership of the xmlwriter is not transfered to the canvas,
  17. * but it must stay valid during the lifetime of the returned canvas.
  18. *
  19. * The canvas may buffer some drawing calls, so the output is not guaranteed to be valid
  20. * or complete until the canvas instance is deleted.
  21. *
  22. * The 'bounds' parameter defines an initial SVG viewport (viewBox attribute on the root
  23. * SVG element).
  24. */
  25. static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkWStream*);
  26. // Internal only.
  27. static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkXMLWriter*);
  28. };
  29. #endif