summaryrefslogtreecommitdiff
path: root/src/svg_cairo.ml
blob: 84b92c19d02787bc1ca7b824b60656ca889ed40a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(**************************************************************************)
(*  cairo-ocaml -- Objective Caml bindings for Cairo                      *)
(*  Copyright © 2004-2005 Olivier Andrieu                                 *)
(*                                                                        *)
(*  This code is free software and is licensed under the terms of the     *)
(*  GNU Lesser General Public License version 2.1 (the "LGPL").           *)
(**************************************************************************)

type status =
    NO_MEMORY
  | IO_ERROR
  | FILE_NOT_FOUND
  | INVALID_VALUE
  | INVALID_CALL
  | PARSE_ERROR
exception Error of status
let init = Callback.register_exception "svg_cairo_status_exn" (Error NO_MEMORY)

type t

external create  : unit -> t = "ml_svg_cairo_create"

external parse        : t -> string -> unit = "ml_svg_cairo_parse"
external parse_string : t -> string -> unit = "ml_svg_cairo_parse_buffer"

external parse_chunk_begin : t -> unit = "ml_svg_cairo_parse_chunk_begin"
external parse_chunk       : t -> string -> int -> int -> unit = "ml_svg_cairo_parse_chunk"
external parse_chunk_end   : t -> unit = "ml_svg_cairo_parse_chunk_end"

external render : t -> Cairo.t -> unit = "ml_svg_cairo_render"

external set_viewport_dimenstion : t -> int -> int -> unit = "ml_svg_cairo_set_viewport_dimension"

external get_size  : t -> int * int = "ml_svg_cairo_get_size"