Skip to content

Commit c5bfd27

Browse files
committed
Compile the tutorial examples by default & fix warnings
1 parent eb453de commit c5bfd27

15 files changed

+85
-76
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ PKGVERSION = $(shell git describe --always)
33
PACKAGES = $(basename $(wildcard *.opam))
44

55
build:
6-
dune build @install @examples
6+
dune build @install @examples @tutorial
77

88
test:
99
dune runtest --force

examples/diagram.ml

+30-28
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ open Cairo
66

77
let diagram_draw_source cr =
88
Cairo.set_source_rgb cr 0. 0. 0.;
9-
Cairo.rectangle cr 0. 0. 1. 1.;
9+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
1010
Cairo.fill cr
1111

1212
let diagram_draw_mask cr =
1313
Cairo.set_source_rgb cr 1. 0.9 0.6;
14-
Cairo.rectangle cr 0. 0. 1. 1.;
14+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
1515
Cairo.fill cr
1616

1717
let diagram_draw_mask_pattern cr pat =
@@ -20,21 +20,21 @@ let diagram_draw_mask_pattern cr pat =
2020

2121
let diagram_draw_dest cr =
2222
Cairo.set_source_rgb cr 1. 1. 1.;
23-
Cairo.rectangle cr 0. 0. 1. 1.;
23+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
2424
Cairo.fill cr
2525

2626
let stroke_draw_mask cr =
2727
Cairo.Group.push cr;
28-
Cairo.rectangle cr 0. 0. 1. 1.;
29-
Cairo.rectangle cr 0.20 0.20 0.6 0.6;
30-
Cairo.rectangle cr 0.30 0.30 0.4 0.4;
28+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
29+
Cairo.rectangle cr 0.20 0.20 ~w:0.6 ~h:0.6;
30+
Cairo.rectangle cr 0.30 0.30 ~w:0.4 ~h:0.4;
3131
Cairo.set_fill_rule cr EVEN_ODD;
3232
Cairo.fill cr;
3333
Cairo.set_fill_rule cr WINDING;
3434

3535
diagram_draw_mask_pattern cr (Cairo.Group.pop cr);
3636

37-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
37+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
3838
Cairo.set_source_rgb cr 0. 0.6 0.;
3939

4040
let px, py = Cairo.device_to_user_distance cr 1. 1. in
@@ -45,20 +45,20 @@ let stroke_draw_dest cr =
4545
diagram_draw_dest cr;
4646
Cairo.set_line_width cr 0.1;
4747
Cairo.set_source_rgb cr 0. 0. 0.;
48-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
48+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
4949
Cairo.stroke cr
5050

5151
let fill_draw_mask cr =
5252
Cairo.Group.push cr;
53-
Cairo.rectangle cr 0. 0. 1. 1.;
54-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
53+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
54+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
5555
Cairo.set_fill_rule cr EVEN_ODD;
5656
Cairo.fill cr;
5757
Cairo.set_fill_rule cr WINDING;
5858

5959
diagram_draw_mask_pattern cr (Cairo.Group.pop cr);
6060

61-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
61+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
6262
Cairo.set_source_rgb cr 0. 0.6 0.;
6363
let px, py = Cairo.device_to_user_distance cr 1. 1. in
6464
Cairo.set_line_width cr (max px py);
@@ -67,7 +67,7 @@ let fill_draw_mask cr =
6767
let fill_draw_dest cr =
6868
diagram_draw_dest cr;
6969
Cairo.set_source_rgb cr 0. 0. 0.;
70-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
70+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
7171
Cairo.fill cr
7272

7373
let showtext_draw_mask cr =
@@ -79,7 +79,7 @@ let showtext_draw_mask cr =
7979
Cairo.set_font_size cr 1.2;
8080
let te = Cairo.text_extents cr "a" in
8181
Cairo.Group.push cr;
82-
Cairo.rectangle cr 0. 0. 1. 1.;
82+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
8383
Cairo.move_to cr (0.5 -. te.width /. 2. -. te.x_bearing)
8484
(0.5 -. te.height /. 2. -. te.y_bearing);
8585
Cairo.Path.text cr "a";
@@ -102,7 +102,7 @@ let showtext_draw_mask cr =
102102
let showtext_draw_dest cr =
103103
(* white background *)
104104
Cairo.set_source_rgb cr 1. 1. 1.;
105-
Cairo.rectangle cr 0. 0. 1. 1.;
105+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
106106
Cairo.fill cr;
107107

