<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2002/12/756c3fc027fc8ba373e7214c3dba2937"
  from="Nickolay Semyonov-Kolchin &lt;snob@s...&gt;"
  author="Nickolay Semyonov-Kolchin"
  date="2002-12-20T13:01:43"
  subject="[Caml-list] Announce: camlgl - OpenGL bindings for OCaml"
  prev="2002/12/8d92c73f575ae2ee73062a88a61a3b01"
  next="2002/12/78c90ba43648c2c49838d49e891910bc"
  next-in-thread="2002/12/431d9e67f84c154cde1eedeff5a426b0"
  prev-thread="2002/12/c1ae28de1841637e1625891d4f57a4a2"
  next-thread="2002/12/15844ae4e1090111037f41a6baa2820a"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
<msg 
  url="2002/12/756c3fc027fc8ba373e7214c3dba2937"
  from="Nickolay Semyonov-Kolchin &lt;snob@s...&gt;"
  author="Nickolay Semyonov-Kolchin"
  date="2002-12-20T13:01:43"
  subject="[Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
<msg 
  url="2002/12/431d9e67f84c154cde1eedeff5a426b0"
  from="Sven Luther &lt;luther@d...&gt;"
  author="Sven Luther"
  date="2002-12-20T15:28:16"
  subject="Re: [Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
<msg 
  url="2002/12/844db0449438b81c450413a2e9e39120"
  from="Nickolay Semyonov-Kolchin &lt;snob@s...&gt;"
  author="Nickolay Semyonov-Kolchin"
  date="2002-12-20T23:31:12"
  subject="Re: [Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
<msg 
  url="2002/12/46151a95949e34dd9481c92ed5a51a6f"
  from="Jacques Garrigue &lt;garrigue@k...&gt;"
  author="Jacques Garrigue"
  date="2002-12-25T02:37:28"
  subject="Re: [Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
<msg 
  url="2002/12/4c196a76de2b694d0dbd2b92a973e49d"
  from="Nickolay Semyonov-Kolchin &lt;snob@s...&gt;"
  author="Nickolay Semyonov-Kolchin"
  date="2002-12-25T10:49:19"
  subject="[Caml-list] Summary: LablGL vs CamlGL">
</msg>
<msg 
  url="2002/12/6bd310d129ea8d41c4a95acaa8b53a0d"
  from="Christophe Raffalli &lt;Christophe.Raffalli@u...&gt;"
  author="Christophe Raffalli"
  date="2002-12-27T11:23:52"
  subject="Re: [Caml-list] Announce: camlgl - OpenGL bindings for OCaml">
</msg>
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
Announcement CamlGL --- OpenGL bindings for Objective Caml

http://www.sf.net/projects/camlgl

Key Features:
- Full OpenGL 1.4 support
- All window system independent ARB extensions supported
- All published NVidia extensions supported (including NV30)
- All ATI extensions supported
- Windows and Linux version
- GLFW bindings 
- unsupported Glut and SDL bindings

-----------------------------------------------------------
WARNING

this release was tested under RH8, gcc3.2, NVidia GL 41.91

-----------------------------------------------------------
Details
=======
1. CamlGL loads GL library at runtime. So you can switch between Native/Mesa
without recompiling. (This is currently not supported under Windows)

Gl.set_gl_lib "libGL.so.1"

2. CamlGL uses "plain" naming conversion for functions and enums. 

glEnable cgl_lighting; (* glEnable(GL_LIGHTING); *)
glVertex3f 1.0 0.0 0.0; (* glVertex3f(1.0f,1.0f,1.0f); *)
glColor3b 255 255 255; (* glColor3b(255,255,255); *)

3. CamlGL uses Bigarray module for array representation.

let a = Hgl.ba_float_init [|1.0;0.0;3.0|] in
glVertex3fv a;
-------------------------------------------------------------
Notes
======
1. GL_ALL_ATTRIB_BITS

GL_ALL_ATTRIB_BITS declared as 0xFFFFFFFF in NVidia header.
Mesa defines it as 0xFFFF.
We are using Mesa constant.

2. GL_ALL_CLIENT_ATTRIB_BITS and GL_CLIENT_ALL_ATTRIB_BITS

Declared as 0xFFFFFFFF. We are using 0x3FFFFFFF.

3. Functions with standard type string

glGetString: int -&gt; string
glLoadProgramNV: int -&gt; int -&gt; int -&gt; string -&gt; unit
glProgramNamedParameter4{fd}[v]NV: int -&gt; int -&gt; string -&gt; ... -&gt; unit
glGetProgramNamedParameter{fd}vNV: int -&gt; int -&gt; string -&gt; 'a -&gt; unit
glProgramStringARB: int -&gt; int -&gt; int -&gt; string -&gt; unit

4. GL_NV_vertex_array_range 

VAR depends on two window system specific functions:
- {glX,wgl}AllocateMemoryNV
- {glX,wgl}FreeMemoryNV

We provide standard bindings for them:
val _glAllocateMemoryNV: int -&gt; float -&gt; float -&gt; float -&gt; tbabyte
val _glFreeMemoryNV: tbaabstract -&gt; unit

See example in demos/simple/vatest.

5. Unimplemented

glMultiModeDrawElementsIBM
glVertexPointerListIBM
glTexCoordPointerListIBM
glNormalPointerListIBM
glIndexPointerListIBM
glFogCoordPointerListIBM
glEdgeFlagPointerListIBM
glSecondaryColorPointerListIBM
glColorPointerListIBM
glTexCoordPointervINTEL
glColorPointervINTEL
glNormalPointervINTEL
glVertexPointervINTEL
glReplacementCodePointerSUN
glGetPointerv
glMultiDrawElements
glGetVertexAttribPointervARB
glMultiDrawElementsEXT
glGetPointervEXT
glGetVariantPointervEXT
glGetVertexAttribPointervNV
glLoadIdentityDeformationMapSGIX
glDeformSGIX

6. Extensions not supported

ARB_pbuffer 
ARB_render_texture
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

