sig
type vbo_id
external glGenBuffer : unit -> VBO.vbo_id = "ml_glgenbuffer" "noalloc"
external glGenBuffers : n:int -> VBO.vbo_id array = "ml_glgenbuffers"
external glDeleteBuffer : vbo:VBO.vbo_id -> unit = "ml_gldeletebuffer"
"noalloc"
val glDeleteBuffers : vbos:VBO.vbo_id array -> unit
type buffer_object_target =
GL_ARRAY_BUFFER
| GL_ELEMENT_ARRAY_BUFFER
| GL_PIXEL_PACK_BUFFER
| GL_PIXEL_UNPACK_BUFFER
external glBindBuffer :
target:VBO.buffer_object_target -> vbo:VBO.vbo_id -> unit
= "ml_glbindbuffer" "noalloc"
external glUnbindBuffer : target:VBO.buffer_object_target -> unit
= "ml_glunbindbuffer" "noalloc"
type vbo_usage_pattern =
GL_STREAM_DRAW
| GL_STREAM_READ
| GL_STREAM_COPY
| GL_STATIC_DRAW
| GL_STATIC_READ
| GL_STATIC_COPY
| GL_DYNAMIC_DRAW
| GL_DYNAMIC_READ
| GL_DYNAMIC_COPY
external glBufferData :
target:VBO.buffer_object_target ->
size:int ->
data:('a, 'b, Bigarray.c_layout) Bigarray.Array1.t ->
usage:VBO.vbo_usage_pattern -> unit = "ml_glbufferdata"
external glBufferDataNull :
target:VBO.buffer_object_target ->
size:int -> usage:VBO.vbo_usage_pattern -> unit = "ml_glbufferdata_null"
external glBufferSubData :
target:VBO.buffer_object_target ->
offset:int ->
size:int -> data:('a, 'b, Bigarray.c_layout) Bigarray.Array1.t -> unit
= "ml_glbuffersubdata"
external elem_size :
ba:('a, 'b, Bigarray.c_layout) Bigarray.Array1.t -> int
= "ml_ba_elem_size"
val ba_sizeof : ba:('a, 'b, Bigarray.c_layout) Bigarray.Array1.t -> int
type access_policy = GL_READ_ONLY | GL_WRITE_ONLY | GL_READ_WRITE
type mapped_buffer
external glMapBufferAbs :
target:VBO.buffer_object_target ->
access:VBO.access_policy -> VBO.mapped_buffer = "ml_glmapbuffer_abs"
external glUnmapBuffer : target:VBO.buffer_object_target -> unit
= "ml_glunmapbuffer"
external mapped_buffer_blit :
VBO.mapped_buffer ->
(float, Bigarray.float32_elt, Bigarray.c_layout) Bigarray.Array1.t ->
len:int -> unit = "mapped_buffer_blit"
external mapped_buffer_blit_ofs :
VBO.mapped_buffer ->
(float, Bigarray.float32_elt, Bigarray.c_layout) Bigarray.Array1.t ->
ofs:int -> len:int -> unit = "mapped_buffer_blit_ofs"
type bo_param =
GL_BUFFER_ACCESS
| GL_BUFFER_MAPPED
| GL_BUFFER_SIZE
| GL_BUFFER_USAGE
external glGetBufferAccess :
target:VBO.buffer_object_target -> VBO.access_policy
= "ml_glGetBufferParameter_ACCESS"
external glGetBufferMapped : target:VBO.buffer_object_target -> bool
= "ml_glGetBufferParameter_MAPPED"
external glGetBufferSize : target:VBO.buffer_object_target -> int
= "ml_glGetBufferParameter_SIZE"
external glGetBufferUsage :
target:VBO.buffer_object_target -> VBO.vbo_usage_pattern
= "ml_glGetBufferParameter_USAGE"
end