108108
(* black letter "a" *)
@@ -116,7 +116,7 @@ let showtext_draw_dest cr =
116116

117117
let paint_draw_source cr =
118118
Cairo.set_source_rgb cr 0. 0. 0.;
119-
Cairo.rectangle cr 0. 0. 1. 1.;
119+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
120120
Cairo.fill cr
121121

122122
let paint_draw_dest cr =
@@ -125,35 +125,37 @@ let paint_draw_dest cr =
125125
Cairo.paint cr ~alpha:0.5
126126

127127
let mask_draw_source cr =
128-
let linpat = Cairo.Pattern.create_linear 0. 0. 1. 1. in
128+
let linpat = Cairo.Pattern.create_linear ~x0:0. ~y0:0. ~x1:1. ~y1:1. in
129129
Cairo.Pattern.add_color_stop_rgb linpat 0. 0.3 0.8;
130130
Cairo.Pattern.add_color_stop_rgb linpat 0. 0.8 0.3 ~ofs:1.;
131131
Cairo.set_source cr linpat;
132-
Cairo.rectangle cr 0. 0. 1. 1.;
132+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
133133
Cairo.fill cr
134134

135135
let mask_draw_mask cr =
136-
let radialinv = Cairo.Pattern.create_radial 0.5 0.5 0.25 0.5 0.5 0.75 in
136+
let radialinv = Cairo.Pattern.create_radial ~x0:0.5 ~y0:0.5 ~r0:0.25
137+
~x1:0.5 ~y1:0.5 ~r1:0.75 in
137138
Cairo.Pattern.add_color_stop_rgba radialinv 0. 0. 0. 0.;
138139
Cairo.Pattern.add_color_stop_rgba radialinv ~ofs:0.5 0. 0. 0. 1.;
139140
Cairo.save cr;
140-
Cairo.rectangle cr 0. 0. 1. 1.;
141+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
141142
Cairo.clip cr;
142143
diagram_draw_mask_pattern cr radialinv;
143144
Cairo.restore cr
144145

145146
let mask_draw_dest cr =
146-
let linpat = Cairo.Pattern.create_linear 0. 0. 1. 1. in
147+
let linpat = Cairo.Pattern.create_linear ~x0:0. ~y0:0. ~x1:1. ~y1:1. in
147148
Cairo.Pattern.add_color_stop_rgb linpat 0. 0.3 0.8;
148149
Cairo.Pattern.add_color_stop_rgb linpat ~ofs:1. 0. 0.8 0.3;
149150

150-
let radpat = Cairo.Pattern.create_radial 0.5 0.5 0.25 0.5 0.5 0.75 in
151+
let radpat = Cairo.Pattern.create_radial ~x0:0.5 ~y0:0.5 ~r0:0.25
152+
~x1:0.5 ~y1:0.5 ~r1:0.75 in
151153
Cairo.Pattern.add_color_stop_rgba radpat 0. 0. 0. 1.;
152154
Cairo.Pattern.add_color_stop_rgba radpat ~ofs:0.5 0. 0. 0. 0.;
153155

154156
diagram_draw_dest cr;
155157
Cairo.save cr;
156-
Cairo.rectangle cr 0. 0. 1. 1.;
158+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
157159
Cairo.clip cr;
158160
Cairo.set_source cr linpat;
159161
Cairo.mask cr radpat;
@@ -188,7 +190,7 @@ let diagram fname alpha0 alpha1 alpha2 =
188190
let width=160. and height=120. in
189191
let svg_filename = fname ^ ".svg"
190192
and png_filename = fname ^ ".png" in
191-
let surf = Cairo.SVG.create svg_filename width height in
193+
let surf = Cairo.SVG.create svg_filename ~w:width ~h:height in
192194
let cr = Cairo.create surf in
193195

