summaryrefslogtreecommitdiff
path: root/src/cairo.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo.ml')
-rw-r--r--src/cairo.ml23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/cairo.ml b/src/cairo.ml
index c8e598e..de43d4d 100644
--- a/src/cairo.ml
+++ b/src/cairo.ml
@@ -1,5 +1,6 @@
type status =
- INVALID_RESTORE
+ NO_MEMORY
+ | INVALID_RESTORE
| INVALID_POP_GROUP
| NO_CURRENT_POINT
| INVALID_MATRIX
@@ -23,7 +24,8 @@ external create : unit -> t = "ml_cairo_create"
external destroy : cr:t -> unit = "ml_cairo_destroy"
external save : cr:t -> unit = "ml_cairo_save"
external restore : cr:t -> unit = "ml_cairo_restore"
-external copy : dest:t -> src:t -> unit = "ml_cairo_copy"
+external _copy : dest:t -> src:t -> unit = "ml_cairo_copy"
+let copy src = let dest = create () in _copy ~dest ~src ; dest
external set_target_surface :
cr:t -> surface:surface -> unit = "ml_cairo_set_target_surface"
external set_target_image :
@@ -32,6 +34,10 @@ external set_target_ps :
cr:t -> file:Cairo_channel.t -> width_inches:float -> height_inches:float ->
x_pixels_per_inch:float -> y_pixels_per_inch:float ->
unit = "ml_cairo_set_target_ps_bc" "ml_cairo_set_target_ps"
+external set_target_pdf :
+ cr:t -> file:Cairo_channel.t -> width_inches:float -> height_inches:float ->
+ x_pixels_per_inch:float -> y_pixels_per_inch:float ->
+ unit = "ml_cairo_set_target_pdf_bc" "ml_cairo_set_target_pdf"
external set_target_png :
cr:t -> file:Cairo_channel.t -> format -> width:int -> height:int -> unit = "ml_cairo_set_target_png"
@@ -58,9 +64,9 @@ external set_operator : cr:t -> op:operator -> unit = "ml_cairo_set_operator"
external set_rgb_color :
cr:t -> red:float -> green:float -> blue:float ->
unit = "ml_cairo_set_rgb_color"
-external set_alpha : cr:t -> alpha:float -> unit = "ml_cairo_set_alpha"
external set_pattern :
cr:t -> pattern:pattern -> unit = "ml_cairo_set_pattern"
+external set_alpha : cr:t -> alpha:float -> unit = "ml_cairo_set_alpha"
external set_tolerance :
cr:t -> tolerance:float -> unit = "ml_cairo_set_tolerance"
type fill_rule =
@@ -189,6 +195,7 @@ external show_surface :
external current_operator : cr:t -> operator = "ml_cairo_current_operator"
external current_rgb_color :
cr:t -> float * float * float = "ml_cairo_current_rgb_color"
+external current_pattern : cr:t -> pattern = "ml_cairo_current_pattern"
external current_alpha : cr:t -> float = "ml_cairo_current_alpha"
external current_tolerance : cr:t -> float = "ml_cairo_current_tolerance"
external current_point : cr:t -> point = "ml_cairo_current_point"
@@ -201,7 +208,10 @@ external current_matrix :
cr:t -> matrix:matrix -> unit = "ml_cairo_current_matrix"
external current_target_surface :
cr:t -> surface = "ml_cairo_current_target_surface"
-external current_pattern : cr:t -> pattern = "ml_cairo_current_pattern"
+
+external status : t -> status option = "ml_cairo_status"
+external status_string : t -> string = "ml_cairo_status_string"
+
external surface_create_for_image :
image -> surface = "ml_cairo_surface_create_for_image"
external surface_create_similar :
@@ -224,6 +234,7 @@ type filter =
| FILTER_GAUSSIAN
external surface_set_filter :
surface:surface -> filter:filter -> unit = "ml_cairo_surface_set_filter"
+external surface_get_filter : surface:surface -> filter = "ml_cairo_surface_get_filter"
external pattern_create_for_surface : surface -> pattern = "ml_cairo_pattern_create_for_surface"
external pattern_create_linear : x0:float -> y0:float -> x1:float -> y1:float -> pattern
= "ml_cairo_pattern_create_linear"
@@ -254,6 +265,10 @@ external ps_surface_create :
file:Cairo_channel.t -> width_inches:float -> height_inches:float ->
x_pixels_per_inch:float -> y_pixels_per_inch:float ->
surface = "ml_cairo_ps_surface_create"
+external pdf_surface_create :
+ file:Cairo_channel.t -> width_inches:float -> height_inches:float ->
+ x_pixels_per_inch:float -> y_pixels_per_inch:float ->
+ surface = "ml_cairo_pdf_surface_create"
external png_surface_create :
file:Cairo_channel.t -> format -> width:float -> height:float ->
surface = "ml_cairo_png_surface_create"