summaryrefslogtreecommitdiff
path: root/src/svg_cairo.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/svg_cairo.ml')
-rw-r--r--src/svg_cairo.ml26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/svg_cairo.ml b/src/svg_cairo.ml
new file mode 100644
index 0000000..7f3ed52
--- /dev/null
+++ b/src/svg_cairo.ml
@@ -0,0 +1,26 @@
+type status =
+ NO_MEMORY
+ | IO_ERROR
+ | FILE_NOT_FOUND
+ | INVALID_VALUE
+ | INVALID_CALL
+ | PARSE_ERROR
+exception Error of status
+let init = Callback.register "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 -> 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"