1 (* $Id: glDraw.ml,v 1.6 2007-04-13 01:17:50 garrigue Exp $ *)
5 external color
: red
:float -> green
:float -> blue
:float -> alpha
:float -> unit
7 let color ?
(alpha
=1.) (red
, green
, blue
: rgb
) =
8 color ~red ~green ~blue ~alpha
10 external index
: float -> unit = "ml_glIndexd"
12 external cull_face
: face
-> unit = "ml_glCullFace"
13 external edge_flag
: bool -> unit = "ml_glEdgeFlag"
14 external front_face
: [`cw
|`ccw
] -> unit = "ml_glFrontFace"
16 external line_width
: float -> unit = "ml_glLineWidth"
17 external line_stipple
: factor
:int -> pattern
:short
-> unit
19 let line_stipple ?
(factor
=1) pattern
=
20 line_stipple ~factor ~pattern
21 external point_size
: float -> unit = "ml_glPointSize"
23 external polygon_offset
: factor
:float -> units
:float -> unit
24 = "ml_glPolygonOffset"
25 external polygon_mode
: face
:face
-> [`point
|`line
|`fill
] -> unit
27 external polygon_stipple
: [`bitmap
] Raw.t
-> unit = "ml_glPolygonStipple"
28 let polygon_stipple (img
: GlPix.bitmap
) =
29 if GlPix.height img
<> 32 || GlPix.width img
<> 32
30 then invalid_arg
"GlDraw.polygon_stipple";
31 polygon_stipple (GlPix.to_raw img
)
33 external shade_model
: [`flat
|`smooth
] -> unit = "ml_glShadeModel"
36 [ `points
| `lines
| `polygon
| `triangles
| `quads
| `line_strip
37 | `line_loop
| `triangle_strip
| `triangle_fan
| `quad_strip
]
38 external begins
: shape
-> unit = "ml_glBegin"
39 external ends
: unit -> unit = "ml_glEnd"
41 external normal
: x
:float -> y
:float -> z
:float -> unit
43 let normal ?
(x
=0.) ?
(y
=0.) ?
(z
=0.) () = normal ~x ~y ~z
44 and normal3
(x
,y
,z
) = normal ~x ~y ~z
46 external rect
: point2
-> point2
-> unit = "ml_glRectd"
48 external vertex
: x
:float -> y
:float -> ?z
:float -> ?w
:float -> unit -> unit
50 let vertex2 (x
,y
: point2
) = vertex ~x ~y
()
51 and vertex3
(x
,y
,z
: point3
) = vertex ~x ~y ~z
()
52 and vertex4
(x
,y
,z
,w
: point4
) = vertex ~x ~y ~z ~w
()
54 external viewport
: x
:int -> y
:int -> w
:int -> h
:int -> unit