194196
(*
@@ -197,7 +199,7 @@ let diagram fname alpha0 alpha1 alpha2 =
197199
let layer draw =
198200
Cairo.save cr;
199201
Cairo.Group.push cr;
200-
Cairo.rectangle cr 0. 0. 1. 1.;
202+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
201203
Cairo.clip cr;
202204
draw fname cr;
203205
Cairo.Group.pop_to_source cr;
@@ -223,10 +225,10 @@ let diagram fname alpha0 alpha1 alpha2 =
223225
Cairo.translate cr (3. *. width /. height -. 1.) 0.;
224226
let ux, uy = Cairo.device_to_user_distance cr 2. 2. in
225227
Cairo.set_line_width cr (max ux uy);
226-
Cairo.rectangle cr 0. 0. 1. 3.;
228+
Cairo.rectangle cr 0. 0. ~w:1. ~h:3.;
227229
Cairo.clip_preserve cr;
228230
Cairo.stroke cr;
229-
Cairo.rectangle cr 0. 1. 1. 1.;
231+
Cairo.rectangle cr 0. 1. ~w:1. ~h:1.;
230232
Cairo.stroke cr;
231233
Cairo.restore cr;
232234

@@ -238,7 +240,7 @@ let diagram fname alpha0 alpha1 alpha2 =
238240
Cairo.scale cr (width -. height /. 3.) height;
239241
Cairo.transform cr { xx=0.6; yx=0.; xy=1./.3.; yy=0.5; x0=tx; y0=ty };
240242
Cairo.Group.push cr;
241-
Cairo.rectangle cr 0. 0. 1. 1.;
243+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
242244
Cairo.clip cr;
243245
draw fname cr;
244246
Cairo.Group.pop_to_source cr;
@@ -252,7 +254,7 @@ let diagram fname alpha0 alpha1 alpha2 =
252254
Cairo.set_source_rgb cr 0. 0. 0.;
253255
let ux, uy = Cairo.device_to_user_distance cr 2. 2. in
254256
Cairo.set_line_width cr (max ux uy);
255-
Cairo.rectangle cr 0. 0. 1. 1.;
257+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
256258
Cairo.stroke cr
257259
end;
258260
(* mask layer *)

examples/draw.ml

+20-18
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ let draw_path_lineto cr =
1717

1818
let draw_path_arcto cr =
1919
draw_path_lineto cr;
20-
Cairo.arc cr 0.5 0.5 (0.25 *. sqrt 2.) (-. pi_4) pi_4
20+
Cairo.arc cr 0.5 0.5 ~r:(0.25 *. sqrt 2.) ~a1:(-. pi_4) ~a2:pi_4
2121

2222
let draw_path_curveto cr =
2323
draw_path_arcto cr;
@@ -60,7 +60,7 @@ let draw_textextents cr =
6060
Cairo.set_line_width cr px;
6161
Cairo.set_dash cr [| 3. *. px |];
6262
Cairo.rectangle cr (x +. te.Cairo.x_bearing)
63-
(y +. te.Cairo.y_bearing) te.Cairo.width te.Cairo.height;
63+
(y +. te.Cairo.y_bearing) ~w:te.Cairo.width ~h:te.Cairo.height;
6464
Cairo.stroke cr;
6565

6666
(* text *)
@@ -79,37 +79,39 @@ let draw_textextents cr =
7979
(* text's advance (blue dot) *)
8080
Cairo.set_source_rgba cr 0. 0. 0.75 0.5;
8181
Cairo.arc cr (x +. te.Cairo.x_advance) (y +. te.Cairo.y_advance)
82-
(6. *. px) 0. two_pi;
82+
~r:(6. *. px) ~a1:0. ~a2:two_pi;
8383
Cairo.fill cr;
8484

8585
(* reference point (x,y) (red dot) *)
86-
Cairo.arc cr x y (6. *. px) 0. two_pi;
86+
Cairo.arc cr x y ~r:(6. *. px) ~a1:0. ~a2:two_pi;
8787
Cairo.set_source_rgba cr 0.75 0. 0. 0.5;
8888
Cairo.fill cr
8989
;;
9090

9191

9292
let draw_setsourcegradient cr =
93-
let radpat = Cairo.Pattern.create_radial 0.25 0.25 0.1 0.5 0.5 0.5 in
93+
let radpat = Cairo.Pattern.create_radial ~x0:0.25 ~y0:0.25 ~r0:0.1
94+
~x1:0.5 ~y1:0.5 ~r1:0.5 in
9495
Cairo.Pattern.add_color_stop_rgb radpat 1.0 0.8 0.8;
9596
Cairo.Pattern.add_color_stop_rgb radpat ~ofs:1. 0.9 0.0 0.0;
9697

9798
for i = 1 to 9 do
9899
for j = 1 to 9 do
99100
Cairo.rectangle cr (float i /. 10.0 -. 0.04) (float j /. 10.0 -. 0.04)
100-
0.08 0.08;
101+
~w:0.08 ~h:0.08;
101102
done;
102103
done;
103104
Cairo.set_source cr radpat;
104105
Cairo.fill cr;
105106

106-
let linpat = Cairo.Pattern.create_linear 0.25 0.35 0.75 0.65 in
107+
let linpat = Cairo.Pattern.create_linear ~x0:0.25 ~y0:0.35
108+
~x1:0.75 ~y1:0.65 in
107109
Cairo.Pattern.add_color_stop_rgba linpat ~ofs:0.00 1. 1. 1. 0.;
108110
Cairo.Pattern.add_color_stop_rgba linpat ~ofs:0.25 0. 1. 0. 0.5;
109111
Cairo.Pattern.add_color_stop_rgba linpat ~ofs:0.50 1. 1. 1. 0.;
110112
Cairo.Pattern.add_color_stop_rgba linpat ~ofs:0.75 0. 0. 1. 0.5;
111113
Cairo.Pattern.add_color_stop_rgba linpat ~ofs:1.00 1. 1. 1. 0.;
112-
Cairo.rectangle cr 0.0 0.0 1. 1.;
114+
Cairo.rectangle cr 0.0 0.0 ~w:1. ~h:1.;
113115
Cairo.set_source cr linpat;
114116
Cairo.fill cr
115117
;;
@@ -141,12 +143,12 @@ let path_diagram cr =
141143
let x, y = get_point path.(0) in
142144
let px, py = Cairo.device_to_user_distance cr 5. 5. in
143145
let px = max px py in
144-
Cairo.arc cr x y px 0. two_pi;
146+
Cairo.arc cr x y ~r:px ~a1:0. ~a2:two_pi;
145147
Cairo.set_source_rgba cr 0.0 0.6 0.0 0.5;
146148
Cairo.fill cr;
147149

148150
let x, y = get_point path.(len - 1) in
149-
Cairo.arc cr x y px 0. two_pi;
151+
Cairo.arc cr x y ~r:px ~a1:0. ~a2:two_pi;
150152
Cairo.set_source_rgba cr 0.0 0.0 0.75 0.5;
151153
Cairo.fill cr;
152154
)
@@ -158,9 +160,9 @@ let draw_path_curveto_hints cr =
158160
let px = max px py in
159161
Cairo.set_source_rgba cr 0.5 0. 0. 0.5;
160162
Cairo.Path.sub cr;
161-
Cairo.arc cr 0.5 0.625 px 0. two_pi;
163+
Cairo.arc cr 0.5 0.625 ~r:px ~a1:0. ~a2:two_pi;
162164
Cairo.fill cr;
163-
Cairo.arc cr 0.5 0.875 px 0. two_pi;
165+
Cairo.arc cr 0.5 0.875 ~r:px ~a1:0. ~a2:two_pi;
164166
Cairo.fill cr;
165167

166168
let px, py = Cairo.device_to_user_distance cr 2. 2. in
@@ -187,15 +189,15 @@ let draw_setsourcergba cr =
187189
Cairo.set_line_width cr 0.2;
188190
Cairo.stroke cr;
189191

190-
Cairo.rectangle cr 0. 0. 0.5 0.5;
192+
Cairo.rectangle cr 0. 0. ~w:0.5 ~h:0.5;
191193
Cairo.set_source_rgba cr 1. 0. 0. 0.80;
192194
Cairo.fill cr;
193195

194-
Cairo.rectangle cr 0. 0.5 0.5 0.5;
196+
Cairo.rectangle cr 0. 0.5 ~w:0.5 ~h:0.5;
195197
Cairo.set_source_rgba cr 0. 1. 0. 0.60;
196198
Cairo.fill cr;
197199

198-
Cairo.rectangle cr 0.5 0. 0.5 0.5;
200+
Cairo.rectangle cr 0.5 0. ~w:0.5 ~h:0.5;
199201
Cairo.set_source_rgba cr 0. 0. 1. 0.40;
200202
Cairo.fill cr
201203
;;
@@ -220,13 +222,13 @@ let diagram name =
220222
let width = 120. and height = 120. in
221223
let svg_filename = name ^ ".svg"
222224
and png_filename = name ^ ".png" in
223-
let surf = Cairo.SVG.create svg_filename width height in
225+
let surf = Cairo.SVG.create svg_filename ~w:width ~h:height in
224226
let cr = Cairo.create surf in
225227

226228
Cairo.scale cr width height;
227229
Cairo.set_line_width cr 0.01;
228230

229-
Cairo.rectangle cr 0. 0. 1. 1.;
231+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
230232
Cairo.set_source_rgb cr 1. 1. 1.;
231233
Cairo.fill cr;
232234

@@ -235,7 +237,7 @@ let diagram name =
235237
let ux, uy = Cairo.device_to_user_distance cr 2. 2. in
236238
Cairo.set_line_width cr (max ux uy);
237239
Cairo.set_source_rgb cr 0. 0. 0.;
238-
Cairo.rectangle cr 0. 0. 1. 1.;
240+
Cairo.rectangle cr 0. 0. ~w:1. ~h:1.;
239241
Cairo.stroke cr;
240242

241243
(* write output *)

examples/fill.ml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
*)
44

