Bug 200 - Need better exceptions / errors when using allocated buffers
Summary: Need better exceptions / errors when using allocated buffers
Alias: None
Product: Jogl
Classification: JogAmp
Component: core (show other bugs)
Version: 1
Hardware: All all
: P3 normal
Assignee: Sven Gothel
Depends on:
Reported: 2006-02-02 03:11 CET by Sven Gothel
Modified: 2010-03-24 07:48 CET (History)
0 users

See Also:
SCM Refs:
Workaround: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2010-03-24 07:48:25 CET

---- Reported by krazykatz 2006-02-02 15:11:56 ----

Many jogl methods take nio.Buffer's as parameters, but unless the user created
the buffer using Buffer.wrap(...) the method call will typically fail, with a
often cryptic error (i.e. Buffer Underflow exception)  Jogl methods should
except either arrays or Buffers depending on which gives better performance, and
should not give the developer the option.  If buffers are better then it should
be clearly documented that they must always be created using wrap(), and
appropriate error messages / exceptions should be put in place for the developer.

Found in gl.glGenTextures; gl.glDrawPixels; glu.gluScaleImage; gl.glVertex3fv

---- Additional Comments From kbr 2006-02-03 00:24:58 ----

From the description these problems are caused by user error. The position of
all Buffers is significant as is described in the overview Javadoc for JSR-231
in the section marked "auto-slicing of buffers". The problem is that e.g.
ByteBuffer.put() was used to store data in the Buffer but rewind() was not
called on it before passing it to the various APIs. Both Buffers created via
wrap() as well as direct buffers are valid for all APIs except where direct
Buffers are mandatory. Because this is already documented and valid exceptions
are being thrown in the various areas, closing this as not a bug.

--- Bug imported by sgothel@jausoft.com 2010-03-24 07:48 EDT  ---

This bug was previously known as _bug_ 200 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=200