Issue #47 on hold

ARB_vertex_shader doesn't include all the functions that extension defined

Thomas Jones
created an issue

From the spec:

    void VertexAttrib1fARB(uint index, float v0)
    void VertexAttrib1sARB(uint index, short v0)
    void VertexAttrib1dARB(uint index, double v0)
    void VertexAttrib2fARB(uint index, float v0, float v1)
    void VertexAttrib2sARB(uint index, short v0, short v1)
    void VertexAttrib2dARB(uint index, double v0, double v1)
    void VertexAttrib3fARB(uint index, float v0, float v1, float v2)
    void VertexAttrib3sARB(uint index, short v0, short v1, short v2)
    void VertexAttrib3dARB(uint index, double v0, double v1, double v2)
    void VertexAttrib4fARB(uint index, float v0, float v1, float v2, float v3)
    void VertexAttrib4sARB(uint index, short v0, short v1, short v2, short v3)
    void VertexAttrib4dARB(uint index, double v0, double v1, double v2, double v3)
    void VertexAttrib4NubARB(uint index, ubyte x, ubyte y, ubyte z, ubyte w)

    void VertexAttrib1fvARB(uint index, const float *v)
    void VertexAttrib1svARB(uint index, const short *v)
    void VertexAttrib1dvARB(uint index, const double *v)
    void VertexAttrib2fvARB(uint index, const float *v)
    void VertexAttrib2svARB(uint index, const short *v)
    void VertexAttrib2dvARB(uint index, const double *v)
    void VertexAttrib3fvARB(uint index, const float *v)
    void VertexAttrib3svARB(uint index, const short *v)
    void VertexAttrib3dvARB(uint index, const double *v)
    void VertexAttrib4fvARB(uint index, const float *v)
    void VertexAttrib4svARB(uint index, const short *v)
    void VertexAttrib4dvARB(uint index, const double *v)
    void VertexAttrib4ivARB(uint index, const int *v)
    void VertexAttrib4bvARB(uint index, const byte *v)

    void VertexAttrib4ubvARB(uint index, const ubyte *v)
    void VertexAttrib4usvARB(uint index, const ushort *v)
    void VertexAttrib4uivARB(uint index, const uint *v)

    void VertexAttrib4NbvARB(uint index, const byte *v)
    void VertexAttrib4NsvARB(uint index, const short *v)
    void VertexAttrib4NivARB(uint index, const int *v)
    void VertexAttrib4NubvARB(uint index, const ubyte *v)
    void VertexAttrib4NusvARB(uint index, const ushort *v)
    void VertexAttrib4NuivARB(uint index, const uint *v)

    void VertexAttribPointerARB(uint index, int size, enum type, boolean normalized,
                                sizei stride, const void *pointer)

    void EnableVertexAttribArrayARB(uint index)
    void DisableVertexAttribArrayARB(uint index)

    void BindAttribLocationARB(handleARB programObj, uint index, const charARB *name)

    void GetActiveAttribARB(handleARB programObj, uint index, sizei maxLength,
                             sizei *length, int *size, enum *type, charARB *name)

    GLint GetAttribLocationARB(handleARB programObj, const charARB *name)

    void GetVertexAttribdvARB(uint index, enum pname, double *params)
    void GetVertexAttribfvARB(uint index, enum pname, float *params)
    void GetVertexAttribivARB(uint index, enum pname, int *params)
    void GetVertexAttribPointervARB(uint index, enum pname, void **pointer)

and this is what glLoadGen generates

#ifndef GL_ARB_vertex_shader
#define GL_ARB_vertex_shader 1
extern void (CODEGEN_FUNCPTR *_ptrc_glBindAttribLocationARB)(GLhandleARB, GLuint, const GLcharARB *);
#define glBindAttribLocationARB _ptrc_glBindAttribLocationARB
extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAttribARB)(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
#define glGetActiveAttribARB _ptrc_glGetActiveAttribARB
extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetAttribLocationARB)(GLhandleARB, const GLcharARB *);
#define glGetAttribLocationARB _ptrc_glGetAttribLocationARB
#endif /*GL_ARB_vertex_shader*/ 

So I can bind attribs, but I can't actually give GL any data for them... Also all the tokens seem to be missing too

Comments (3)

  1. Jason McKesson repo owner

    This is a problem with the spec files from the registry. While I could fix them locally (I have a local copy for quick fixes), due to the sheer number of functions involved, I would rather remand this over to the experts. So when the spec files are fixed, I'll bring them in.

    In the meantime, you can include ARB_vertex_program along with it.

  2. Thomas Jones reporter

    What about the new XML based spec files, supposedly in them extensions list every token and entry point included in the extension... I know it's not an easy thing to change but supposedly the old spec files are deprecated.

  3. Log in to comment