I'm trying to use this class with JOGL. It references BufferUtil, which I can't find anywhere. I found documentation, but no actual code. Eclipse doesn't suggest to import it from anywhere. What do I have to do to be able to use this code?
-
Have you added a reference to the `jogl.jar` file to your project? – Richard Cook Sep 19 '10 at 17:54
-
Yes. Other JOGL classes, like GL2, work fine. – Nick Heiner Sep 19 '10 at 17:56
-
There's no jogl.jar in JOGL 2.0, it's named jogl.all.jar. There's another JAR with no AWT dependency. – gouessej Feb 24 '12 at 11:52
-
jogl.all.jar has been renamed jogl-all.jar – gouessej Mar 20 '13 at 16:36
4 Answers
In NeHe tutorials for JOGL, there are many places using BufferUtil
to create the buffers. With JOGL 2.0 we can use com.jogamp.common.nio.Buffers
instead.
For example,
BufferUtil.newIntBuffer(BUFSIZE)
becomes Buffers.newDirectIntBuffer(BUFSIZE)
BufferUtil.newByteBuffer(BUFSIZE)
becomes Buffers.newDirectByteBuffer(BUFSIZE)

- 21,002
- 4
- 67
- 80

- 1,497
- 1
- 10
- 8
-
Rather use com.jogamp.common.nio.Buffers to do that. GLBuffers is mostly for internal use, it should even not be in the public API. – gouessej Feb 24 '12 at 11:54
-
I updated this answer according to @gouessej's comment that we should not use `com.jogamp.opengl.util.GLBuffers ` class. – Kipton Barros May 29 '12 at 04:07
I ran into the same problem while porting a JOGL 1.x app to JOGL 2 and found BufferUtil equivalent methods in the new gluegen library: com.jogamp.common.nio.Buffers
JavaDoc: http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/nio/Buffers.html

- 1,674
- 1
- 18
- 26
I think they pulled BufferUtil
a while back (it looks like it never did anything super useful anyway) but since the code just allocates a new ByteBuffer
, you don't need it. Just do a ByteBuffer unpackedPixels = ByteBuffer.allocate(packedPixels.length * bytesPerPixel);
instead.
There's also a newer JOGL class that does something similar called com.jogamp.opengl.util.texture.TextureIO
with a few newTexture(...)
methods.

- 1,989
- 1
- 12
- 6
-
TextureIO absolutely replaces exactly what this class is trying to do. Just ignore this class and use the built-in TextureIO. – Ricket Sep 23 '10 at 20:30
-
1Your suggestion is wrong because you create an indirect byte buffer potentially not respecting the native order. We should always use the helper class Buffers to avoid doing it. Badly allocated buffers may cause problems, some methods only supports direct NIO buffers. – gouessej Feb 24 '12 at 11:51