Page
Library
Module
Module type
Parameter
Class
Class type
Source
Vgr.PrivatePrivate functions for implementing renderers.
Warning. Vg users should not use these definitions, they exposes Vg's internals for implementing renderers. This functionality is subject to change even between minor versions of the library.
In order to provide a consistant interface for Vg users, renderer writers should follow the guidelines below. You may want to drop an email to the maintainer for help and discussion.
Vgr_bla (lowercase).Vgr_bla.target.render function. If you are writing a batch renderer provide support for each of the dst types and especially the non-blocking interface.Vgr.xmp.limit parameter of render.Vg's coordinate system conventions to specify the relationship between a target and the view rectangle to render.Vg's full rendering model or diverges from its semantics it must ignore unsupported features and warn the client via the warn function.module Data : sig ... endInternal data.
module Font : sig ... endFont helpers.
module P : sig ... endPaths helpers.
module I : sig ... endImage helpers
type k = renderer -> [ `Ok | `Partial ]The type for renderer continuations.
type render_fun =
[ `End | `Image of Gg.size2 * Gg.box2 * Data.image ] ->
k ->
kThe type for rendering functions.
type 'a render_target = renderer -> 'a -> bool * render_fun constraint 'a = [< dst ]The type for render targets. The function takes a created renderer and its destination. It should return a boolean indicating whether multiple images can be rendered on the target, and a function that is invoked by the renderer to render a new image or end the rendering sequence.
val create_target : 'a render_target -> 'a targetcreate_target t makes an end-user render target from t.
val limit : renderer -> intlimit r is r's render limit.
partial k r suspends the renderer r and returns `Partial. Rendering will continue with k r, on render `Await.
dst_stored destinationsflush k r flushes the renderer r. If r writes on a stored destination this function must be called by the rendering function on `End.
writeb b k r writes the byte b and kontinues.
writes s j l k r writes l bytes from s starting at j and kontinues.
writebuf buf j l k r write l bytes from buf starting at j and kontinues.
val add_xml_data : Buffer.t -> string -> unitadd_xml_data b s adds s to b, escapes '<', '>', '&' and '"' (but not single quotes) and maps illegal XML unicode characters to the replacement character U+FFFD.