File: gluMisc.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 (38 lines) | stat: -rw-r--r-- 1,468 bytes parent folder | download
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
30
31
32
33
34
35
36
37
38
(* $Id: gluMisc.ml,v 1.5 2001/10/01 02:59:13 garrigue Exp $ *)

open Gl
open GlPix

external build_1d_mipmaps :
    internal:int ->
    width:int -> format:[< GlTex.format] -> [< kind] Raw.t -> unit
    = "ml_gluBuild1DMipmaps"
let build_1d_mipmaps ?internal:i img =
  let internal = match i with None -> format_size (format img) | Some i -> i in
  if height img < 1 then
    raise (GLerror "GluMisc.build_1d_mipmaps : bad height");
  build_1d_mipmaps ~internal
    ~width:(width img) ~format:(format img) (to_raw img)

external build_2d_mipmaps :
    internal:int -> width:int ->
    height:int -> format:[< GlTex.format] -> [< kind] Raw.t -> unit
    = "ml_gluBuild1DMipmaps"
let build_2d_mipmaps ?internal:i img =
  let internal = match i with None -> format_size (format img) | Some i -> i in
  build_2d_mipmaps ~internal
    ~width:(width img) ~height:(height img) ~format:(format img) (to_raw img)

external get_string : [`version|`extensions] -> string = "ml_gluGetString"

external scale_image :
    format:[< Gl.format] ->
    w:int -> h:int -> data:[< kind] Raw.t ->
    w:int -> h:int -> data:[< kind] Raw.t -> unit
    = "ml_gluScaleImage_bc" "ml_gluScaleImage"
let scale_image ~width ~height img =
  let k = Raw.kind (to_raw img) and format = format img in
  let new_img = GlPix.create k ~format ~height ~width in
  scale_image ~format ~w:(GlPix.width img) ~h:(GlPix.height img)
    ~data:(to_raw img) ~w:width ~h:height ~data:(to_raw new_img);
  new_img