Kitty Graphics Protocol in OCaml
terminal graphics ocaml
1(** Kitty Graphics Protocol Commands 2 3 This module provides functions for building and serializing graphics 4 protocol commands. *) 5 6type t 7(** A graphics protocol command. *) 8 9(** {1 Image Transmission} *) 10 11val transmit : 12 ?image_id:int -> 13 ?image_number:int -> 14 ?format:Kgp_format.t -> 15 ?transmission:Kgp_transmission.t -> 16 ?compression:Kgp_compression.t -> 17 ?width:int -> 18 ?height:int -> 19 ?size:int -> 20 ?offset:int -> 21 ?quiet:Kgp_quiet.t -> 22 unit -> 23 t 24(** Transmit image data without displaying. *) 25 26val transmit_and_display : 27 ?image_id:int -> 28 ?image_number:int -> 29 ?format:Kgp_format.t -> 30 ?transmission:Kgp_transmission.t -> 31 ?compression:Kgp_compression.t -> 32 ?width:int -> 33 ?height:int -> 34 ?size:int -> 35 ?offset:int -> 36 ?quiet:Kgp_quiet.t -> 37 ?placement:Kgp_placement.t -> 38 unit -> 39 t 40(** Transmit image data and display it immediately. *) 41 42val query : 43 ?format:Kgp_format.t -> 44 ?transmission:Kgp_transmission.t -> 45 ?width:int -> 46 ?height:int -> 47 ?quiet:Kgp_quiet.t -> 48 unit -> 49 t 50(** Query terminal support without storing the image. *) 51 52(** {1 Display} *) 53 54val display : 55 ?image_id:int -> 56 ?image_number:int -> 57 ?placement:Kgp_placement.t -> 58 ?quiet:Kgp_quiet.t -> 59 unit -> 60 t 61(** Display a previously transmitted image. *) 62 63(** {1 Deletion} *) 64 65val delete : ?free:bool -> ?quiet:Kgp_quiet.t -> Kgp_delete.t -> t 66(** Delete images or placements. 67 68 @param free If true, also free the image data from memory (default: false). 69 Without [~free:true], only placements are removed and the image data 70 can be reused for new placements. *) 71 72(** {1 Animation} *) 73 74val frame : 75 ?image_id:int -> 76 ?image_number:int -> 77 ?format:Kgp_format.t -> 78 ?transmission:Kgp_transmission.t -> 79 ?compression:Kgp_compression.t -> 80 ?width:int -> 81 ?height:int -> 82 ?quiet:Kgp_quiet.t -> 83 frame:Kgp_frame.t -> 84 unit -> 85 t 86(** Transmit animation frame data. *) 87 88val animate : 89 ?image_id:int -> 90 ?image_number:int -> 91 ?quiet:Kgp_quiet.t -> 92 Kgp_animation.t -> 93 t 94(** Control animation playback. *) 95 96val compose : 97 ?image_id:int -> 98 ?image_number:int -> 99 ?quiet:Kgp_quiet.t -> 100 Kgp_compose.t -> 101 t 102(** Compose animation frames. *) 103 104(** {1 Output} *) 105 106val write : Buffer.t -> t -> data:string -> unit 107(** Write the command to a buffer. *) 108 109val to_string : t -> data:string -> string 110(** Convert command to a string. *) 111 112val write_tmux : Buffer.t -> t -> data:string -> unit 113(** Write the command to a buffer with tmux passthrough wrapping. 114 115 If running inside tmux (detected via [TMUX] environment variable), 116 wraps the graphics command in a DCS passthrough sequence. Otherwise, 117 behaves like {!write}. *) 118 119val to_string_tmux : t -> data:string -> string 120(** Convert command to a string with tmux passthrough wrapping. 121 122 If running inside tmux, wraps the output for passthrough. 123 Otherwise, behaves like {!to_string}. *)