sig
type primitive =
GL_POINTS
| GL_LINES
| GL_LINE_LOOP
| GL_LINE_STRIP
| GL_TRIANGLES
| GL_TRIANGLE_STRIP
| GL_TRIANGLE_FAN
| GL_QUADS
| GL_QUAD_STRIP
| GL_POLYGON
external glBegin : primitive:GL.primitive -> unit = "ml_glbegin" "noalloc"
external glEnd : unit -> unit = "ml_glend" "noalloc"
external glVertex2 : x:float -> y:float -> unit = "ml_glvertex2" "noalloc"
external glVertex3 : x:float -> y:float -> z:float -> unit = "ml_glvertex3"
"noalloc"
external glVertex4 : x:float -> y:float -> z:float -> w:float -> unit
= "ml_glvertex4" "noalloc"
external glVertex2v : float * float -> unit = "ml_glvertex2v" "noalloc"
external glVertex3v : float * float * float -> unit = "ml_glvertex3v"
"noalloc"
external glVertex4v : float * float * float * float -> unit
= "ml_glvertex4v" "noalloc"
external glNormal3 : nx:float -> ny:float -> nz:float -> unit
= "ml_glnormal3" "noalloc"
external glNormal3v : v:float * float * float -> unit = "ml_glnormal3v"
"noalloc"
external glIndex : c:float -> unit = "ml_glindexd" "noalloc"
external glIndexi : c:int -> unit = "ml_glindexi" "noalloc"
external glColor3 : r:float -> g:float -> b:float -> unit = "ml_glcolor3"
"noalloc"
external glColor4 : r:float -> g:float -> b:float -> a:float -> unit
= "ml_glcolor4" "noalloc"
external glColor3v : v:float * float * float -> unit = "ml_glcolor3v"
"noalloc"
external glColor4v : v:float * float * float * float -> unit
= "ml_glcolor4v" "noalloc"
external glColor3c : r:char -> g:char -> b:char -> unit = "ml_glcolor3c"
"noalloc"
external glColor4c : r:char -> g:char -> b:char -> a:char -> unit
= "ml_glcolor4c" "noalloc"
external glColor3cv : v:char * char * char -> unit = "ml_glcolor3cv"
"noalloc"
external glColor4cv : v:char * char * char * char -> unit = "ml_glcolor4cv"
"noalloc"
external glEdgeFlag : flag:bool -> unit = "ml_gledgeflag" "noalloc"
external glRasterPos2 : x:float -> y:float -> unit = "ml_glrasterpos2d"
"noalloc"
external glRasterPos3 : x:float -> y:float -> z:float -> unit
= "ml_glrasterpos3d" "noalloc"
external glRasterPos4 : x:float -> y:float -> z:float -> w:float -> unit
= "ml_glrasterpos4d" "noalloc"
external glRasterPos2i : x:int -> y:int -> unit = "ml_glrasterpos2i"
"noalloc"
external glRasterPos3i : x:int -> y:int -> z:int -> unit
= "ml_glrasterpos3i" "noalloc"
external glRasterPos4i : x:int -> y:int -> z:int -> w:int -> unit
= "ml_glrasterpos4i" "noalloc"
external glRasterPos2v : v:float * float -> unit = "ml_glrasterpos2dv"
"noalloc"
external glRasterPos3v : v:float * float * float -> unit
= "ml_glrasterpos3dv" "noalloc"
external glRasterPos4v : v:float * float * float * float -> unit
= "ml_glrasterpos4dv" "noalloc"
external glRasterPos2iv : v:int * int -> unit = "ml_glrasterpos2iv"
"noalloc"
external glRasterPos3iv : v:int * int * int -> unit = "ml_glrasterpos3iv"
"noalloc"
external glRasterPos4iv : v:int * int * int * int -> unit
= "ml_glrasterpos4iv" "noalloc"
external glRecti : x1:int -> y1:int -> x2:int -> y2:int -> unit
= "ml_glrecti" "noalloc"
external glRect : x1:float -> y1:float -> x2:float -> y2:float -> unit
= "ml_glrect" "noalloc"
type matrix_mode = GL_MODELVIEW | GL_PROJECTION | GL_TEXTURE
external glMatrixMode : mode:GL.matrix_mode -> unit = "ml_glmatrixmode"
"noalloc"
external glViewport : x:int -> y:int -> width:int -> height:int -> unit
= "ml_glviewport" "noalloc"
external glOrtho :
left:float ->
right:float ->
bottom:float -> top:float -> near:float -> far:float -> unit
= "ml_glortho_bytecode" "ml_glortho_native"
external glFrustum :
left:float ->
right:float ->
bottom:float -> top:float -> near:float -> far:float -> unit
= "ml_glfrustum_bytecode" "ml_glfrustum_native"
external glPushMatrix : unit -> unit = "ml_glpushmatrix" "noalloc"
external glPopMatrix : unit -> unit = "ml_glpopmatrix" "noalloc"
external glLoadIdentity : unit -> unit = "ml_glloadidentity" "noalloc"
external glRotatev : angle:float -> vec:float * float * float -> unit
= "ml_glrotatev" "noalloc"
external glRotate : angle:float -> x:float -> y:float -> z:float -> unit
= "ml_glrotate" "noalloc"
external glTranslatev : float * float * float -> unit = "ml_gltranslatev"
"noalloc"
external glTranslate : x:float -> y:float -> z:float -> unit
= "ml_gltranslate" "noalloc"
external glScalev : float * float * float -> unit = "ml_glscalev" "noalloc"
external glScale : x:float -> y:float -> z:float -> unit = "ml_glscale"
"noalloc"
val glMultMatrix : mat:float array array -> unit
external glMultMatrixFlat : float array -> unit = "ml_glmultmatrixd_flat"
"noalloc"
external glMultMatrixFlat_unsafe : float array -> unit
= "ml_glmultmatrixd_flat_unsafe"
val glLoadMatrix : mat:float array array -> unit
external glLoadMatrixFlat : float array -> unit = "ml_glloadmatrixd_flat"
"noalloc"
external glLoadMatrixFlat_unsafe : float array -> unit
= "ml_glloadmatrixd_flat_unsafe" "noalloc"
external glFlush : unit -> unit = "ml_glflush" "noalloc"
type orientation = GL_CW | GL_CCW
external glFrontFace : orientation:GL.orientation -> unit
= "ml_glfrontface" "noalloc"
external glScissor : x:int -> y:int -> width:int -> height:int -> unit
= "ml_glscissor" "noalloc"
external glFinish : unit -> unit = "ml_glfinish" "noalloc"
external glClearColor : r:float -> g:float -> b:float -> a:float -> unit
= "ml_glclearcolor" "noalloc"
external glClearIndex : float -> unit = "ml_glclearindex" "noalloc"
external glColorMask : r:bool -> g:bool -> b:bool -> a:bool -> unit
= "ml_glcolormask" "noalloc"
module Attrib :
sig
type attrib_bit =
GL_ACCUM_BUFFER_BIT
| GL_COLOR_BUFFER_BIT
| GL_CURRENT_BIT
| GL_DEPTH_BUFFER_BIT
| GL_ENABLE_BIT
| GL_EVAL_BIT
| GL_FOG_BIT
| GL_HINT_BIT
| GL_LIGHTING_BIT
| GL_LINE_BIT
| GL_LIST_BIT
| GL_MULTISAMPLE_BIT
| GL_PIXEL_MODE_BIT
| GL_POINT_BIT
| GL_POLYGON_BIT
| GL_POLYGON_STIPPLE_BIT
| GL_SCISSOR_BIT
| GL_STENCIL_BUFFER_BIT
| GL_TEXTURE_BIT
| GL_TRANSFORM_BIT
| GL_VIEWPORT_BIT
end
external glPushAttrib : attrib:GL.Attrib.attrib_bit list -> unit
= "ml_glpushattrib" "noalloc"
external glPopAttrib : unit -> unit = "ml_glpopattrib" "noalloc"
type face_mode = GL_FRONT | GL_BACK | GL_FRONT_AND_BACK
type polygon_mode = GL_POINT | GL_LINE | GL_FILL
external glPolygonMode : face:GL.face_mode -> mode:GL.polygon_mode -> unit
= "ml_glpolygonmode" "noalloc"
external glGetPolygonMode : unit -> GL.polygon_mode * GL.polygon_mode
= "ml_glgetpolygonmode"
type clear_mask =
GL_COLOR_BUFFER_BIT
| GL_DEPTH_BUFFER_BIT
| GL_ACCUM_BUFFER_BIT
| GL_STENCIL_BUFFER_BIT
external glClear : mask:GL.clear_mask list -> unit = "ml_glclear" "noalloc"
external glLineWidth : width:float -> unit = "ml_gllinewidth" "noalloc"
external glPointSize : size:float -> unit = "ml_glpointsize" "noalloc"
type sprite_coord_origin = GL_LOWER_LEFT | GL_UPPER_LEFT
type point_parameter =
GL_POINT_SIZE_MIN of float
| GL_POINT_SIZE_MAX of float
| GL_POINT_FADE_THRESHOLD_SIZE of float
| GL_POINT_DISTANCE_ATTENUATION of float * float * float
| GL_POINT_SPRITE_COORD_ORIGIN of GL.sprite_coord_origin
val glPointParameter : GL.point_parameter -> unit
type gl_func =
GL_NEVER
| GL_LESS
| GL_EQUAL
| GL_LEQUAL
| GL_GREATER
| GL_NOTEQUAL
| GL_GEQUAL
| GL_ALWAYS
external glAlphaFunc : func:GL.gl_func -> ref:float -> unit
= "ml_glalphafunc" "noalloc"
type hint_target =
GL_FOG_HINT
| GL_LINE_SMOOTH_HINT
| GL_PERSPECTIVE_CORRECTION_HINT
| GL_POINT_SMOOTH_HINT
| GL_POLYGON_SMOOTH_HINT
| GL_TEXTURE_COMPRESSION_HINT
| GL_GENERATE_MIPMAP_HINT
| GL_FRAGMENT_SHADER_DERIVATIVE_HINT
type hint_mode = GL_FASTEST | GL_NICEST | GL_DONT_CARE
external glHint : target:GL.hint_target -> mode:GL.hint_mode -> unit
= "ml_glhint" "noalloc"
external glCullFace : mode:GL.face_mode -> unit = "ml_glcullface" "noalloc"
external glGetCullFaceMode : unit -> GL.face_mode = "ml_glgetcullfacemode"
"noalloc"
external glLineStipple : factor:int -> pattern:int -> unit
= "ml_gllinestipple" "noalloc"
type polygon_stipple_mask =
(int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
external glPolygonStipple : mask:GL.polygon_stipple_mask -> unit
= "ml_glpolygonstipple" "noalloc"
external glPolygonStipple_unsafe : mask:GL.polygon_stipple_mask -> unit
= "ml_glpolygonstipple_unsafe" "noalloc"
module DrawBuffer :
sig
type draw_buffer_mode =
GL_NONE
| GL_FRONT_LEFT
| GL_FRONT_RIGHT
| GL_BACK_LEFT
| GL_BACK_RIGHT
| GL_FRONT
| GL_BACK
| GL_LEFT
| GL_RIGHT
| GL_FRONT_AND_BACK
| GL_AUX0
| GL_AUX1
| GL_AUX2
| GL_AUX3
end
external glDrawBuffer : mode:GL.DrawBuffer.draw_buffer_mode -> unit
= "ml_gldrawbuffer" "noalloc"
module ReadBuffer :
sig
type read_buffer_mode =
GL_FRONT_LEFT
| GL_FRONT_RIGHT
| GL_BACK_LEFT
| GL_BACK_RIGHT
| GL_FRONT
| GL_BACK
| GL_LEFT
| GL_RIGHT
| GL_AUX0
| GL_AUX1
| GL_AUX2
| GL_AUX3
end
external glReadBuffer : mode:GL.ReadBuffer.read_buffer_mode -> unit
= "ml_glreadbuffer" "noalloc"
module Sfactor :
sig
type blend_sfactor =
GL_ZERO
| GL_ONE
| GL_DST_COLOR
| GL_ONE_MINUS_DST_COLOR
| GL_SRC_ALPHA
| GL_ONE_MINUS_SRC_ALPHA
| GL_DST_ALPHA
| GL_ONE_MINUS_DST_ALPHA
| GL_SRC_ALPHA_SATURATE
end
module Dfactor :
sig
type blend_dfactor =
GL_ZERO
| GL_ONE
| GL_SRC_COLOR
| GL_ONE_MINUS_SRC_COLOR
| GL_SRC_ALPHA
| GL_ONE_MINUS_SRC_ALPHA
| GL_DST_ALPHA
| GL_ONE_MINUS_DST_ALPHA
end
external glBlendFunc :
sfactor:GL.Sfactor.blend_sfactor ->
dfactor:GL.Dfactor.blend_dfactor -> unit = "ml_glblendfunc" "noalloc"
type blend_mode =
GL_FUNC_ADD
| GL_FUNC_SUBTRACT
| GL_FUNC_REVERSE_SUBTRACT
| GL_MIN
| GL_MAX
external glBlendEquation : mode:GL.blend_mode -> unit
= "ml_glblendequation" "noalloc"
module Op :
sig
type op_code =
GL_CLEAR
| GL_SET
| GL_COPY
| GL_COPY_INVERTED
| GL_NOOP
| GL_INVERT
| GL_AND
| GL_NAND
| GL_OR
| GL_NOR
| GL_XOR
| GL_EQUIV
| GL_AND_REVERSE
| GL_AND_INVERTED
| GL_OR_REVERSE
| GL_OR_INVERTED
end
external glLogicOp : opcode:GL.Op.op_code -> unit = "ml_gllogicop"
"noalloc"
external glPolygonOffset : factor:float -> units:float -> unit
= "ml_glpolygonoffset" "noalloc"
type shade_mode = GL_FLAT | GL_SMOOTH
external glShadeModel : GL.shade_mode -> unit = "ml_glshademodel" "noalloc"
module Light :
sig
type light_pname =
GL_SPOT_EXPONENT of float
| GL_SPOT_CUTOFF of float
| GL_CONSTANT_ATTENUATION of float
| GL_LINEAR_ATTENUATION of float
| GL_QUADRATIC_ATTENUATION of float
| GL_SPOT_DIRECTION of (float * float * float)
| GL_AMBIENT of (float * float * float * float)
| GL_DIFFUSE of (float * float * float * float)
| GL_SPECULAR of (float * float * float * float)
| GL_POSITION of (float * float * float * float)
end
type gl_light = GL_LIGHT of int
val glLight : light:GL.gl_light -> pname:GL.Light.light_pname -> unit
type color_control = GL_SEPARATE_SPECULAR_COLOR | GL_SINGLE_COLOR
type light_model =
GL_LIGHT_MODEL_AMBIENT of (float * float * float * float)
| GL_LIGHT_MODEL_COLOR_CONTROL of GL.color_control
| GL_LIGHT_MODEL_LOCAL_VIEWER of bool
| GL_LIGHT_MODEL_TWO_SIDE of bool
val glLightModel : light_model:GL.light_model -> unit
module Material :
sig
type material_mode =
GL_AMBIENT of (float * float * float * float)
| GL_DIFFUSE of (float * float * float * float)
| GL_SPECULAR of (float * float * float * float)
| GL_EMISSION of (float * float * float * float)
| GL_SHININESS of float
| GL_AMBIENT_AND_DIFFUSE of (float * float * float * float)
| GL_COLOR_INDEXES of (int * int * int)
end
val glMaterial :
face:GL.face_mode -> mode:GL.Material.material_mode -> unit
module GetMat :
sig
type face_mode = GL_FRONT | GL_BACK
type get_material_4f =
GL_AMBIENT
| GL_DIFFUSE
| GL_SPECULAR
| GL_EMISSION
type get_material_1f = GL_SHININESS
type get_material_3i = GL_COLOR_INDEXES
end
external glGetMaterial4f :
GL.GetMat.face_mode ->
mode:GL.GetMat.get_material_4f -> float * float * float * float
= "ml_glgetmaterial4f"
external glGetMaterial1f :
GL.GetMat.face_mode -> mode:GL.GetMat.get_material_1f -> float
= "ml_glgetmaterial1f"
external glGetMaterial3i :
GL.GetMat.face_mode -> mode:GL.GetMat.get_material_3i -> int * int * int
= "ml_glgetmaterial3i"
type color_material_mode =
GL_EMISSION
| GL_AMBIENT
| GL_DIFFUSE
| GL_SPECULAR
| GL_AMBIENT_AND_DIFFUSE
external glColorMaterial :
face:GL.face_mode -> mode:GL.color_material_mode -> unit
= "ml_glcolormaterial" "noalloc"
external glSecondaryColor3 : red:float -> green:float -> blue:float -> unit
= "ml_glsecondarycolor3d" "noalloc"
external glStencilFunc : func:GL.gl_func -> ref:int -> mask:int -> unit
= "ml_glstencilfunc" "noalloc"
external glStencilFuncn :
func:GL.gl_func -> ref:int -> mask:nativeint -> unit
= "ml_glstencilfuncn" "noalloc"
external glStencilMask : mask:int -> unit = "ml_glstencilmask" "noalloc"
type stencil_op =
GL_KEEP
| GL_ZERO
| GL_REPLACE
| GL_INCR
| GL_INCR_WRAP
| GL_DECR
| GL_DECR_WRAP
| GL_INVERT
external glStencilOp :
sfail:GL.stencil_op ->
dpfail:GL.stencil_op -> dppass:GL.stencil_op -> unit = "ml_glstencilop"
"noalloc"
external glClearStencil : s:int -> unit = "ml_glclearstencil" "noalloc"
external glDepthRange : near:float -> far:float -> unit = "ml_gldepthrange"
"noalloc"
external glClearDepth : depth:float -> unit = "ml_glcleardepth" "noalloc"
external glDepthFunc : func:GL.gl_func -> unit = "ml_gldepthfunc" "noalloc"
external glDepthMask : bool -> unit = "ml_gldepthmask" "noalloc"
type accum_op = GL_ACCUM | GL_LOAD | GL_ADD | GL_MULT | GL_RETURN
external glAccum : op:GL.accum_op -> value:float -> unit = "ml_glaccum"
"noalloc"
external glClearAccum : r:float -> g:float -> b:float -> a:float -> unit
= "ml_glclearaccum" "noalloc"
type gl_capability =
GL_ALPHA_TEST
| GL_AUTO_NORMAL
| GL_BLEND
| GL_CLIP_PLANE0
| GL_CLIP_PLANE1
| GL_CLIP_PLANE2
| GL_CLIP_PLANE3
| GL_CLIP_PLANE4
| GL_CLIP_PLANE5
| GL_COLOR_LOGIC_OP
| GL_COLOR_MATERIAL
| GL_COLOR_TABLE
| GL_CONVOLUTION_1D
| GL_CONVOLUTION_2D
| GL_CULL_FACE
| GL_DEPTH_TEST
| GL_DITHER
| GL_FOG
| GL_HISTOGRAM
| GL_INDEX_LOGIC_OP
| GL_LIGHT0
| GL_LIGHT1
| GL_LIGHT2
| GL_LIGHT3
| GL_LIGHT4
| GL_LIGHT5
| GL_LIGHT6
| GL_LIGHT7
| GL_LIGHTING
| GL_LINE_SMOOTH
| GL_LINE_STIPPLE
| GL_MAP1_COLOR_4
| GL_MAP1_INDEX
| GL_MAP1_NORMAL
| GL_MAP1_TEXTURE_COORD_1
| GL_MAP1_TEXTURE_COORD_2
| GL_MAP1_TEXTURE_COORD_3
| GL_MAP1_TEXTURE_COORD_4
| GL_MAP1_VERTEX_3
| GL_MAP1_VERTEX_4
| GL_MAP2_COLOR_4
| GL_MAP2_INDEX
| GL_MAP2_NORMAL
| GL_MAP2_TEXTURE_COORD_1
| GL_MAP2_TEXTURE_COORD_2
| GL_MAP2_TEXTURE_COORD_3
| GL_MAP2_TEXTURE_COORD_4
| GL_MAP2_VERTEX_3
| GL_MAP2_VERTEX_4
| GL_MINMAX
| GL_MULTISAMPLE
| GL_NORMALIZE
| GL_POINT_SMOOTH
| GL_POINT_SPRITE
| GL_POLYGON_OFFSET_FILL
| GL_POLYGON_OFFSET_LINE
| GL_POLYGON_OFFSET_POINT
| GL_POLYGON_SMOOTH
| GL_POLYGON_STIPPLE
| GL_POST_COLOR_MATRIX_COLOR_TABLE
| GL_POST_CONVOLUTION_COLOR_TABLE
| GL_RESCALE_NORMAL
| GL_SAMPLE_ALPHA_TO_COVERAGE
| GL_SAMPLE_ALPHA_TO_ONE
| GL_SAMPLE_COVERAGE
| GL_SEPARABLE_2D
| GL_SCISSOR_TEST
| GL_STENCIL_TEST
| GL_TEXTURE_1D
| GL_TEXTURE_2D
| GL_TEXTURE_3D
| GL_TEXTURE_CUBE_MAP
| GL_TEXTURE_GEN_Q
| GL_TEXTURE_GEN_R
| GL_TEXTURE_GEN_S
| GL_TEXTURE_GEN_T
| GL_VERTEX_PROGRAM_POINT_SIZE
| GL_VERTEX_PROGRAM_TWO_SIDE
external glEnable : cap:GL.gl_capability -> unit = "ml_glenable" "noalloc"
external glDisable : cap:GL.gl_capability -> unit = "ml_gldisable"
"noalloc"
module Enabled :
sig
type enabled_cap =
GL_ALPHA_TEST
| GL_AUTO_NORMAL
| GL_BLEND
| GL_CLIP_PLANE0
| GL_CLIP_PLANE1
| GL_CLIP_PLANE2
| GL_CLIP_PLANE3
| GL_CLIP_PLANE4
| GL_CLIP_PLANE5
| GL_COLOR_ARRAY
| GL_COLOR_LOGIC_OP
| GL_COLOR_MATERIAL
| GL_COLOR_SUM
| GL_COLOR_TABLE
| GL_CONVOLUTION_1D
| GL_CONVOLUTION_2D
| GL_CULL_FACE
| GL_DEPTH_TEST
| GL_DITHER
| GL_EDGE_FLAG_ARRAY
| GL_FOG
| GL_FOG_COORD_ARRAY
| GL_HISTOGRAM
| GL_INDEX_ARRAY
| GL_INDEX_LOGIC_OP
| GL_LIGHT0
| GL_LIGHT1
| GL_LIGHT2
| GL_LIGHT3
| GL_LIGHT4
| GL_LIGHT5
| GL_LIGHT6
| GL_LIGHT7
| GL_LIGHTING
| GL_LINE_SMOOTH
| GL_LINE_STIPPLE
| GL_MAP1_COLOR_4
| GL_MAP1_INDEX
| GL_MAP1_NORMAL
| GL_MAP1_TEXTURE_COORD_1
| GL_MAP1_TEXTURE_COORD_2
| GL_MAP1_TEXTURE_COORD_3
| GL_MAP1_TEXTURE_COORD_4
| GL_MAP2_COLOR_4
| GL_MAP2_INDEX
| GL_MAP2_NORMAL
| GL_MAP2_TEXTURE_COORD_1
| GL_MAP2_TEXTURE_COORD_2
| GL_MAP2_TEXTURE_COORD_3
| GL_MAP2_TEXTURE_COORD_4
| GL_MAP2_VERTEX_3
| GL_MAP2_VERTEX_4
| GL_MINMAX
| GL_MULTISAMPLE
| GL_NORMAL_ARRAY
| GL_NORMALIZE
| GL_POINT_SMOOTH
| GL_POINT_SPRITE
| GL_POLYGON_SMOOTH
| GL_POLYGON_OFFSET_FILL
| GL_POLYGON_OFFSET_LINE
| GL_POLYGON_OFFSET_POINT
| GL_POLYGON_STIPPLE
| GL_POST_COLOR_MATRIX_COLOR_TABLE
| GL_POST_CONVOLUTION_COLOR_TABLE
| GL_RESCALE_NORMAL
| GL_SAMPLE_ALPHA_TO_COVERAGE
| GL_SAMPLE_ALPHA_TO_ONE
| GL_SAMPLE_COVERAGE
| GL_SCISSOR_TEST
| GL_SECONDARY_COLOR_ARRAY
| GL_SEPARABLE_2D
| GL_STENCIL_TEST
| GL_TEXTURE_1D
| GL_TEXTURE_2D
| GL_TEXTURE_3D
| GL_TEXTURE_COORD_ARRAY
| GL_TEXTURE_CUBE_MAP
| GL_TEXTURE_GEN_Q
| GL_TEXTURE_GEN_R
| GL_TEXTURE_GEN_S
| GL_TEXTURE_GEN_T
| GL_VERTEX_ARRAY
| GL_VERTEX_PROGRAM_POINT_SIZE
| GL_VERTEX_PROGRAM_TWO_SIDE
end
external glIsEnabled : GL.Enabled.enabled_cap -> bool = "ml_glisenabled"
"noalloc"
type texture_id = private int
external glGenTextures : n:int -> GL.texture_id array = "ml_glgentextures"
external glGenTexture : unit -> GL.texture_id = "ml_glgentexture" "noalloc"
module BindTex :
sig
type texture_binding =
GL_TEXTURE_1D
| GL_TEXTURE_2D
| GL_TEXTURE_3D
| GL_TEXTURE_CUBE_MAP
end
external glBindTexture :
target:GL.BindTex.texture_binding -> texture:GL.texture_id -> unit
= "ml_glbindtexture" "noalloc"
external glUnbindTexture : target:GL.BindTex.texture_binding -> unit
= "ml_glunbindtexture" "noalloc"
external glBindTexture2D : texture:GL.texture_id -> unit
= "ml_glbindtexture2d" "noalloc"
external glUnbindTexture2D : unit -> unit = "ml_glunbindtexture2d"
"noalloc"
external glDeleteTextures : textures:GL.texture_id array -> unit
= "ml_gldeletetextures" "noalloc"
external glDeleteTexture : texture:GL.texture_id -> unit
= "ml_gldeletetexture" "noalloc"
external glIsTexture : texture:GL.texture_id -> bool = "ml_glistexture"
"noalloc"
external glPrioritizeTextures :
textures:GL.texture_id array -> priority:float array -> unit
= "ml_glprioritizetextures" "noalloc"
external glPrioritizeTexture :
texture:GL.texture_id -> priority:float -> unit
= "ml_glprioritizetexture" "noalloc"
external glPrioritizeTexturesp :
prioritized_textures:(GL.texture_id * float) array -> unit
= "ml_glprioritizetexturesp" "noalloc"
module TexEnv :
sig
type texenv_target =
GL_TEXTURE_ENV
| GL_TEXTURE_FILTER_CONTROL
| GL_POINT_SPRITE
type texenv_pname =
GL_TEXTURE_ENV_MODE
| GL_TEXTURE_LOD_BIAS
| GL_COMBINE_RGB
| GL_COMBINE_ALPHA
| GL_SRC0_RGB
| GL_SRC1_RGB
| GL_SRC2_RGB
| GL_SRC0_ALPHA
| GL_SRC1_ALPHA
| GL_SRC2_ALPHA
| GL_OPERAND0_RGB
| GL_OPERAND1_RGB
| GL_OPERAND2_RGB
| GL_OPERAND0_ALPHA
| GL_OPERAND1_ALPHA
| GL_OPERAND2_ALPHA
| GL_RGB_SCALE
| GL_ALPHA_SCALE
| GL_COORD_REPLACE
type texenv_param =
GL_ADD
| GL_ADD_SIGNED
| GL_INTERPOLATE
| GL_MODULATE
| GL_DECAL
| GL_BLEND
| GL_REPLACE
| GL_SUBTRACT
| GL_COMBINE
| GL_TEXTURE
| GL_CONSTANT
| GL_PRIMARY_COLOR
| GL_PREVIOUS
| GL_SRC_COLOR
| GL_ONE_MINUS_SRC_COLOR
| GL_SRC_ALPHA
| GL_ONE_MINUS_SRC_ALPHA
| GL_TRUE
| GL_FALSE
end
external glTexEnv :
GL.TexEnv.texenv_target ->
GL.TexEnv.texenv_pname -> GL.TexEnv.texenv_param -> unit = "ml_gltexenv"
"noalloc"
type tex_coord = GL_S | GL_T | GL_R | GL_Q
type tex_coord_gen_func = GL_TEXTURE_GEN_MODE
type tex_gen_param =
GL_OBJECT_LINEAR
| GL_EYE_LINEAR
| GL_SPHERE_MAP
| GL_NORMAL_MAP
| GL_REFLECTION_MAP
external glTexGen :
GL.tex_coord -> GL.tex_coord_gen_func -> GL.tex_gen_param -> unit
= "ml_gltexgen" "noalloc"
type tex_coord_fun_params = GL_OBJECT_PLANE | GL_EYE_PLANE
external glTexGenv :
GL.tex_coord ->
GL.tex_coord_fun_params -> float * float * float * float -> unit
= "ml_gltexgenv"
external glTexGenva :
GL.tex_coord -> GL.tex_coord_fun_params -> float array -> unit
= "ml_gltexgenva"
module TexTarget :
sig
type target_2d =
GL_TEXTURE_2D
| GL_PROXY_TEXTURE_2D
| GL_TEXTURE_CUBE_MAP_POSITIVE_X
| GL_TEXTURE_CUBE_MAP_NEGATIVE_X
| GL_TEXTURE_CUBE_MAP_POSITIVE_Y
| GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
| GL_TEXTURE_CUBE_MAP_POSITIVE_Z
| GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
| GL_PROXY_TEXTURE_CUBE_MAP
type target_1d = GL_TEXTURE_1D | GL_PROXY_TEXTURE_1D
type target_3d = GL_TEXTURE_3D | GL_PROXY_TEXTURE_3D
end
module InternalFormat :
sig
type internal_format =
GL_ALPHA
| GL_ALPHA4
| GL_ALPHA8
| GL_ALPHA12
| GL_ALPHA16
| GL_COMPRESSED_ALPHA
| GL_COMPRESSED_LUMINANCE
| GL_COMPRESSED_LUMINANCE_ALPHA
| GL_COMPRESSED_INTENSITY
| GL_COMPRESSED_RGB
| GL_COMPRESSED_RGBA
| GL_DEPTH_COMPONENT
| GL_DEPTH_COMPONENT16
| GL_DEPTH_COMPONENT24
| GL_DEPTH_COMPONENT32
| GL_LUMINANCE
| GL_LUMINANCE4
| GL_LUMINANCE8
| GL_LUMINANCE12
| GL_LUMINANCE16
| GL_LUMINANCE_ALPHA
| GL_LUMINANCE4_ALPHA4
| GL_LUMINANCE6_ALPHA2
| GL_LUMINANCE8_ALPHA8
| GL_LUMINANCE12_ALPHA4
| GL_LUMINANCE12_ALPHA12
| GL_LUMINANCE16_ALPHA16
| GL_INTENSITY
| GL_INTENSITY4
| GL_INTENSITY8
| GL_INTENSITY12
| GL_INTENSITY16
| GL_R3_G3_B2
| GL_RGB
| GL_RGB4
| GL_RGB5
| GL_RGB8
| GL_RGB10
| GL_RGB12
| GL_RGB16
| GL_RGBA
| GL_RGBA2
| GL_RGBA4
| GL_RGB5_A1
| GL_RGBA8
| GL_RGB10_A2
| GL_RGBA12
| GL_RGBA16
| GL_SLUMINANCE
| GL_SLUMINANCE8
| GL_SLUMINANCE_ALPHA
| GL_SLUMINANCE8_ALPHA8
| GL_SRGB
| GL_SRGB8
| GL_SRGB_ALPHA
| GL_SRGB8_ALPHA8
end
type pixel_data_format =
GL_COLOR_INDEX
| GL_RED
| GL_GREEN
| GL_BLUE
| GL_ALPHA
| GL_RGB
| GL_RGBA
| GL_LUMINANCE
| GL_LUMINANCE_ALPHA
type pixel_data_type =
GL_UNSIGNED_BYTE
| GL_BYTE
| GL_BITMAP
| GL_UNSIGNED_SHORT
| GL_SHORT
| GL_UNSIGNED_INT
| GL_INT
| GL_FLOAT
| GL_UNSIGNED_BYTE_3_3_2
| GL_UNSIGNED_BYTE_2_3_3_REV
| GL_UNSIGNED_SHORT_5_6_5
| GL_UNSIGNED_SHORT_5_6_5_REV
| GL_UNSIGNED_SHORT_4_4_4_4
| GL_UNSIGNED_SHORT_4_4_4_4_REV
| GL_UNSIGNED_SHORT_5_5_5_1
| GL_UNSIGNED_SHORT_1_5_5_5_REV
| GL_UNSIGNED_INT_8_8_8_8
| GL_UNSIGNED_INT_8_8_8_8_REV
| GL_UNSIGNED_INT_10_10_10_2
| GL_UNSIGNED_INT_2_10_10_10_REV
type img_input = Filename of string | Buffer of string
type image_data =
(int, Bigarray.int8_unsigned_elt, Bigarray.c_layout)
Bigarray.Genarray.t
val assert_size : width:int -> height:int -> unit
external glTexImage2D :
target:GL.TexTarget.target_2d ->
level:int ->
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_glteximage2d_bytecode" "ml_glteximage2d_native"
external glTexImage2D_str :
target:GL.TexTarget.target_2d ->
level:int ->
internal_format:GL.InternalFormat.internal_format ->
width:int ->
height:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:string -> unit
= "ml_glteximage2d_str_bytecode" "ml_glteximage2d_str_native"
external glTexImage1D :
target:GL.TexTarget.target_1d ->
level:int ->
internal_format:GL.InternalFormat.internal_format ->
width:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:GL.image_data -> unit
= "ml_glteximage1d_bytecode" "ml_glteximage1d_native"
external glTexImage3D :
target:GL.TexTarget.target_3d ->
level:int ->
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_glteximage3d_bytecode" "ml_glteximage3d_native"
external glTexCoord1 : s:float -> unit = "ml_gltexcoord1" "noalloc"
external glTexCoord2 : s:float -> t:float -> unit = "ml_gltexcoord2"
"noalloc"
external glTexCoord3 : s:float -> t:float -> r:float -> unit
= "ml_gltexcoord3" "noalloc"
external glTexCoord4 : s:float -> t:float -> r:float -> q:float -> unit
= "ml_gltexcoord4" "noalloc"
external glTexCoord2v : v:float * float -> unit = "ml_gltexcoord2v"
"noalloc"
external glTexCoord3v : v:float * float * float -> unit = "ml_gltexcoord3v"
"noalloc"
external glTexCoord4v : v:float * float * float * float -> unit
= "ml_gltexcoord4v" "noalloc"
module Min :
sig
type min_filter =
GL_NEAREST
| GL_LINEAR
| GL_NEAREST_MIPMAP_NEAREST
| GL_LINEAR_MIPMAP_NEAREST
| GL_NEAREST_MIPMAP_LINEAR
| GL_LINEAR_MIPMAP_LINEAR
end
module Mag : sig type mag_filter = GL_NEAREST | GL_LINEAR end
type wrap_param =
GL_CLAMP
| GL_CLAMP_TO_BORDER
| GL_CLAMP_TO_EDGE
| GL_MIRRORED_REPEAT
| GL_REPEAT
module TexParam :
sig
type tex_param_target =
GL_TEXTURE_1D
| GL_TEXTURE_2D
| GL_TEXTURE_3D
| GL_TEXTURE_CUBE_MAP
type texture_compare_mode = GL_NONE
type depth_texture_mode = GL_LUMINANCE | GL_INTENSITY | GL_ALPHA
type tex_param =
GL_TEXTURE_MIN_FILTER of GL.Min.min_filter
| GL_TEXTURE_MAG_FILTER of GL.Mag.mag_filter
| GL_TEXTURE_MIN_LOD of float
| GL_TEXTURE_MAX_LOD of float
| GL_TEXTURE_BASE_LEVEL of int
| GL_TEXTURE_MAX_LEVEL of int
| GL_TEXTURE_WRAP_S of GL.wrap_param
| GL_TEXTURE_WRAP_T of GL.wrap_param
| GL_TEXTURE_WRAP_R of GL.wrap_param
| GL_TEXTURE_BORDER_COLOR of (float * float * float * float)
| GL_TEXTURE_PRIORITY of float
| GL_TEXTURE_COMPARE_MODE of GL.TexParam.texture_compare_mode
| GL_TEXTURE_COMPARE_FUNC of GL.gl_func
| GL_DEPTH_TEXTURE_MODE of GL.TexParam.depth_texture_mode
| GL_GENERATE_MIPMAP of bool
end
val glTexParameter :
target:GL.TexParam.tex_param_target ->
param:GL.TexParam.tex_param -> unit
module CopyTex :
sig
type copy_tex_target =
GL_TEXTURE_2D
| GL_TEXTURE_CUBE_MAP_POSITIVE_X
| GL_TEXTURE_CUBE_MAP_NEGATIVE_X
| GL_TEXTURE_CUBE_MAP_POSITIVE_Y
| GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
| GL_TEXTURE_CUBE_MAP_POSITIVE_Z
| GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
end
external glCopyTexImage2D :
target:GL.CopyTex.copy_tex_target ->
level:int ->
internal_format:GL.InternalFormat.internal_format ->
x:int -> y:int -> width:int -> height:int -> border:int -> unit
= "ml_glcopyteximage2d_bytecode" "ml_glcopyteximage2d_native"
external glSampleCoverage : value:float -> invert:bool -> unit
= "ml_glsamplecoverage" "noalloc"
type pixel_packing_b =
GL_PACK_SWAP_BYTES
| GL_PACK_LSB_FIRST
| GL_UNPACK_SWAP_BYTES
| GL_UNPACK_LSB_FIRST
external glPixelStoreb :
pixel_packing:GL.pixel_packing_b -> param:bool -> unit
= "ml_glpixelstoreb" "noalloc"
type pixel_packing_i =
GL_PACK_ROW_LENGTH
| GL_PACK_IMAGE_HEIGHT
| GL_PACK_SKIP_PIXELS
| GL_PACK_SKIP_ROWS
| GL_PACK_SKIP_IMAGES
| GL_PACK_ALIGNMENT
| GL_UNPACK_ROW_LENGTH
| GL_UNPACK_IMAGE_HEIGHT
| GL_UNPACK_SKIP_PIXELS
| GL_UNPACK_SKIP_ROWS
| GL_UNPACK_SKIP_IMAGES
| GL_UNPACK_ALIGNMENT
external glPixelStorei :
pixel_packing:GL.pixel_packing_i -> param:int -> unit
= "ml_glpixelstorei" "noalloc"
external glPixelZoom : xfactor:float -> yfactor:float -> unit
= "ml_glpixelzoom" "noalloc"
type pixel_map =
GL_PIXEL_MAP_I_TO_I
| GL_PIXEL_MAP_S_TO_S
| GL_PIXEL_MAP_I_TO_R
| GL_PIXEL_MAP_I_TO_G
| GL_PIXEL_MAP_I_TO_B
| GL_PIXEL_MAP_I_TO_A
| GL_PIXEL_MAP_R_TO_R
| GL_PIXEL_MAP_G_TO_G
| GL_PIXEL_MAP_B_TO_B
| GL_PIXEL_MAP_A_TO_A
external glPixelMapfv : map:GL.pixel_map -> v:float array -> unit
= "ml_glpixelmapfv"
external glBitmap :
width:int ->
height:int ->
xorig:float ->
yorig:float ->
xmove:float ->
ymove:float -> bitmap:('a, 'b, 'c) Bigarray.Array1.t -> unit
= "ml_glbitmap_bytecode" "ml_glbitmap_native"
type pixel_type = GL_COLOR | GL_DEPTH | GL_STENCIL
external glCopyPixels :
x:int ->
y:int -> width:int -> height:int -> pixel_type:GL.pixel_type -> unit
= "ml_glcopypixels" "noalloc"
type pixel_transfer_i = GL_INDEX_SHIFT | GL_INDEX_OFFSET
type pixel_transfer_f =
GL_RED_SCALE
| GL_RED_BIAS
| GL_GREEN_SCALE
| GL_GREEN_BIAS
| GL_BLUE_SCALE
| GL_BLUE_BIAS
| GL_ALPHA_SCALE
| GL_ALPHA_BIAS
| GL_DEPTH_SCALE
| GL_DEPTH_BIAS
type pixel_transfer_b = GL_MAP_COLOR | GL_MAP_STENCIL
type pixel_transfer_f_ARB =
GL_POST_COLOR_MATRIX_RED_SCALE
| GL_POST_COLOR_MATRIX_GREEN_SCALE
| GL_POST_COLOR_MATRIX_BLUE_SCALE
| GL_POST_COLOR_MATRIX_ALPHA_SCALE
| GL_POST_COLOR_MATRIX_RED_BIAS
| GL_POST_COLOR_MATRIX_GREEN_BIAS
| GL_POST_COLOR_MATRIX_BLUE_BIAS
| GL_POST_COLOR_MATRIX_ALPHA_BIAS
| GL_POST_CONVOLUTION_RED_SCALE
| GL_POST_CONVOLUTION_GREEN_SCALE
| GL_POST_CONVOLUTION_BLUE_SCALE
| GL_POST_CONVOLUTION_ALPHA_SCALE
| GL_POST_CONVOLUTION_RED_BIAS
| GL_POST_CONVOLUTION_GREEN_BIAS
| GL_POST_CONVOLUTION_BLUE_BIAS
| GL_POST_CONVOLUTION_ALPHA_BIAS
external glPixelTransferi : pname:GL.pixel_transfer_i -> param:int -> unit
= "ml_glpixeltransferi"
external glPixelTransferf :
pname:GL.pixel_transfer_f -> param:float -> unit = "ml_glpixeltransferf"
external glPixelTransferb : pname:GL.pixel_transfer_b -> param:bool -> unit
= "ml_glpixeltransferb"
external glPixelTransferfARB :
pname:GL.pixel_transfer_f_ARB -> param:float -> unit
= "ml_glpixeltransferfARB"
module Framebuffer :
sig
type pixel_buffer_format =
GL_COLOR_INDEX
| GL_STENCIL_INDEX
| GL_DEPTH_COMPONENT
| GL_RED
| GL_GREEN
| GL_BLUE
| GL_ALPHA
| GL_RGB
| GL_BGR
| GL_RGBA
| GL_BGRA
| GL_LUMINANCE
| GL_LUMINANCE_ALPHA
type pixel_buffer_type =
GL_UNSIGNED_BYTE
| GL_BYTE
| GL_BITMAP
| GL_UNSIGNED_SHORT
| GL_SHORT
| GL_UNSIGNED_INT
| GL_INT
| GL_FLOAT
| GL_UNSIGNED_BYTE_3_3_2
| GL_UNSIGNED_BYTE_2_3_3_REV
| GL_UNSIGNED_SHORT_5_6_5
| GL_UNSIGNED_SHORT_5_6_5_REV
| GL_UNSIGNED_SHORT_4_4_4_4
| GL_UNSIGNED_SHORT_4_4_4_4_REV
| GL_UNSIGNED_SHORT_5_5_5_1
| GL_UNSIGNED_SHORT_1_5_5_5_REV
| GL_UNSIGNED_INT_8_8_8_8
| GL_UNSIGNED_INT_8_8_8_8_REV
| GL_UNSIGNED_INT_10_10_10_2
| GL_UNSIGNED_INT_2_10_10_10_REV
end
external glReadPixelsBA_unsafe :
x:int ->
y:int ->
width:int ->
height:int ->
GL.Framebuffer.pixel_buffer_format ->
GL.Framebuffer.pixel_buffer_type -> GL.image_data -> unit
= "ml_glreadpixels_ba_unsafe_bytecode" "ml_glreadpixels_ba_unsafe_native"
external glReadPixelsBA :
x:int ->
y:int ->
width:int ->
height:int ->
GL.Framebuffer.pixel_buffer_format ->
GL.Framebuffer.pixel_buffer_type -> GL.image_data -> unit
= "ml_glreadpixels_ba_bytecode" "ml_glreadpixels_ba_native"
external glDrawPixels_str :
width:int ->
height:int ->
format_:GL.pixel_data_format ->
type_:GL.pixel_data_type -> pixels:string -> unit = "ml_gldrawpixels_str"
module Plane :
sig
type clip_plane =
GL_CLIP_PLANE0
| GL_CLIP_PLANE1
| GL_CLIP_PLANE2
| GL_CLIP_PLANE3
| GL_CLIP_PLANE4
| GL_CLIP_PLANE5
end
external glClipPlane :
plane:GL.Plane.clip_plane -> equation:float array -> unit
= "ml_glclipplane"
external glClipPlane_unsafe :
plane:GL.Plane.clip_plane -> equation:float array -> unit
= "ml_glclipplane_unsafe"
type clip_plane_i = GL_CLIP_PLANE of int
val glClipPlanei : plane:GL.clip_plane_i -> equation:float array -> unit
val glClipPlanei_unsafe :
plane:GL.clip_plane_i -> equation:float array -> unit
module Map1 :
sig
type map1_target =
GL_MAP1_VERTEX_3
| GL_MAP1_VERTEX_4
| GL_MAP1_INDEX
| GL_MAP1_COLOR_4
| GL_MAP1_NORMAL
| GL_MAP1_TEXTURE_COORD_1
| GL_MAP1_TEXTURE_COORD_2
| GL_MAP1_TEXTURE_COORD_3
| GL_MAP1_TEXTURE_COORD_4
end
external glMap1 :
target:GL.Map1.map1_target ->
u1:float ->
u2:float -> stride:int -> order:int -> points:float array -> unit
= "ml_glmap1d_bytecode" "ml_glmap1d_native"
module Map2 :
sig
type map2_target =
GL_MAP2_VERTEX_3
| GL_MAP2_VERTEX_4
| GL_MAP2_INDEX
| GL_MAP2_COLOR_4
| GL_MAP2_NORMAL
| GL_MAP2_TEXTURE_COORD_1
| GL_MAP2_TEXTURE_COORD_2
| GL_MAP2_TEXTURE_COORD_3
| GL_MAP2_TEXTURE_COORD_4
end
external glMap2 :
target:GL.Map2.map2_target ->
u1:float ->
u2:float ->
ustride:int ->
uorder:int ->
v1:float ->
v2:float ->
vstride:int -> vorder:int -> points:float array array array -> unit
= "ml_glmap2d_bytecode" "ml_glmap2d_native"
external glEvalCoord1 : u:float -> unit = "ml_glevalcoord1d" "noalloc"
external glEvalCoord2 : u:float -> v:float -> unit = "ml_glevalcoord2d"
"noalloc"
module EvalMesh1 : sig type eval_mesh_1 = GL_POINT | GL_LINE end
module EvalMesh2 : sig type eval_mesh_2 = GL_POINT | GL_LINE | GL_FILL end
external glEvalMesh1 :
mode:GL.EvalMesh1.eval_mesh_1 -> i1:int -> i2:int -> unit
= "ml_glevalmesh1" "noalloc"
external glEvalMesh2 :
mode:GL.EvalMesh2.eval_mesh_2 ->
i1:int -> i2:int -> j1:int -> j2:int -> unit = "ml_glevalmesh2" "noalloc"
external glEvalPoint1 : i:int -> unit = "ml_glevalpoint1" "noalloc"
external glEvalPoint2 : i:int -> j:int -> unit = "ml_glevalpoint2"
"noalloc"
external glMapGrid1 : un:int -> u1:float -> u2:float -> unit
= "ml_glmapgrid1d" "noalloc"
external glMapGrid2 :
un:int -> u1:float -> u2:float -> vn:int -> v1:float -> v2:float -> unit
= "ml_glmapgrid2d_bytecode" "ml_glmapgrid2d_native"
type list_mode = GL_COMPILE | GL_COMPILE_AND_EXECUTE
external glNewList : gl_list:int -> mode:GL.list_mode -> unit
= "ml_glnewlist" "noalloc"
external glEndList : unit -> unit = "ml_glendlist" "noalloc"
external glGenList : unit -> int = "ml_glgenlist" "noalloc"
external glGenLists : range:int -> int = "ml_glgenlists" "noalloc"
external glCallList : gl_list:int -> unit = "ml_glcalllist" "noalloc"
external glCallLists : gl_lists:int array -> unit = "ml_glcalllists"
"noalloc"
external glDeleteLists : gl_list:int -> range:int -> unit
= "ml_gldeletelists" "noalloc"
external glListBase : base:int -> unit = "ml_gllistbase" "noalloc"
external glIsList : gl_list:int -> bool = "ml_glislist" "noalloc"
external glGetListMode : unit -> GL.list_mode = "ml_glgetlistmode"
"noalloc"
type render_mode = GL_RENDER | GL_SELECT | GL_FEEDBACK
external glRenderMode : mode:GL.render_mode -> int = "ml_glrendermode"
"noalloc"
external glInitNames : unit -> unit = "ml_glinitnames" "noalloc"
external glLoadName : name:int -> unit = "ml_glloadname" "noalloc"
external glPushName : name:int -> unit = "ml_glpushname" "noalloc"
external glPopName : unit -> unit = "ml_glpopname" "noalloc"
type select_buffer
external new_select_buffer : buffer_size:int -> GL.select_buffer
= "ml_alloc_select_buffer" "noalloc"
external free_select_buffer : select_buffer:GL.select_buffer -> unit
= "ml_free_select_buffer" "noalloc"
external select_buffer_get :
select_buffer:GL.select_buffer -> index:int -> int
= "ml_select_buffer_get" "noalloc"
external glSelectBuffer :
buffer_size:int -> select_buffer:GL.select_buffer -> unit
= "ml_glselectbuffer" "noalloc"
external glSelectBufferBA :
(nativeint, Bigarray.nativeint_elt, Bigarray.c_layout) Bigarray.Array1.t ->
unit = "ml_glselectbuffer_ba" "noalloc"
type fog_mode = GL_LINEAR | GL_EXP | GL_EXP2
type fog_coord_src = GL_FOG_COORD | GL_FRAGMENT_DEPTH
type fog_param =
GL_FOG_MODE of GL.fog_mode
| GL_FOG_DENSITY of float
| GL_FOG_START of float
| GL_FOG_END of float
| GL_FOG_INDEX of float
| GL_FOG_COLOR of (float * float * float * float)
| GL_FOG_COORD_SRC of GL.fog_coord_src
val glFog : pname:GL.fog_param -> unit
type shader_object
type shader_program
type shader_type =
GL_VERTEX_SHADER
| GL_FRAGMENT_SHADER
| GL_GEOMETRY_SHADER
external glCreateShader : shader_type:GL.shader_type -> GL.shader_object
= "ml_glcreateshader"
external glDeleteShader : shader:GL.shader_object -> unit
= "ml_gldeleteshader"
external glIsShader : shader:GL.shader_object -> bool = "ml_glisshader"
external glShaderSource : shader:GL.shader_object -> string -> unit
= "ml_glshadersource"
external glCompileShader : shader:GL.shader_object -> unit
= "ml_glcompileshader"
external glCreateProgram : unit -> GL.shader_program = "ml_glcreateprogram"
external glDeleteProgram : program:GL.shader_program -> unit
= "ml_gldeleteprogram"
external glAttachShader :
program:GL.shader_program -> shader:GL.shader_object -> unit
= "ml_glattachshader"
external glDetachShader :
program:GL.shader_program -> shader:GL.shader_object -> unit
= "ml_gldetachshader"
external glLinkProgram : program:GL.shader_program -> unit
= "ml_gllinkprogram"
external glUseProgram : program:GL.shader_program -> unit
= "ml_gluseprogram"
external glUnuseProgram : unit -> unit = "ml_glunuseprogram"
external glGetShaderCompileStatus : shader:GL.shader_object -> bool
= "ml_glgetshadercompilestatus"
external glGetShaderCompileStatus_exn : shader:GL.shader_object -> unit
= "ml_glgetshadercompilestatus_exn"
external glGetUniformLocation :
program:GL.shader_program -> name:string -> int
= "ml_glgetuniformlocation"
type get_program_bool =
GL_DELETE_STATUS
| GL_LINK_STATUS
| GL_VALIDATE_STATUS
type get_program_int =
GL_INFO_LOG_LENGTH
| GL_ATTACHED_SHADERS
| GL_ACTIVE_ATTRIBUTES
| GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
| GL_ACTIVE_UNIFORMS
| GL_ACTIVE_UNIFORM_MAX_LENGTH
external glGetProgrami :
program:GL.shader_program -> pname:GL.get_program_int -> int
= "ml_glgetprogram_int"
external glGetProgramb :
program:GL.shader_program -> pname:GL.get_program_bool -> bool
= "ml_glgetprogram_bool"
external glUniform1f : location:int -> v0:float -> unit = "ml_gluniform1f"
"noalloc"
external glUniform2f : location:int -> v0:float -> v1:float -> unit
= "ml_gluniform2f" "noalloc"
external glUniform3f :
location:int -> v0:float -> v1:float -> v2:float -> unit
= "ml_gluniform3f" "noalloc"
external glUniform4f :
location:int -> v0:float -> v1:float -> v2:float -> v3:float -> unit
= "ml_gluniform4f" "noalloc"
external glUniform1i : location:int -> v0:int -> unit = "ml_gluniform1i"
"noalloc"
external glUniform2i : location:int -> v0:int -> v1:int -> unit
= "ml_gluniform2i" "noalloc"
external glUniform3i : location:int -> v0:int -> v1:int -> v2:int -> unit
= "ml_gluniform3i" "noalloc"
external glUniform4i :
location:int -> v0:int -> v1:int -> v2:int -> v3:int -> unit
= "ml_gluniform4i" "noalloc"
external glUniform1fv : location:int -> value:float array -> unit
= "ml_gluniform1fv"
external glUniform2fv :
location:int -> count:int -> value:float array -> unit
= "ml_gluniform2fv"
external glUniform3fv :
location:int -> count:int -> value:float array -> unit
= "ml_gluniform3fv"
external glUniform4fv :
location:int -> count:int -> value:float array -> unit
= "ml_gluniform4fv"
external glUniform1iv : location:int -> value:int array -> unit
= "ml_gluniform1iv"
external glUniform2iv :
location:int -> count:int -> value:int array -> unit = "ml_gluniform2iv"
external glUniform3iv :
location:int -> count:int -> value:int array -> unit = "ml_gluniform3iv"
external glUniform4iv :
location:int -> count:int -> value:int array -> unit = "ml_gluniform4iv"
external glUniformMatrix2f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2f"
external glUniformMatrix3f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3f"
external glUniformMatrix4f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4f"
external glUniformMatrix2x3f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2x3f"
external glUniformMatrix3x2f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3x2f"
external glUniformMatrix2x4f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2x4f"
external glUniformMatrix4x2f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4x2f"
external glUniformMatrix3x4f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3x4f"
external glUniformMatrix4x3f :
location:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4x3f"
external glUniformMatrix2fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2fv"
external glUniformMatrix3fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3fv"
external glUniformMatrix4fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4fv"
external glUniformMatrix2x3fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2x3fv"
external glUniformMatrix3x2fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3x2fv"
external glUniformMatrix2x4fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix2x4fv"
external glUniformMatrix4x2fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4x2fv"
external glUniformMatrix3x4fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix3x4fv"
external glUniformMatrix4x3fv :
location:int -> count:int -> transpose:bool -> value:float array -> unit
= "ml_gluniformmatrix4x3fv"
external glGetAttribLocation :
program:GL.shader_program -> name:string -> int
= "ml_glgetattriblocation" "noalloc"
external glBindAttribLocation :
program:GL.shader_program -> index:int -> name:string -> unit
= "ml_glbindattriblocation" "noalloc"
external glVertexAttrib1s : index:int -> v:int -> unit
= "ml_glvertexattrib1s" "noalloc"
external glVertexAttrib1d : index:int -> v:float -> unit
= "ml_glvertexattrib1d" "noalloc"
external glVertexAttrib2s : index:int -> v0:int -> v1:int -> unit
= "ml_glvertexattrib2s" "noalloc"
external glVertexAttrib2d : index:int -> v0:float -> v1:float -> unit
= "ml_glvertexattrib2d" "noalloc"
external glVertexAttrib3s : index:int -> v0:int -> v1:int -> v2:int -> unit
= "ml_glvertexattrib3s" "noalloc"
external glVertexAttrib3d :
index:int -> v0:float -> v1:float -> v2:float -> unit
= "ml_glvertexattrib3d" "noalloc"
external glVertexAttrib4s :
index:int -> v0:int -> v1:int -> v2:int -> v3:int -> unit
= "ml_glvertexattrib4s" "noalloc"
external glVertexAttrib4d :
index:int -> v0:float -> v1:float -> v2:float -> v3:float -> unit
= "ml_glvertexattrib4d" "noalloc"
external glGetShaderInfoLog : shader:GL.shader_object -> string
= "ml_glgetshaderinfolog"
external glGetProgramInfoLog : program:GL.shader_program -> string
= "ml_glgetprograminfolog"
external glEnableVertexAttribArray : index:int -> unit
= "ml_glenablevertexattribarray" "noalloc"
external glDisableVertexAttribArray : index:int -> unit
= "ml_gldisablevertexattribarray" "noalloc"
module Get :
sig
type get_boolean_1 =
GL_ALPHA_TEST
| GL_AUTO_NORMAL
| GL_BLEND
| GL_CLIP_PLANE0
| GL_CLIP_PLANE1
| GL_CLIP_PLANE2
| GL_CLIP_PLANE3
| GL_CLIP_PLANE4
| GL_CLIP_PLANE5
| GL_COLOR_ARRAY
| GL_COLOR_LOGIC_OP
| GL_COLOR_MATERIAL
| GL_COLOR_SUM
| GL_COLOR_TABLE
| GL_CONVOLUTION_1D
| GL_CONVOLUTION_2D
| GL_CULL_FACE
| GL_CURRENT_RASTER_POSITION_VALID
| GL_DEPTH_TEST
| GL_DEPTH_WRITEMASK
| GL_DITHER
| GL_DOUBLEBUFFER
| GL_EDGE_FLAG
| GL_EDGE_FLAG_ARRAY
| GL_FOG
| GL_FOG_COORD_ARRAY
| GL_HISTOGRAM
| GL_INDEX_ARRAY
| GL_INDEX_LOGIC_OP
| GL_INDEX_MODE
| GL_LIGHT0
| GL_LIGHT1
| GL_LIGHT2
| GL_LIGHT3
| GL_LIGHT4
| GL_LIGHT5
| GL_LIGHT6
| GL_LIGHT7
| GL_LIGHTING
| GL_LIGHT_MODEL_LOCAL_VIEWER
| GL_LIGHT_MODEL_TWO_SIDE
| GL_LINE_SMOOTH
| GL_LINE_STIPPLE
| GL_MAP1_INDEX
| GL_MAP1_NORMAL
| GL_MAP1_TEXTURE_COORD_1
| GL_MAP1_TEXTURE_COORD_2
| GL_MAP1_TEXTURE_COORD_3
| GL_MAP1_TEXTURE_COORD_4
| GL_MAP1_VERTEX_3
| GL_MAP1_VERTEX_4
| GL_MAP2_COLOR_4
| GL_MAP2_INDEX
| GL_MAP2_NORMAL
| GL_MAP2_TEXTURE_COORD_1
| GL_MAP2_TEXTURE_COORD_2
| GL_MAP2_TEXTURE_COORD_3
| GL_MAP2_TEXTURE_COORD_4
| GL_MAP2_VERTEX_3
| GL_MAP2_VERTEX_4
| GL_MAP_COLOR
| GL_MAP_STENCIL
| GL_MINMAX
| GL_NORMAL_ARRAY
| GL_NORMALIZE
| GL_PACK_SWAP_BYTES
| GL_POINT_SMOOTH
| GL_POINT_SPRITE
| GL_POLYGON_OFFSET_FILL
| GL_POLYGON_OFFSET_LINE
| GL_POLYGON_OFFSET_POINT
| GL_POLYGON_SMOOTH
| GL_POLYGON_STIPPLE
| GL_POST_COLOR_MATRIX_COLOR_TABLE
| GL_PACK_LSB_FIRST
| GL_POST_CONVOLUTION_COLOR_TABLE
| GL_RESCALE_NORMAL
| GL_RGBA_MODE
| GL_SAMPLE_COVERAGE_INVERT
| GL_SCISSOR_TEST
| GL_SECONDARY_COLOR_ARRAY
| GL_SEPARABLE_2D
| GL_STENCIL_TEST
| GL_STEREO
| GL_TEXTURE_1D
| GL_TEXTURE_2D
| GL_TEXTURE_3D
| GL_TEXTURE_COORD_ARRAY
| GL_TEXTURE_CUBE_MAP
| GL_TEXTURE_GEN_Q
| GL_TEXTURE_GEN_R
| GL_TEXTURE_GEN_S
| GL_TEXTURE_GEN_T
| GL_UNPACK_LSB_FIRST
| GL_UNPACK_SWAP_BYTES
| GL_VERTEX_ARRAY
| GL_VERTEX_PROGRAM_POINT_SIZE
| GL_VERTEX_PROGRAM_TWO_SIDE
| GL_PACK_ALIGNMENT
| GL_PACK_IMAGE_HEIGHT
| GL_PACK_ROW_LENGTH
| GL_PACK_SKIP_IMAGES
| GL_PACK_SKIP_PIXELS
| GL_PACK_SKIP_ROWS
| GL_UNPACK_IMAGE_HEIGHT
| GL_UNPACK_ROW_LENGTH
| GL_UNPACK_SKIP_IMAGES
| GL_UNPACK_SKIP_PIXELS
| GL_UNPACK_SKIP_ROWS
type get_boolean_4 = GL_COLOR_WRITEMASK
type get_integer_4 = GL_VIEWPORT | GL_SCISSOR_BOX
type get_integer_2 = GL_MAX_VIEWPORT_DIMS
type get_integer_1 =
GL_ACCUM_RED_BITS
| GL_ACCUM_GREEN_BITS
| GL_ACCUM_BLUE_BITS
| GL_ACCUM_ALPHA_BITS
| GL_CURRENT_RASTER_INDEX
| GL_LIST_BASE
| GL_LIST_INDEX
| GL_MAX_LIGHTS
| GL_MAX_LIST_NESTING
| GL_MAX_TEXTURE_SIZE
| GL_MAX_TEXTURE_COORDS
| GL_ACTIVE_TEXTURE
| GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
| GL_MAX_TEXTURE_UNITS
| GL_MAX_ELEMENTS_INDICES
| GL_MAX_ELEMENTS_VERTICES
| GL_SUBPIXEL_BITS
| GL_DEPTH_BITS
| GL_STENCIL_BITS
| GL_NAME_STACK_DEPTH
| GL_COLOR_MATRIX_STACK_DEPTH
| GL_MODELVIEW_STACK_DEPTH
| GL_PROJECTION_STACK_DEPTH
| GL_TEXTURE_STACK_DEPTH
| GL_MAX_MODELVIEW_STACK_DEPTH
| GL_MAX_PROJECTION_STACK_DEPTH
| GL_MAX_TEXTURE_STACK_DEPTH
| GL_SAMPLE_BUFFERS
| GL_SAMPLES
| GL_MAX_CLIP_PLANES
| GL_AUX_BUFFERS
| GL_RED_BITS
| GL_GREEN_BITS
| GL_BLUE_BITS
| GL_ALPHA_BITS
| GL_MAX_3D_TEXTURE_SIZE
| GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
| GL_MAX_ATTRIB_STACK_DEPTH
| GL_MAX_COLOR_MATRIX_STACK_DEPTH
| GL_MAX_CUBE_MAP_TEXTURE_SIZE
| GL_MAX_DRAW_BUFFERS
| GL_MAX_NAME_STACK_DEPTH
| GL_NORMAL_ARRAY_STRIDE
| GL_INDEX_ARRAY_STRIDE
| GL_COLOR_ARRAY_STRIDE
| GL_EDGE_FLAG_ARRAY_STRIDE
| GL_TEXTURE_COORD_ARRAY_STRIDE
| GL_VERTEX_ARRAY_STRIDE
| GL_SECONDARY_COLOR_ARRAY_STRIDE
| GL_FOG_COORD_ARRAY_STRIDE
| GL_SECONDARY_COLOR_ARRAY_SIZE
| GL_SELECTION_BUFFER_SIZE
| GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
| GL_MAX_VERTEX_UNIFORM_COMPONENTS
| GL_NUM_EXTENSIONS
| GL_MAX_VERTEX_ATTRIBS
type get_float_3 = GL_CURRENT_NORMAL | GL_POINT_DISTANCE_ATTENUATION
type get_float_4 =
GL_ACCUM_CLEAR_VALUE
| GL_BLEND_COLOR
| GL_COLOR_CLEAR_VALUE
| GL_CURRENT_COLOR
| GL_CURRENT_RASTER_COLOR
| GL_CURRENT_RASTER_POSITION
| GL_CURRENT_RASTER_SECONDARY_COLOR
| GL_CURRENT_RASTER_TEXTURE_COORDS
| GL_CURRENT_SECONDARY_COLOR
| GL_CURRENT_TEXTURE_COORDS
| GL_FOG_COLOR
| GL_LIGHT_MODEL_AMBIENT
| GL_MAP2_GRID_DOMAIN
type get_matrix =
GL_COLOR_MATRIX
| GL_MODELVIEW_MATRIX
| GL_PROJECTION_MATRIX
| GL_TEXTURE_MATRIX
| GL_TRANSPOSE_COLOR_MATRIX
| GL_TRANSPOSE_MODELVIEW_MATRIX
| GL_TRANSPOSE_PROJECTION_MATRIX
| GL_TRANSPOSE_TEXTURE_MATRIX
type get_float_1 =
GL_CURRENT_RASTER_DISTANCE
| GL_FOG_DENSITY
| GL_FOG_END
| GL_FOG_INDEX
| GL_FOG_START
| GL_INDEX_CLEAR_VALUE
| GL_LINE_WIDTH
| GL_LINE_WIDTH_GRANULARITY
| GL_POINT_SIZE
| GL_STENCIL_CLEAR_VALUE
| GL_DEPTH_CLEAR_VALUE
| GL_SAMPLE_COVERAGE_VALUE
| GL_ZOOM_X
| GL_ZOOM_Y
| GL_ALPHA_SCALE
| GL_BLUE_SCALE
| GL_DEPTH_SCALE
| GL_GREEN_SCALE
| GL_RED_SCALE
| GL_POINT_SIZE_GRANULARITY
| GL_POINT_SIZE_MAX
| GL_POINT_SIZE_MIN
| GL_POINT_FADE_THRESHOLD_SIZE
| GL_CURRENT_INDEX
| GL_POLYGON_OFFSET_FACTOR
| GL_POLYGON_OFFSET_UNITS
type get_float_2 =
GL_LINE_WIDTH_RANGE
| GL_POINT_SIZE_RANGE
| GL_DEPTH_RANGE
type get_texture_binding =
GL_TEXTURE_BINDING_1D
| GL_TEXTURE_BINDING_2D
| GL_TEXTURE_BINDING_3D
| GL_TEXTURE_BINDING_CUBE_MAP
type get_light =
GL_SPOT_EXPONENT
| GL_SPOT_CUTOFF
| GL_CONSTANT_ATTENUATION
| GL_LINEAR_ATTENUATION
| GL_QUADRATIC_ATTENUATION
| GL_SPOT_DIRECTION
| GL_AMBIENT
| GL_DIFFUSE
| GL_SPECULAR
| GL_POSITION
| GL_LIGHT_MODEL_COLOR_CONTROL
end
external glGetBoolean1 : GL.Get.get_boolean_1 -> bool = "ml_glgetboolean1"
"noalloc"
external glGetBoolean4 : GL.Get.get_boolean_4 -> bool * bool * bool * bool
= "ml_glgetboolean4"
external glGetInteger4 : GL.Get.get_integer_4 -> int * int * int * int
= "ml_glgetinteger4"
external glGetInteger1 : GL.Get.get_integer_1 -> int = "ml_glgetinteger1"
"noalloc"
external glGetInteger2 : GL.Get.get_integer_2 -> int * int
= "ml_glgetinteger2"
external glGetFloat4 : GL.Get.get_float_4 -> float * float * float * float
= "ml_glgetfloat4"
external glGetFloat3 : GL.Get.get_float_3 -> float * float * float
= "ml_glgetfloat3"
external glGetFloat2 : GL.Get.get_float_2 -> float * float
= "ml_glgetfloat2"
external glGetFloat1 : GL.Get.get_float_1 -> float = "ml_glgetfloat1"
external glGetMatrix : GL.Get.get_matrix -> float array array
= "ml_glgetmatrix"
external glGetMatrixFlat : GL.Get.get_matrix -> float array
= "ml_glgetmatrix_flat"
external glGetTextureBinding : GL.Get.get_texture_binding -> GL.texture_id
= "ml_glgettexturebinding" "noalloc"
type get_string =
GL_VENDOR
| GL_RENDERER
| GL_VERSION
| GL_SHADING_LANGUAGE_VERSION
| GL_EXTENSIONS
external glGetString : name:GL.get_string -> string = "ml_glgetstring"
type gl_error =
GL_NO_ERROR
| GL_INVALID_ENUM
| GL_INVALID_VALUE
| GL_INVALID_OPERATION
| GL_STACK_OVERFLOW
| GL_STACK_UNDERFLOW
| GL_OUT_OF_MEMORY
| GL_TABLE_TOO_LARGE
external glGetError : unit -> GL.gl_error = "ml_glgeterror" "noalloc"
type tuple_params =
P1 of float
| P3 of float * float * float
| P4 of float * float * float * float
| PCC of GL.color_control
val glGetLight :
light:GL.gl_light -> pname:GL.Get.get_light -> GL.tuple_params
type texture_i =
GL_TEXTURE0
| GL_TEXTURE1
| GL_TEXTURE2
| GL_TEXTURE3
| GL_TEXTURE4
| GL_TEXTURE5
| GL_TEXTURE6
| GL_TEXTURE7
| GL_TEXTURE8
| GL_TEXTURE9
| GL_TEXTURE10
| GL_TEXTURE11
| GL_TEXTURE12
| GL_TEXTURE13
| GL_TEXTURE14
| GL_TEXTURE15
| GL_TEXTURE16
| GL_TEXTURE17
| GL_TEXTURE18
| GL_TEXTURE19
| GL_TEXTURE20
| GL_TEXTURE21
| GL_TEXTURE22
| GL_TEXTURE23
| GL_TEXTURE24
| GL_TEXTURE25
| GL_TEXTURE26
| GL_TEXTURE27
| GL_TEXTURE28
| GL_TEXTURE29
| GL_TEXTURE30
| GL_TEXTURE31
external glActiveTexture : texture:GL.texture_i -> unit
= "ml_glactivetexture" "noalloc"
external glActiveTexturei : texture:int -> unit = "ml_glactivetexture_i"
"noalloc"
external glMultiTexCoord2 :
texture:GL.texture_i -> s:float -> t:float -> unit
= "ml_glmultitexcoord2d" "noalloc"
external glMultiTexCoord2i : texture:int -> s:float -> t:float -> unit
= "ml_glmultitexcoord2f_i"
val glmlite_version : int * int * int
end