sig
type warning =
[ `Other of string
| `Textless_glyph_cut of Vg.I.t
| `Unsupported_cut of Vg.P.area * Vg.I.t
| `Unsupported_glyph_cut of Vg.P.area * Vg.I.t ]
val pp_warning : Format.formatter -> Vg.Vgr.warning -> unit
type warn = Vg.Vgr.warning -> unit
val xmp :
?title:string ->
?authors:string list ->
?subjects:string list ->
?description:string ->
?rights:string ->
?creator_tool:string -> ?create_date:float -> unit -> string
type renderable = Gg.size2 * Gg.box2 * Vg.image
type dst_stored =
[ `Buffer of Buffer.t | `Channel of Pervasives.out_channel | `Manual ]
type dst =
[ `Buffer of Buffer.t
| `Channel of Pervasives.out_channel
| `Manual
| `Other ]
type 'a target constraint 'a = [< Vg.Vgr.dst ]
type t = Vg.renderer
val create :
?limit:int ->
?warn:Vg.Vgr.warn ->
([< Vg.Vgr.dst ] as 'a) Vg.Vgr.target -> 'a -> Vg.renderer
val render :
Vg.renderer ->
[< `Await | `End | `Image of Vg.Vgr.renderable ] -> [ `Ok | `Partial ]
val renderer_dst : Vg.renderer -> Vg.Vgr.dst
val renderer_limit : Vg.renderer -> int
module Manual :
sig
val dst : Vg.renderer -> string -> int -> int -> unit
val dst_rem : Vg.renderer -> int
end
module Private :
sig
module Data :
sig
type segment =
[ `Ccurve of Gg.p2 * Gg.p2 * Gg.p2
| `Close
| `Earc of bool * bool * float * Gg.size2 * Gg.p2
| `Line of Gg.p2
| `Qcurve of Gg.p2 * Gg.p2
| `Sub of Gg.p2 ]
type path = Vg.Vgr.Private.Data.segment list
val of_path : Vg.P.t -> Vg.Vgr.Private.Data.path
type tr =
Move of Gg.v2
| Rot of float
| Scale of Gg.v2
| Matrix of Gg.m3
val tr_to_m3 : Vg.Vgr.Private.Data.tr -> Gg.M3.t
val inv_tr_to_m3 : Vg.Vgr.Private.Data.tr -> Gg.M3.t
type blender =
[ `Atop | `Copy | `In | `Out | `Over | `Plus | `Xor ]
type primitive =
Const of Gg.color
| Axial of Gg.Color.stops * Gg.p2 * Gg.p2
| Radial of Gg.Color.stops * Gg.p2 * Gg.p2 * float
| Raster of Gg.box2 * Gg.raster
type glyph_run = {
font : Vg.font;
text : string option;
o : Gg.p2;
blocks : bool * (int * int) list;
advances : Gg.v2 list;
glyphs : Vg.glyph list;
}
type image =
Primitive of Vg.Vgr.Private.Data.primitive
| Cut of Vg.P.area * Vg.Vgr.Private.Data.path *
Vg.Vgr.Private.Data.image
| Cut_glyphs of Vg.P.area * Vg.Vgr.Private.Data.glyph_run *
Vg.Vgr.Private.Data.image
| Blend of Vg.Vgr.Private.Data.blender * float option *
Vg.Vgr.Private.Data.image * Vg.Vgr.Private.Data.image
| Tr of Vg.Vgr.Private.Data.tr * Vg.Vgr.Private.Data.image
val of_image : Vg.I.t -> Vg.Vgr.Private.Data.image
end
module Font :
sig
val css_font : unit:string -> Vg.font -> string
val css_weight : Vg.font -> string
val css_slant : Vg.font -> string
end
module P :
sig
val of_data : Vg.Vgr.Private.Data.path -> Vg.P.t
val earc_params :
Gg.p2 ->
large:bool ->
cw:bool ->
float -> Gg.v2 -> Gg.p2 -> (Gg.p2 * Gg.m2 * float * float) option
val miter_limit : Vg.P.outline -> float
end
module I : sig val of_data : Vg.Vgr.Private.Data.image -> Vg.I.t end
type renderer
type k = Vg.Vgr.Private.renderer -> [ `Ok | `Partial ]
type render_fun =
[ `End | `Image of Gg.size2 * Gg.box2 * Vg.Vgr.Private.Data.image ] ->
Vg.Vgr.Private.k -> Vg.Vgr.Private.k
type 'a render_target =
Vg.Vgr.Private.renderer -> 'a -> bool * Vg.Vgr.Private.render_fun
constraint 'a = [< Vg.Vgr.dst ]
val create_target :
([< Vg.Vgr.dst ] as 'a) Vg.Vgr.Private.render_target ->
'a Vg.Vgr.target
val renderer : Vg.Vgr.t -> Vg.Vgr.Private.renderer
val limit : Vg.Vgr.Private.renderer -> int
val warn : Vg.Vgr.Private.renderer -> Vg.Vgr.warning -> unit
val partial :
Vg.Vgr.Private.k -> Vg.Vgr.Private.renderer -> [> `Partial ]
val flush :
Vg.Vgr.Private.k -> Vg.Vgr.Private.renderer -> [ `Ok | `Partial ]
val writeb :
int ->
Vg.Vgr.Private.k -> Vg.Vgr.Private.renderer -> [ `Ok | `Partial ]
val writes :
string ->
int ->
int ->
Vg.Vgr.Private.k -> Vg.Vgr.Private.renderer -> [ `Ok | `Partial ]
val writebuf :
Buffer.t ->
int ->
int ->
Vg.Vgr.Private.k -> Vg.Vgr.Private.renderer -> [ `Ok | `Partial ]
val add_xml_data : Buffer.t -> string -> unit
end
end