Bogue_cairo
Bogue_cairo
Want to add the power of Cairo's drawing functions to your GUI application?
Bogue_cairo
is an add-on library for the Bogue GUI library, enabling the use of Cairo drawing functions in Bogue's Sdl_area's.
module Cairo_area : sig ... end
If you have installed Bogue
, you may run boguex 50
to see a demo of drawing circles using the native Bogue circle primitive. Here is an alternative version, using Cairo's circles, which is twice as fast.
open Bogue
open Bogue_cairo
let circles () =
let cairo, a = Cairo_area.create_with_widget ~w:500 ~h:200 () in
let w,h = Cairo_area.drawing_size cairo in
Printf.sprintf "Cairo area Physical pixel size: (w=%i, h=%i)" w h
|> print_endline;
let random_circle () =
let radius = Random.int 100 + 1 in
let thick = Random.int radius in
let color = Draw.random_color () in
let x = Random.int w in
let y = Random.int h in
Cairo_area.draw_circle cairo ~color ~thick ~radius (x, y)
in
Cairo_area.init cairo;
for _ = 0 to 500 do
random_circle ()
done;
Cairo_area.flush cairo;
Cairo_area.finalize cairo;
let layout = Layout.resident ~name:"Bogue-Cairo circles" a in
Bogue.(run (of_layout layout))
let () =
circles ()