@@ -13,6 +13,7 @@ ffi.cdef([[
1313 typedef intptr_t GLintptr;
1414 typedef intptr_t GLsizeiptr;
1515 typedef void* GLsync;
16+ typedef uint8_t GLboolean;
1617
1718 typedef void (*GLDEBUGPROC)(unsigned int, unsigned int, unsigned int, unsigned int, int, const char*, const void*);
1819]] )
@@ -25,6 +26,8 @@ ffi.cdef([[
2526 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices);
2627 void glDeleteTextures(GLsizei n, const GLuint* textures);
2728 char* glGetString(GLenum name);
29+ void glGetIntegerv(GLenum pname, GLint* data);
30+ GLenum glGetError();
2831 void glEnable(GLenum cap);
2932 void glDisable(GLenum cap);
3033 void glBlendFunc(GLenum sfactor, GLenum dfactor);
@@ -95,6 +98,9 @@ local nonCoreFnDefs = {
9598 glSamplerParameteri = " void(*)(GLuint, GLenum, GLint)" ,
9699 glSamplerParameterf = " void(*)(GLuint, GLenum, GLfloat)" ,
97100 glBindSampler = " void(*)(GLuint, GLuint)" ,
101+
102+ glIsVertexArray = " GLboolean(*)(GLuint)" ,
103+ glIsBuffer = " GLboolean(*)(GLuint)" ,
98104}
99105
100106--- @type fun ( name : string ): function
@@ -471,4 +477,24 @@ return {
471477
472478 --- @type fun ( source : number , type : number , severity : number , count : number , ids : ffi.cdata* , enabled : number )
473479 debugMessageControl = C .glDebugMessageControl ,
480+
481+ --- @type fun ( pname : number ): number
482+ getInteger = function (pname )
483+ local data = ffi .new (" GLint[1]" )
484+ C .glGetIntegerv (pname , data )
485+ return data [0 ]
486+ end ,
487+
488+ --- @type fun (): number
489+ getError = C .glGetError ,
490+
491+ --- @type fun ( id : number ): boolean
492+ isVertexArray = function (id )
493+ return C .glIsVertexArray (id ) ~= 0
494+ end ,
495+
496+ --- @type fun ( id : number ): boolean
497+ isBuffer = function (id )
498+ return C .glIsBuffer (id ) ~= 0
499+ end ,
474500}
0 commit comments