Bug 612 - glVertexAttribIPointer(int, int, int, int, long) is missing
Summary: glVertexAttribIPointer(int, int, int, int, long) is missing
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: opengl (show other bugs)
Version: 2
Hardware: All all
: --- normal
Assignee: Sven Gothel
URL:
Depends on:
Blocks:
 
Reported: 2012-09-03 02:58 CEST by giocondo.fulbright
Modified: 2012-09-20 11:58 CEST (History)
0 users

See Also:
Type: ---
SCM Refs:
jogl 3c09f42d372f89bdb41ab4cf2f96962971ad909a
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description giocondo.fulbright 2012-09-03 02:58:14 CEST
GL2ES2.glVertexAttribPointer() comes in two versions, one that takes a Buffer and one that takes a long.  The long is interpreted as an offset in a bound VBO.  In the latest OpenGL, glVertexAttribIPointer() is also supposed to be able to take an offset that's just an integer, but JOGL's GL interfaces do not expose a version of the method that does that.  It appears that the same problem exists with glVertexAttribLPointer(), incidentally.

In the thread http://forum.jogamp.org/Where-is-glVertexAttribIPointer-that-doesn-t-take-a-Buffer-td4026005.html , Sven Gothel comments:

> but my 
> main question is something else:  In the process of fiddling with this I 
> learned about glVertexAttribIPointer() which seemed like something I ought to 
> try, since I was passing ints and that function seems to be specialized for 
> ints or something.  But the interfaces GL4 and GL3 seem to lack 
> glVertexAttribIPointer(int, int, int, int, long).  I'm using a GL3, which 
> should have that method.  What's the problem? 

I see, the code generation for this method doesn't match the GL3 spec, 
where (both) glVertexAttribIPointer(..)'s and glVertexAttribPointer(..)'s 
'void *pointer' argument is an offset to a bound VBO (GL_ARRAY_BUFFER). 

GL2 spec (and the GL2/GL3 compatibility profile) define 
glVertexAttribPointer(..)'s 'void *pointer' argument 
either as a direct data source, _or_ as an offset if a VBO (GL_ARRAY_BUFFER) is bound.
Comment 1 Sven Gothel 2012-09-20 11:58:12 CEST
fixed in jogl commit 3c09f42d372f89bdb41ab4cf2f96962971ad909a