sig
external gluPerspective :
fovy:float -> aspect:float -> zNear:float -> zFar:float -> unit
= "ml_gluperspective"
external gluLookAt :
eyeX:float ->
eyeY:float ->
eyeZ:float ->
centerX:float ->
centerY:float ->
centerZ:float -> upX:float -> upY:float -> upZ:float -> unit
= "ml_glulookat_bytecode" "ml_glulookat_native"
external gluOrtho2D :
left:float -> right:float -> bottom:float -> top:float -> unit
= "ml_gluortho2d"
external gluErrorString : error:GL.gl_error -> string = "ml_gluerrorstring"
external gluPickMatrix :
x:float ->
y:float ->
width:float -> height:float -> viewport:int * int * int * int -> unit
= "ml_glupickmatrix"
external gluUnProject :
win_x:float ->
win_y:float ->
win_z:float ->
model:float array array ->
proj:float array array -> viewport:int array -> float * float * float
= "ml_gluunproject_bytecode" "ml_gluunproject_native"
external gluUnProjectFlat :
win_x:float ->
win_y:float ->
win_z:float ->
model:float array ->
proj:float array -> viewport:int array -> float * float * float
= "ml_gluunproject_flat_bytecode" "ml_gluunproject_flat_native"
external gluUnProjectUtil : x:int -> y:int -> float * float * float
= "ml_util_gluunproject"
external gluUnProjectPixel : x:int -> y:int -> float * float * float
= "ml_gluunproject_pixel"
external gluProject :
win_x:float ->
win_y:float ->
win_z:float ->
model:float array array ->
proj:float array array -> viewport:int array -> float * float * float
= "ml_gluproject_bytecode" "ml_gluproject_native"
external gluProjectFlat :
win_x:float ->
win_y:float ->
win_z:float ->
model:float array ->
proj:float array -> viewport:int array -> float * float * float
= "ml_gluproject_flat_bytecode" "ml_gluproject_flat_native"
external gluProjectUtil :
obj_x:float -> obj_y:float -> obj_z:float -> float * float * float
= "ml_gluproject_util"
type glu_desc = GLU_VERSION | GLU_EXTENSIONS
external gluGetString : name:Glu.glu_desc -> string = "ml_glugetstring"
external gluBuild2DMipmaps :
internal_format:GL.InternalFormat.internal_format ->
width:int ->
height:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:GL.image_data -> unit
= "ml_glubuild2dmipmaps_bytecode" "ml_glubuild2dmipmaps_native"
external gluBuild1DMipmaps :
internal_format:GL.InternalFormat.internal_format ->
width:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:GL.image_data -> unit
= "ml_glubuild1dmipmaps"
external gluBuild3DMipmaps :
internal_format:GL.InternalFormat.internal_format ->
width:int ->
height:int ->
depth:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:GL.image_data -> unit
= "ml_glubuild3dmipmaps_bytecode" "ml_glubuild3dmipmaps_native"
type glu_quadric
external gluNewQuadric : unit -> Glu.glu_quadric = "ml_glunewquadric"
external gluDeleteQuadric : quad:Glu.glu_quadric -> unit
= "ml_gludeletequadric"
type draw_style = GLU_POINT | GLU_LINE | GLU_FILL | GLU_SILHOUETTE
external gluQuadricDrawStyle :
quad:Glu.glu_quadric -> draw_style:Glu.draw_style -> unit
= "ml_gluquadricdrawstyle"
external gluQuadricTexture : quad:Glu.glu_quadric -> texture:bool -> unit
= "ml_gluquadrictexture"
external gluSphere :
quad:Glu.glu_quadric -> radius:float -> slices:int -> stacks:int -> unit
= "ml_glusphere"
external gluCylinder :
quad:Glu.glu_quadric ->
base:float ->
top:float -> height:float -> slices:int -> stacks:int -> unit
= "ml_glucylinder_bytecode" "ml_glucylinder_native"
external gluDisk :
quad:Glu.glu_quadric ->
inner:float -> outer:float -> slices:int -> loops:int -> unit
= "ml_gludisk"
external gluPartialDisk :
quad:Glu.glu_quadric ->
inner:float ->
outer:float ->
slices:int -> loops:int -> start:float -> sweep:float -> unit
= "ml_glupartialdisk_bytecode" "ml_glupartialdisk_native"
type orientation = GLU_OUTSIDE | GLU_INSIDE
external gluQuadricOrientation :
quad:Glu.glu_quadric -> orientation:Glu.orientation -> unit
= "ml_gluquadricorientation"
type normal = GLU_NONE | GLU_FLAT | GLU_SMOOTH
external gluQuadricNormals :
quad:Glu.glu_quadric -> normal:Glu.normal -> unit
= "ml_gluquadricnormals"
type glu_tesselator
external gluNewTess : unit -> Glu.glu_tesselator = "ml_glunewtess"
external gluDeleteTess : tess:Glu.glu_tesselator -> unit
= "ml_gludeletetess"
external gluBeginPolygon : tess:Glu.glu_tesselator -> unit
= "ml_glubeginpolygon"
external gluEndPolygon : tess:Glu.glu_tesselator -> unit
= "ml_gluendpolygon"
external gluTessBeginPolygon : tess:Glu.glu_tesselator -> unit
= "ml_glutessbeginpolygon"
external gluTessBeginPolygonData :
tess:Glu.glu_tesselator -> data:'a -> unit
= "ml_glutessbeginpolygon_data"
external gluTessEndPolygon : tess:Glu.glu_tesselator -> unit
= "ml_glutessendpolygon"
external gluTessBeginContour : tess:Glu.glu_tesselator -> unit
= "ml_glutessbegincontour"
external gluTessEndContour : tess:Glu.glu_tesselator -> unit
= "ml_glutessendcontour"
type tess_contour =
GLU_CW
| GLU_CCW
| GLU_INTERIOR
| GLU_EXTERIOR
| GLU_UNKNOWN
external gluNextContour :
tess:Glu.glu_tesselator -> contour:Glu.tess_contour -> unit
= "ml_glunextcontour"
external gluTessVertex :
tess:Glu.glu_tesselator -> x:float -> y:float -> z:float -> unit
= "ml_glutessvertex"
external gluTessNormal :
tess:Glu.glu_tesselator -> x:float -> y:float -> z:float -> unit
= "ml_glutessnormal"
external gluTesselate :
Glu.glu_tesselator -> (float * float * float) array -> unit
= "tesselate_points"
val gluTesselateIter :
tess:Glu.glu_tesselator ->
data:(float * float * float) array list -> unit
type tess_winding =
GLU_TESS_WINDING_ODD
| GLU_TESS_WINDING_NONZERO
| GLU_TESS_WINDING_POSITIVE
| GLU_TESS_WINDING_NEGATIVE
| GLU_TESS_WINDING_ABS_GEQ_TWO
type tess_property =
GLU_TESS_WINDING_RULE of Glu.tess_winding
| GLU_TESS_BOUNDARY_ONLY of bool
| GLU_TESS_TOLERANCE of float
external gluGetTessWindingRule :
tess:Glu.glu_tesselator -> winding:Glu.tess_winding -> unit
= "ml_glugettesswindingrule"
external gluGetTessBoundaryOnly :
tess:Glu.glu_tesselator -> boundary_only:bool -> unit
= "ml_glugettessboundaryonly"
external gluGetTessTolerance :
tess:Glu.glu_tesselator -> tolerance:float -> unit
= "ml_glugettesstolerance"
val gluTessProperty :
tess:Glu.glu_tesselator -> prop:Glu.tess_property -> unit
type tess_callback =
GLU_TESS_BEGIN
| GLU_TESS_BEGIN_DATA
| GLU_TESS_EDGE_FLAG
| GLU_TESS_EDGE_FLAG_DATA
| GLU_TESS_VERTEX
| GLU_TESS_VERTEX_DATA
| GLU_TESS_END
| GLU_TESS_END_DATA
| GLU_TESS_COMBINE
| GLU_TESS_COMBINE_DATA
| GLU_TESS_ERROR
| GLU_TESS_ERROR_DATA
external gluTessDefaultCallback :
tess:Glu.glu_tesselator -> cb:Glu.tess_callback -> unit
= "ml_glutesscallback_default"
type tess_error =
GLU_TESS_MISSING_BEGIN_POLYGON
| GLU_TESS_MISSING_BEGIN_CONTOUR
| GLU_TESS_MISSING_END_POLYGON
| GLU_TESS_MISSING_END_CONTOUR
| GLU_TESS_COORD_TOO_LARGE
| GLU_TESS_NEED_COMBINE_CALLBACK
| GLU_OUT_OF_MEMORY
| GLU_TESS_ERROR7
| GLU_TESS_ERROR8
val gluCallbackTessVertex :
tess:Glu.glu_tesselator ->
tess_vertex:(x:float -> y:float -> z:float -> unit) -> unit
val gluCallbackTessBegin :
tess:Glu.glu_tesselator -> tess_begin:(prim:GL.primitive -> unit) -> unit
val gluCallbackTessEnd :
tess:Glu.glu_tesselator -> tess_end:(unit -> unit) -> unit
val gluCallbackTessError :
tess:Glu.glu_tesselator ->
tess_error:(error:Glu.tess_error -> unit) -> unit
external gluTessErrorString : error:Glu.tess_error -> string
= "ml_glutesserrorstring"
type glu_nurbs
external gluNewNurbsRenderer : unit -> Glu.glu_nurbs
= "ml_glunewnurbsrenderer"
external gluBeginSurface : nurb:Glu.glu_nurbs -> unit
= "ml_glubeginsurface"
external gluEndSurface : nurb:Glu.glu_nurbs -> unit = "ml_gluendsurface"
type nurbs_mode = GLU_NURBS_RENDERER | GLU_NURBS_TESSELLATOR
type sampling_method =
GLU_PATH_LENGTH
| GLU_PARAMETRIC_ERROR
| GLU_DOMAIN_DISTANCE
| GLU_OBJECT_PATH_LENGTH
| GLU_OBJECT_PARAMETRIC_ERROR
module Disp :
sig
type display_mode = GLU_OUTLINE_POLYGON | GLU_FILL | GLU_OUTLINE_PATCH
end
type nurbs_property =
GLU_SAMPLING_TOLERANCE of float
| GLU_DISPLAY_MODE of Glu.Disp.display_mode
| GLU_CULLING of bool
| GLU_AUTO_LOAD_MATRIX of bool
| GLU_PARAMETRIC_TOLERANCE of float
| GLU_SAMPLING_METHOD of Glu.sampling_method
| GLU_U_STEP of int
| GLU_V_STEP of int
| GLU_NURBS_MODE of Glu.nurbs_mode
val gluNurbsProperty :
nurb:Glu.glu_nurbs -> property:Glu.nurbs_property -> unit
type surface_type = GLU_MAP2_VERTEX_3 | GLU_MAP2_VERTEX_4
external gluNurbsSurface :
nurb:Glu.glu_nurbs ->
sKnots:float array ->
tKnots:float array ->
sStride:int ->
tStride:int ->
control:float array ->
sOrder:int -> tOrder:int -> surface_type:Glu.surface_type -> unit
= "ml_glunurbssurface_bytecode" "ml_glunurbssurface_native"
end