> (de glGenTextures (_tex-num _tex-ptr)
> (native `*GlutLib "glGenTextures" _tex-num (list _tex-ptr (4 . I)) )
Probably it is just a copy/paste error, but you are sure that the above
expression has one more closing parenthesis, right? Because otherwise
the code following this might also be part your definition.
> It should store a pointer in _tex-ptr but when run it gives the error
> *** Error in "/usr/bin/picolisp": free(): invalid next size (fast)
I haven't tried myself, but "GL/gl.h" says
GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures );
So 'textures' is an array of pointers. Is 'n' the size of that array?
Then I would think the expression (list _tex-ptr (4 . I)) should be
(list _tex-ptr (cons (* _tex-num 8) 'N _tex-num))
For example, if '_tex-num' is 4 and '_tex-ptr' is 'A', then this will
(A (32 N . 4))
meaning 'A' is the symbol to receive the pointer, 32 the total size of
the structure, and (N . 4) an array of 4 pointers.
You would call it as
(glGenTextures 4 'A)
Did I forget something?