cairo-script.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /* cairo - a vector graphics library with display and print output
  2. *
  3. * Copyright © 2008 Chris Wilson
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it either under the terms of the GNU Lesser General Public
  7. * License version 2.1 as published by the Free Software Foundation
  8. * (the "LGPL") or, at your option, under the terms of the Mozilla
  9. * Public License Version 1.1 (the "MPL"). If you do not alter this
  10. * notice, a recipient may use your version of this file under either
  11. * the MPL or the LGPL.
  12. *
  13. * You should have received a copy of the LGPL along with this library
  14. * in the file COPYING-LGPL-2.1; if not, write to the Free Software
  15. * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
  16. * You should have received a copy of the MPL along with this library
  17. * in the file COPYING-MPL-1.1
  18. *
  19. * The contents of this file are subject to the Mozilla Public License
  20. * Version 1.1 (the "License"); you may not use this file except in
  21. * compliance with the License. You may obtain a copy of the License at
  22. * http://www.mozilla.org/MPL/
  23. *
  24. * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
  25. * OF ANY KIND, either express or implied. See the LGPL or the MPL for
  26. * the specific language governing rights and limitations.
  27. *
  28. * The Original Code is the cairo graphics library.
  29. *
  30. * The Initial Developer of the Original Code is Chris Wilson
  31. *
  32. * Contributor(s):
  33. * Chris Wilson <chris@chris-wilson.co.uk>
  34. */
  35. #ifndef CAIRO_SCRIPT_H
  36. #define CAIRO_SCRIPT_H
  37. #include "cairo.h"
  38. #if CAIRO_HAS_SCRIPT_SURFACE
  39. CAIRO_BEGIN_DECLS
  40. /**
  41. * cairo_script_mode_t:
  42. * @CAIRO_SCRIPT_MODE_ASCII: the output will be in readable text (default). (Since 1.12)
  43. * @CAIRO_SCRIPT_MODE_BINARY: the output will use byte codes. (Since 1.12)
  44. *
  45. * A set of script output variants.
  46. *
  47. * Since: 1.12
  48. **/
  49. typedef enum {
  50. CAIRO_SCRIPT_MODE_ASCII,
  51. CAIRO_SCRIPT_MODE_BINARY
  52. } cairo_script_mode_t;
  53. cairo_public cairo_device_t *
  54. cairo_script_create (const char *filename);
  55. cairo_public cairo_device_t *
  56. cairo_script_create_for_stream (cairo_write_func_t write_func,
  57. void *closure);
  58. cairo_public void
  59. cairo_script_write_comment (cairo_device_t *script,
  60. const char *comment,
  61. int len);
  62. cairo_public void
  63. cairo_script_set_mode (cairo_device_t *script,
  64. cairo_script_mode_t mode);
  65. cairo_public cairo_script_mode_t
  66. cairo_script_get_mode (cairo_device_t *script);
  67. cairo_public cairo_surface_t *
  68. cairo_script_surface_create (cairo_device_t *script,
  69. cairo_content_t content,
  70. double width,
  71. double height);
  72. cairo_public cairo_surface_t *
  73. cairo_script_surface_create_for_target (cairo_device_t *script,
  74. cairo_surface_t *target);
  75. cairo_public cairo_status_t
  76. cairo_script_from_recording_surface (cairo_device_t *script,
  77. cairo_surface_t *recording_surface);
  78. CAIRO_END_DECLS
  79. #else /*CAIRO_HAS_SCRIPT_SURFACE*/
  80. # error Cairo was not compiled with support for the CairoScript backend
  81. #endif /*CAIRO_HAS_SCRIPT_SURFACE*/
  82. #endif /*CAIRO_SCRIPT_H*/