[quote]Hi! I have examined your binding and I have some suggestions on how to make it better. There are some things that I consider very weird.
[/quote]
Hi, and thanks for your comments. LWJGL has evolved a long way since its first inception. The way it is today is basically because it feels right, for the majority of the developers. That said, there will be some that want it to behave differently - we can’t please everybody 
[quote]1. There are no functions like
glVertex3fv(float[])
or like
glMaterialfv(...)
. I would rather prefer to use arrays than a “float, float, float” chain or Buffers in this case.
[/quote]
Yes, it is more convenient - unfortunately this is exactly how you kill performance. When OpenGL renders, it wants its data fast. By using arrays you are forced to move data from within the VM which is considerably slower than using a direct ByteBuffer or variants thereof. See 5 too.
[quote]2. Why do use subclasses of Buffer rather than the Buffer itself? It is very strange.
[/quote]
We use subclasses of bytebuffers so that we know the datatype, and thus the offset into the buffer for elements.
[quote]3. Why don’t you make a private constructor in GL11-15 classes and all other utility classes. They shouldn’t have a public constructor and shouldn’t be instatiated as all methods and fields are static!
[/quote]
Sure we could do that… but I actually don’t see any user benefit from doing it… you can’t use a GL11 instance for anything and it’s a final class anyway - it would simply be for the sake of being more OOish
[quote]4. Why do use only the ByteBuffer in gluBuild2DMipmaps function?
[/quote]
See 1. Why not? - an image is just bytes - why wrap it in something else?
[quote]5. Why did you change GL names? I find it very inconvenient
[/quote]
The names that were changed was because they didn’t make sense in Java (they were removed entirely) or because the actual purpose of the method [gl*f, i, b] was implied by the type of Buffer supplied (FloatBuffer (f), IntBuffer(i), ByteBuffer(b)).