cairo-svg.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* cairo - a vector graphics library with display and print output
  2. *
  3. * cairo-svg.h
  4. *
  5. * Copyright © 2005 Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it either under the terms of the GNU Lesser General Public
  9. * License version 2.1 as published by the Free Software Foundation
  10. * (the "LGPL") or, at your option, under the terms of the Mozilla
  11. * Public License Version 1.1 (the "MPL"). If you do not alter this
  12. * notice, a recipient may use your version of this file under either
  13. * the MPL or the LGPL.
  14. *
  15. * You should have received a copy of the LGPL along with this library
  16. * in the file COPYING-LGPL-2.1; if not, write to the Free Software
  17. * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
  18. * You should have received a copy of the MPL along with this library
  19. * in the file COPYING-MPL-1.1
  20. *
  21. * The contents of this file are subject to the Mozilla Public License
  22. * Version 1.1 (the "License"); you may not use this file except in
  23. * compliance with the License. You may obtain a copy of the License at
  24. * http://www.mozilla.org/MPL/
  25. *
  26. * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
  27. * OF ANY KIND, either express or implied. See the LGPL or the MPL for
  28. * the specific language governing rights and limitations.
  29. *
  30. */
  31. #ifndef CAIRO_SVG_H
  32. #define CAIRO_SVG_H
  33. #include "cairo.h"
  34. #if CAIRO_HAS_SVG_SURFACE
  35. CAIRO_BEGIN_DECLS
  36. /**
  37. * cairo_svg_version_t:
  38. * @CAIRO_SVG_VERSION_1_1: The version 1.1 of the SVG specification. (Since 1.2)
  39. * @CAIRO_SVG_VERSION_1_2: The version 1.2 of the SVG specification. (Since 1.2)
  40. *
  41. * #cairo_svg_version_t is used to describe the version number of the SVG
  42. * specification that a generated SVG file will conform to.
  43. *
  44. * Since: 1.2
  45. **/
  46. typedef enum _cairo_svg_version {
  47. CAIRO_SVG_VERSION_1_1,
  48. CAIRO_SVG_VERSION_1_2
  49. } cairo_svg_version_t;
  50. cairo_public cairo_surface_t *
  51. cairo_svg_surface_create (const char *filename,
  52. double width_in_points,
  53. double height_in_points);
  54. cairo_public cairo_surface_t *
  55. cairo_svg_surface_create_for_stream (cairo_write_func_t write_func,
  56. void *closure,
  57. double width_in_points,
  58. double height_in_points);
  59. cairo_public void
  60. cairo_svg_surface_restrict_to_version (cairo_surface_t *surface,
  61. cairo_svg_version_t version);
  62. cairo_public void
  63. cairo_svg_get_versions (cairo_svg_version_t const **versions,
  64. int *num_versions);
  65. cairo_public const char *
  66. cairo_svg_version_to_string (cairo_svg_version_t version);
  67. CAIRO_END_DECLS
  68. #else /* CAIRO_HAS_SVG_SURFACE */
  69. # error Cairo was not compiled with support for the svg backend
  70. #endif /* CAIRO_HAS_SVG_SURFACE */
  71. #endif /* CAIRO_SVG_H */