55
let () =
6-
let surface = Cairo.Image.create Cairo.Image.ARGB32 120 120 in
6+
let surface = Cairo.Image.create Cairo.Image.ARGB32 ~w:120 ~h:120 in
77
let cr = Cairo.create surface in
88
(* Examples are in 1.0 x 1.0 coordinate space *)
99
Cairo.scale cr 120. 120.;
1010

1111
(* Drawing code goes here *)
1212
Cairo.set_source_rgb cr 0. 0. 0.;
13-
Cairo.rectangle cr 0.25 0.25 0.5 0.5;
13+
Cairo.rectangle cr 0.25 0.25 ~w:0.5 ~h:0.5;
1414
Cairo.fill cr;
1515

1616
(* Write output *)

examples/mask.ml

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
*)
44

55
let () =
6-
let surface = Cairo.Image.create Cairo.Image.ARGB32 120 120 in
6+
let surface = Cairo.Image.create Cairo.Image.ARGB32 ~w:120 ~h:120 in
77
let cr = Cairo.create surface in
88
(* Examples are in 1.0 x 1.0 coordinate space *)
99
Cairo.scale cr 120. 120.;
1010

1111
(* Drawing code goes here *)
12-
let linpat = Cairo.Pattern.create_linear 0. 0. 1. 1. in
12+
let linpat = Cairo.Pattern.create_linear ~x0:0. ~y0:0. ~x1:1. ~y1:1. in
1313
Cairo.Pattern.add_color_stop_rgb linpat 0. 0.3 0.8;
1414
Cairo.Pattern.add_color_stop_rgb linpat ~ofs:1. 0. 0.8 0.3;
1515

16-
let radpat = Cairo.Pattern.create_radial 0.5 0.5 0.25 0.5 0.5 0.75 in
16+
let radpat = Cairo.Pattern.create_radial ~x0:0.5 ~y0:0.5 ~r0:0.25
17+
~x1:0.5 ~y1:0.5 ~r1:0.75 in
1718
Cairo.Pattern.add_color_stop_rgba radpat 0. 0. 0. 1.;
1819
Cairo.Pattern.add_color_stop_rgba radpat ~ofs:0.5 0. 0. 0. 0.;
1920

examples/paint.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*)
44

55
let () =
6-
let surface = Cairo.Image.create Cairo.Image.ARGB32 120 120 in
6+
let surface = Cairo.Image.create Cairo.Image.ARGB32 ~w:120 ~h:120 in
77
let cr = Cairo.create surface in
88
(* Examples are in 1.0 x 1.0 coordinate space *)
99
Cairo.scale cr 120. 120.;

0 commit comments

Comments
 (0)