File: glList.ml

package info (click to toggle)
lablgl 0.97-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,284 kB
  • ctags: 3,880
  • sloc: ansic: 12,953; ml: 3,037; tcl: 328; makefile: 222; sh: 1
file content (29 lines) | stat: -rw-r--r-- 847 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(* $Id: glList.ml,v 1.4 2000/04/12 07:40:24 garrigue Exp $ *)

type t = int
type base = int

external is_list : t -> bool = "ml_glIsList"
external gen_lists : len:int -> base = "ml_glGenLists"
external delete_lists : base -> len:int -> unit = "ml_glDeleteLists"
external begins : t -> mode:[`compile|`compile_and_execute] -> unit
    = "ml_glNewList"
external ends : unit -> unit = "ml_glEndList"
external call : t -> unit = "ml_glCallList"
external call_lists : [ `byte of string | `int of int array] -> unit
    = "ml_glCallLists"
external list_base : base -> unit = "ml_glListBase"

let nth base ~pos = base + pos

let create mode =
  let l = gen_lists ~len:1 in begins l ~mode; l

let delete l =
  delete_lists l ~len:1

let call_lists ?base lists =
  begin match base with None -> ()
  | Some base -> list_base base
  end;
  call_lists lists