From: Brendan Hansen Date: Mon, 6 Dec 2021 17:49:23 +0000 (-0600) Subject: (mostly) completed opengles module X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=0cf50afa1e2e2f24adda44c7289965dc698a9b2f;p=onyx.git (mostly) completed opengles module --- diff --git a/include/onyx_library.h b/include/onyx_library.h index dd755043..c2e3027f 100644 --- a/include/onyx_library.h +++ b/include/onyx_library.h @@ -56,4 +56,4 @@ typedef struct WasmFuncDefinition { #define DOUBLE WASM_F64 #define PTR WASM_I32 -#define ONYX_PTR(p) (wasm_memory_data(wasm_memory) + p) \ No newline at end of file +#define ONYX_PTR(p) (p != 0 ? (wasm_memory_data(wasm_memory) + p) : NULL) \ No newline at end of file diff --git a/modules/opengles/module.onyx b/modules/opengles/module.onyx index d19341bb..dd158c93 100644 --- a/modules/opengles/module.onyx +++ b/modules/opengles/module.onyx @@ -2,6 +2,9 @@ package opengles #library "./modules/opengles/onyx_opengles" +// Reference to an out parameter from OpenGL. +GLExternRef :: #distinct i64 + #foreign "onyx_opengles" { glActiveTexture :: (texture: GLenum) -> void --- glAttachShader :: (program: GLuint, shader: GLuint) -> void --- @@ -252,7 +255,6 @@ package opengles glTexStorage2D :: (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) -> void --- glTexStorage3D :: (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) -> void --- glGetInternalformativ :: (target: GLenum, internalformat: GLenum, pname: GLenum, bufSize: GLsizei, params: ^GLint) -> void --- - } GLbyte :: i8; diff --git a/modules/opengles/onyx_opengles.c b/modules/opengles/onyx_opengles.c index de046205..c0de2445 100644 --- a/modules/opengles/onyx_opengles.c +++ b/modules/opengles/onyx_opengles.c @@ -10,7 +10,7 @@ } #define ONYX_GL_0_RET_INT(name) \ - ONYX_DEF(name, (), ()) { \ + ONYX_DEF(name, (), (INT)) { \ results->data[0] = WASM_I32_VAL( name () ); \ return NULL; \ } @@ -24,6 +24,7 @@ #define ONYX_GL_INT_1_RET_INT(name) \ ONYX_DEF(name, (INT), (INT)) { \ results->data[0] = WASM_I32_VAL( name (params->data[0].of.i32) ); \ + return NULL; \ } #define ONYX_GL_INT_2(name) \ @@ -50,12 +51,54 @@ return NULL; \ } +#define ONYX_GL_INT_5(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_6(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_7(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_8(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_9(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32, params->data[8].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_10(name) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32, params->data[8].of.i32, params->data[9].of.i32); \ + return NULL; \ + } + #define ONYX_GL_FLOAT_1(name) \ ONYX_DEF(name, (FLOAT), ()) { \ name (params->data[0].of.f32); \ return NULL; \ } +#define ONYX_GL_FLOAT_INT(name) \ + ONYX_DEF(name, (FLOAT, INT), ()) { \ + name (params->data[0].of.f32, params->data[1].of.i32); \ + return NULL; \ + } + #define ONYX_GL_FLOAT_2(name) \ ONYX_DEF(name, (FLOAT, FLOAT), ()) { \ name (params->data[0].of.f32, params->data[1].of.f32); \ @@ -80,6 +123,134 @@ return NULL; \ } +#define ONYX_GL_INT_3_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, (ptr_type *) params->data[3].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_4_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, (ptr_type *) params->data[4].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_5_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, (ptr_type *) params->data[5].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_6_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, (ptr_type *) params->data[6].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_7_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, (ptr_type *) params->data[7].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_8_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32, (ptr_type *) params->data[8].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_9_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32, params->data[8].of.i32, (ptr_type *) params->data[9].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_10_PTR(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, INT, INT, INT, INT, INT, INT, INT, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, params->data[3].of.i32, params->data[4].of.i32, params->data[5].of.i32, params->data[6].of.i32, params->data[7].of.i32, params->data[8].of.i32, params->data[9].of.i32, (ptr_type *) params->data[10].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_FLOAT(name) \ + ONYX_DEF(name, (INT, FLOAT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.f32); \ + return NULL; \ + } + +#define ONYX_GL_INT_FLOAT_2(name) \ + ONYX_DEF(name, (INT, FLOAT, FLOAT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.f32, params->data[2].of.f32); \ + return NULL; \ + } + +#define ONYX_GL_INT_FLOAT_3(name) \ + ONYX_DEF(name, (INT, FLOAT, FLOAT, FLOAT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.f32, params->data[2].of.f32, params->data[3].of.f32); \ + return NULL; \ + } + +#define ONYX_GL_INT_FLOAT_4(name) \ + ONYX_DEF(name, (INT, FLOAT, FLOAT, FLOAT, FLOAT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.f32, params->data[2].of.f32, params->data[3].of.f32, params->data[4].of.f32); \ + return NULL; \ + } + +#define ONYX_GL_INT_2_FLOAT(name) \ + ONYX_DEF(name, (INT, INT, FLOAT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_2_PTR_INT(name, ptr_type) \ + ONYX_DEF(name, (INT, INT, PTR, INT), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, (ptr_type *) ONYX_PTR(params->data[2].of.i32), params->data[3].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_2_PTR_2(name, p1, p2) \ + ONYX_DEF(name, (INT, INT, PTR, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, \ + (p1 *) ONYX_PTR(params->data[2].of.i32), \ + (p2 *) ONYX_PTR(params->data[3].of.i32)); \ + return NULL; \ + } + +#define ONYX_GL_INT_2_PTR_3(name, p1, p2, p3) \ + ONYX_DEF(name, (INT, INT, PTR, PTR, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, \ + (p1 *) ONYX_PTR(params->data[2].of.i32), \ + (p2 *) ONYX_PTR(params->data[3].of.i32), \ + (p3 *) ONYX_PTR(params->data[4].of.i32)); \ + return NULL; \ + } + +#define ONYX_GL_INT_3_PTR_2(name, p1, p2) \ + ONYX_DEF(name, (INT, INT, INT, PTR, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, \ + (p1 *) ONYX_PTR(params->data[3].of.i32), \ + (p2 *) ONYX_PTR(params->data[4].of.i32)); \ + return NULL; \ + } + +#define ONYX_GL_INT_3_PTR_4(name, p1, p2, p3, p4) \ + ONYX_DEF(name, (INT, INT, INT, PTR, PTR, PTR, PTR), ()) { \ + name (params->data[0].of.i32, params->data[1].of.i32, params->data[2].of.i32, \ + (p1 *) ONYX_PTR(params->data[3].of.i32), \ + (p2 *) ONYX_PTR(params->data[4].of.i32), \ + (p3 *) ONYX_PTR(params->data[5].of.i32), \ + (p4 *) ONYX_PTR(params->data[6].of.i32)); \ + return NULL; \ + } + +#define ONYX_GL_INT_PTR_INT_PTR_INT(name, p1, p2) \ + ONYX_DEF(name, (INT, PTR, INT, PTR, INT), ()) { \ + name (params->data[0].of.i32, \ + (p1 *) ONYX_PTR(params->data[1].of.i32), \ + params->data[2].of.i32, \ + (p2 *) ONYX_PTR(params->data[3].of.i32), \ + params->data[4].of.i32); \ + return NULL; \ + } ONYX_GL_0(glFinish) ONYX_GL_0(glFlush) @@ -181,18 +352,24 @@ ONYX_GL_INT_PTR(glGenTransformFeedbacks, GLuint) ONYX_GL_INT_PTR(glGetFragDataLocation, GLchar) ONYX_GL_INT_PTR(glVertexAttribI4iv, GLint) ONYX_GL_INT_PTR(glVertexAttribI4uiv, GLuint) +ONYX_GL_INT_PTR(glGetUniformBlockIndex, GLchar) ONYX_GL_INT_3(glDrawArrays) ONYX_GL_INT_3(glStencilFunc) ONYX_GL_INT_3(glStencilOp) ONYX_GL_INT_3(glFlushMappedBufferRange) ONYX_GL_INT_3(glBindBufferBase) ONYX_GL_INT_3(glSamplerParameteri) +ONYX_GL_INT_3(glProgramParameteri) +ONYX_GL_INT_3(glTexParameteri) ONYX_GL_INT_4(glBlendFuncSeparate) ONYX_GL_INT_4(glColorMask) ONYX_GL_INT_4(glScissor) ONYX_GL_INT_4(glStencilFuncSeparate) ONYX_GL_INT_4(glViewport) ONYX_GL_INT_4(glMapBufferRange) +ONYX_GL_INT_4(glFramebufferRenderbuffer) +ONYX_GL_INT_4(glRenderbufferStorage) +ONYX_GL_INT_4(glStencilOpSeparate) ONYX_GL_INT_2_PTR(glBindAttribLocation, GLchar) ONYX_GL_INT_2_PTR(glGetBufferParameteriv, GLint) @@ -223,215 +400,375 @@ ONYX_GL_INT_2_PTR(glSamplerParameteriv, GLint) ONYX_GL_INT_2_PTR(glSamplerParameterfv, GLfloat) ONYX_GL_INT_2_PTR(glGetSamplerParameteriv, GLint) ONYX_GL_INT_2_PTR(glGetSamplerParameterfv, GLfloat) +ONYX_GL_INT_2_PTR(glGetIntegeri_v, GLint) +ONYX_GL_INT_2_PTR(glGetVertexAttribIiv, GLint) +ONYX_GL_INT_2_PTR(glGetVertexAttribIuiv, GLuint) +ONYX_GL_INT_2_PTR(glGetUniformuiv, GLuint) +ONYX_GL_INT_2_PTR(glUniform1uiv, GLuint) +ONYX_GL_INT_2_PTR(glUniform2uiv, GLuint) +ONYX_GL_INT_2_PTR(glUniform3uiv, GLuint) +ONYX_GL_INT_2_PTR(glUniform4uiv, GLuint) +ONYX_GL_INT_2_PTR(glClearBufferiv, GLint) +ONYX_GL_INT_2_PTR(glClearBufferuiv, GLuint) +ONYX_GL_INT_2_PTR(glClearBufferfv, GLfloat) +ONYX_GL_INT_2_PTR(glInvalidateFramebuffer, GLenum) +ONYX_GL_INT_3_PTR(glBufferSubData, void) +ONYX_GL_INT_3_PTR(glDrawElements, void) +ONYX_GL_INT_3_PTR(glGetFramebufferAttachmentParameteriv, GLint) +ONYX_GL_INT_2_FLOAT(glSamplerParameterf) +ONYX_GL_INT_2_FLOAT(glTexParameterf) + +ONYX_GL_INT_2_PTR_INT(glBufferData, void) +ONYX_GL_INT_7_PTR(glCompressedTexImage2D, void) +ONYX_GL_INT_8_PTR(glCompressedTexSubImage2D, void) +ONYX_GL_INT_8(glCopyTexImage2D) +ONYX_GL_INT_8(glCopyTexSubImage2D) +ONYX_GL_INT_5(glFramebufferTexture2D) +ONYX_GL_INT_3_PTR_4(glGetActiveAttrib, GLsizei, GLint, GLenum, GLchar) +ONYX_GL_INT_3_PTR_4(glGetActiveUniform, GLsizei, GLint, GLenum, GLchar) +ONYX_GL_INT_2_PTR_2(glGetAttachedShaders, GLsizei, GLuint) +ONYX_GL_INT_2_PTR_2(glGetProgramInfoLog, GLsizei, GLchar) +ONYX_GL_INT_2_PTR_2(glGetShaderInfoLog, GLsizei, GLchar) +ONYX_GL_INT_2_PTR_2(glGetShaderPrecisionFormat, GLint, GLint) +ONYX_GL_INT_2_PTR_2(glGetShaderSource, GLsizei, GLchar) +ONYX_GL_INT_6_PTR(glReadPixels, void) +ONYX_GL_FLOAT_INT(glSampleCoverage) +ONYX_GL_INT_PTR_INT_PTR_INT(glShaderBinary, GLuint, void) +ONYX_GL_INT_8_PTR(glTexImage2D, void) +ONYX_GL_INT_8_PTR(glTexSubImage2D, void) +ONYX_GL_INT_6(glVertexAttribPointer) +ONYX_GL_INT_FLOAT(glUniform1f) +ONYX_GL_INT_2(glUniform1i) +ONYX_GL_INT_FLOAT_2(glUniform2f) +ONYX_GL_INT_3(glUniform2i) +ONYX_GL_INT_FLOAT_3(glUniform3f) +ONYX_GL_INT_4(glUniform3i) +ONYX_GL_INT_FLOAT_4(glUniform4f) +ONYX_GL_INT_5(glUniform4i) +ONYX_GL_INT_2(glUniform1ui) +ONYX_GL_INT_3(glUniform2ui) +ONYX_GL_INT_4(glUniform3ui) +ONYX_GL_INT_5(glUniform4ui) +ONYX_GL_INT_3_PTR(glUniformMatrix2fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix3fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix4fv, GLfloat) +ONYX_GL_INT_FLOAT(glVertexAttrib1f) +ONYX_GL_INT_FLOAT_2(glVertexAttrib2f) +ONYX_GL_INT_FLOAT_3(glVertexAttrib3f) +ONYX_GL_INT_FLOAT_4(glVertexAttrib4f) +ONYX_GL_INT_3_PTR(glUniformMatrix2x3fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix3x2fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix2x4fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix4x2fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix3x4fv, GLfloat) +ONYX_GL_INT_3_PTR(glUniformMatrix4x3fv, GLfloat) + + +// Open3: GLES +ONYX_GL_INT_6(glDrawRangeElements) +ONYX_GL_INT_9_PTR(glTexImage3D, void) +ONYX_GL_INT_10_PTR(glTexSubImage3D, void) +ONYX_GL_INT_9(glCopyTexSubImage3D) +ONYX_GL_INT_8_PTR(glCompressedTexImage3D, void) +ONYX_GL_INT_10_PTR(glCompressedTexSubImage3D, void) +ONYX_GL_INT_10(glBlitFramebuffer) +ONYX_GL_INT_5(glRenderbufferStorageMultisample) +ONYX_GL_INT_5(glFramebufferTextureLayer) +ONYX_GL_INT_5(glBindBufferRange) +ONYX_GL_INT_3_PTR_4(glGetTransformFeedbackVarying, GLsizei, GLsizei, GLenum, GLchar) +ONYX_GL_INT_5(glVertexAttribIPointer) +ONYX_GL_INT_5(glVertexAttribI4i) +ONYX_GL_INT_5(glVertexAttribI4ui) +// ONYX_GL_INT_2_FLOAT_INT(glClearBufferfi) +ONYX_GL_INT_5(glCopyBufferSubData) +// ONYX_GL_INT_2_PTR_INT_PTR(glGetActiveUniformsiv, GLuint, GLint) +ONYX_GL_INT_3_PTR(glGetActiveUniformBlockiv, GLint) +ONYX_GL_INT_3_PTR_2(glGetActiveUniformBlockName, GLsizei, GLchar) +ONYX_GL_INT_3(glUniformBlockBinding) +ONYX_GL_INT_4(glDrawArraysInstanced) +ONYX_GL_INT_5(glDrawElementsInstanced) +ONYX_GL_INT_2_PTR_3(glGetProgramBinary, GLsizei, GLenum, void) +ONYX_GL_INT_2_PTR_INT(glProgramBinary, void) +// ONYX_GL_INT_2_PTR_INT_4(glInvalidateSubFramebuffer, GLenum) +ONYX_GL_INT_5(glTexStorage2D) +ONYX_GL_INT_6(glTexStorage3D) +ONYX_GL_INT_4_PTR(glGetInternalformativ, GLint) + +ONYX_DEF(glShaderSource, (INT, INT, PTR, PTR), ()) { + GLsizei count = params->data[1].of.i32; + int base_ptr = *(int *) ONYX_PTR(params->data[2].of.i32); + char** strs = alloca(count * sizeof(char *)); + for (int i=0; i void --- + glShaderSource(params->data[0].of.i32, count, strs, (GLint *) ONYX_PTR(params->data[3].of.i32)); + return NULL; +} // glGetBufferPointerv :: (target: GLenum, pname: GLenum, params: ^rawptr) -> void --- // glGetVertexAttribPointerv :: (index: GLuint, pname: GLenum, pointer: ^rawptr) -> void --- +// glTransformFeedbackVaryings :: (program: GLuint, count: GLsizei, varyings: ^^GLchar, bufferMode: GLenum) -> void --- +// glGetUniformIndices :: (program: GLuint, uniformCount: GLsizei, uniformNames: ^^GLchar, uniformIndices: ^GLuint) -> void --- + +// Hmm... +// glClientWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum --- +// glWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> void --- +// glGetSynciv :: (sync: GLsync, pname: GLenum, bufSize: GLsizei, length: ^GLsizei, values: ^GLint) -> void --- +// ONYX_GL_INT_RET_LONG(glGetString) +// ONYX_GL_INT_2_RET_LONG(glGetStringi) -// glBufferData :: (target: GLenum, size: GLsizeiptr, data: rawptr, usage: GLenum) -> void --- -// glBufferSubData :: (target: GLenum, offset: GLintptr, size: GLsizeiptr, data: rawptr) -> void --- -// glCompressedTexImage2D :: (target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, data: rawptr) -> void --- -// glCompressedTexSubImage2D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, data: rawptr) -> void --- -// glCopyTexImage2D :: (target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint) -> void --- -// glCopyTexSubImage2D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> void --- -// glDrawElements :: (mode: GLenum, count: GLsizei, type: GLenum, indices: rawptr) -> void --- -// glFramebufferRenderbuffer :: (target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: GLuint) -> void --- -// glFramebufferTexture2D :: (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint) -> void --- -// glGetActiveAttrib :: (program: GLuint, index: GLuint, bufSize: GLsizei, length: ^GLsizei, size: ^GLint, type: ^GLenum, name: ^GLchar) -> void --- -// glGetActiveUniform :: (program: GLuint, index: GLuint, bufSize: GLsizei, length: ^GLsizei, size: ^GLint, type: ^GLenum, name: ^GLchar) -> void --- -// glGetAttachedShaders :: (program: GLuint, maxCount: GLsizei, count: ^GLsizei, shaders: ^GLuint) -> void --- -// glGetFramebufferAttachmentParameteriv :: (target: GLenum, attachment: GLenum, pname: GLenum, params: ^GLint) -> void --- -// glGetProgramInfoLog :: (program: GLuint, bufSize: GLsizei, length: ^GLsizei, infoLog: ^GLchar) -> void --- -// glGetShaderInfoLog :: (shader: GLuint, bufSize: GLsizei, length: ^GLsizei, infoLog: ^GLchar) -> void --- -// glGetShaderPrecisionFormat :: (shadertype: GLenum, precisiontype: GLenum, range: ^GLint, precision: ^GLint) -> void --- -// glGetShaderSource :: (shader: GLuint, bufSize: GLsizei, length: ^GLsizei, source: ^GLchar) -> void --- -// glGetString :: (name: GLenum) -> ^GLubyte --- -// glReadPixels :: (x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: rawptr) -> void --- -// glRenderbufferStorage :: (target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) -> void --- -// glSampleCoverage :: (value: GLfloat, invert: GLboolean) -> void --- -// glShaderBinary :: (count: GLsizei, shaders: ^GLuint, binaryformat: GLenum, binary: rawptr, length: GLsizei) -> void --- -// glShaderSource :: (shader: GLuint, count: GLsizei, conststring: ^^GLchar, length: ^GLint) -> void --- -// glStencilOpSeparate :: (face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum) -> void --- -// glTexImage2D :: (target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: rawptr) -> void --- -// glTexParameterf :: (target: GLenum, pname: GLenum, param: GLfloat) -> void --- -// glTexParameteri :: (target: GLenum, pname: GLenum, param: GLint) -> void --- -// glTexSubImage2D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: rawptr) -> void --- -// glUniform1f :: (location: GLint, v0: GLfloat) -> void --- -// glUniform1i :: (location: GLint, v0: GLint) -> void --- -// glUniform2f :: (location: GLint, v0: GLfloat, v1: GLfloat) -> void --- -// glUniform2i :: (location: GLint, v0: GLint, v1: GLint) -> void --- -// glUniform3f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) -> void --- -// glUniform3i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint) -> void --- -// glUniform4f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) -> void --- -// glUniform4i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) -> void --- -// glUniformMatrix2fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix3fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix4fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glVertexAttrib1f :: (index: GLuint, x: GLfloat) -> void --- -// glVertexAttrib2f :: (index: GLuint, x: GLfloat, y: GLfloat) -> void --- -// glVertexAttrib3f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) -> void --- -// glVertexAttrib4f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) -> void --- -// glVertexAttribPointer :: (index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, pointer: rawptr) -> void --- - -// glGetIntegeri_v :: (target: GLenum, index: GLuint, data: ^GLint) -> void --- -// glGetVertexAttribIiv :: (index: GLuint, pname: GLenum, params: ^GLint) -> void --- -// glGetVertexAttribIuiv :: (index: GLuint, pname: GLenum, params: ^GLuint) -> void --- -// glGetUniformuiv :: (program: GLuint, location: GLint, params: ^GLuint) -> void --- -// glUniform1uiv :: (location: GLint, count: GLsizei, value: ^GLuint) -> void --- -// glUniform2uiv :: (location: GLint, count: GLsizei, value: ^GLuint) -> void --- -// glUniform3uiv :: (location: GLint, count: GLsizei, value: ^GLuint) -> void --- -// glUniform4uiv :: (location: GLint, count: GLsizei, value: ^GLuint) -> void --- -// glClearBufferiv :: (buffer: GLenum, drawbuffer: GLint, value: ^GLint) -> void --- -// glClearBufferuiv :: (buffer: GLenum, drawbuffer: GLint, value: ^GLuint) -> void --- -// glClearBufferfv :: (buffer: GLenum, drawbuffer: GLint, value: ^GLfloat) -> void --- -// Open3: GLES -// glDrawRangeElements :: (mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, indices: rawptr) -> void --- -// glTexImage3D :: (target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: rawptr) -> void --- -// glTexSubImage3D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pixels: rawptr) -> void --- -// glCopyTexSubImage3D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> void --- -// glCompressedTexImage3D :: (target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, data: rawptr) -> void --- -// glCompressedTexSubImage3D :: (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, data: rawptr) -> void --- -// glUniformMatrix2x3fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix3x2fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix2x4fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix4x2fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix3x4fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glUniformMatrix4x3fv :: (location: GLint, count: GLsizei, transpose: GLboolean, value: ^GLfloat) -> void --- -// glBlitFramebuffer :: (srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) -> void --- -// glRenderbufferStorageMultisample :: (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) -> void --- -// glFramebufferTextureLayer :: (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, layer: GLint) -> void --- -// glBindBufferRange :: (target: GLenum, index: GLuint, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) -> void --- -// glTransformFeedbackVaryings :: (program: GLuint, count: GLsizei, varyings: ^^GLchar, bufferMode: GLenum) -> void --- -// glGetTransformFeedbackVarying :: (program: GLuint, index: GLuint, bufSize: GLsizei, length: ^GLsizei, size: ^GLsizei, type: ^GLenum, name: ^GLchar) -> void --- -// glVertexAttribIPointer :: (index: GLuint, size: GLint, type: GLenum, stride: GLsizei, pointer: rawptr) -> void --- -// glVertexAttribI4i :: (index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) -> void --- -// glVertexAttribI4ui :: (index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) -> void --- -// glUniform1ui :: (location: GLint, v0: GLuint) -> void --- -// glUniform2ui :: (location: GLint, v0: GLuint, v1: GLuint) -> void --- -// glUniform3ui :: (location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) -> void --- -// glUniform4ui :: (location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) -> void --- -// glClearBufferfi :: (buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) -> void --- -// glGetStringi :: (name: GLenum, index: GLuint) -> ^GLubyte --- -// glCopyBufferSubData :: (readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) -> void --- -// glGetUniformIndices :: (program: GLuint, uniformCount: GLsizei, uniformNames: ^^GLchar, uniformIndices: ^GLuint) -> void --- -// glGetActiveUniformsiv :: (program: GLuint, uniformCount: GLsizei, uniformIndices: ^GLuint, pname: GLenum, params: ^GLint) -> void --- -// glGetUniformBlockIndex :: (program: GLuint, uniformBlockName: ^GLchar) -> GLuint --- -// glGetActiveUniformBlockiv :: (program: GLuint, uniformBlockIndex: GLuint, pname: GLenum, params: ^GLint) -> void --- -// glGetActiveUniformBlockName :: (program: GLuint, uniformBlockIndex: GLuint, bufSize: GLsizei, length: ^GLsizei, uniformBlockName: ^GLchar) -> void --- -// glUniformBlockBinding :: (program: GLuint, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) -> void --- -// glDrawArraysInstanced :: (mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei) -> void --- -// glDrawElementsInstanced :: (mode: GLenum, count: GLsizei, type: GLenum, indices: rawptr, instancecount: GLsizei) -> void --- -// glClientWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum --- -// glWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> void --- -// glGetSynciv :: (sync: GLsync, pname: GLenum, bufSize: GLsizei, length: ^GLsizei, values: ^GLint) -> void --- -// glGetProgramBinary :: (program: GLuint, bufSize: GLsizei, length: ^GLsizei, binaryFormat: ^GLenum, binary: rawptr) -> void --- -// glProgramBinary :: (program: GLuint, binaryFormat: GLenum, binary: rawptr, length: GLsizei) -> void --- -// glProgramParameteri :: (program: GLuint, pname: GLenum, value: GLint) -> void --- -// glInvalidateFramebuffer :: (target: GLenum, numAttachments: GLsizei, attachments: ^GLenum) -> void --- -// glInvalidateSubFramebuffer :: (target: GLenum, numAttachments: GLsizei, attachments: ^GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> void --- -// glTexStorage2D :: (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) -> void --- -// glTexStorage3D :: (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) -> void --- -// glGetInternalformativ :: (target: GLenum, internalformat: GLenum, pname: GLenum, bufSize: GLsizei, params: ^GLint) -> void --- ONYX_LIBRARY { - ONYX_FUNC(glClearColor) - ONYX_FUNC(glFinish) - ONYX_FUNC(glFlush) - ONYX_FUNC(glReleaseShaderCompiler) - ONYX_FUNC(glEndTransformFeedback) - ONYX_FUNC(glPauseTransformFeedback) - ONYX_FUNC(glResumeTransformFeedback) ONYX_FUNC(glActiveTexture) - ONYX_FUNC(glClear) - ONYX_FUNC(glEnable) - ONYX_FUNC(glDisable) - ONYX_FUNC(glBlendEquation) - ONYX_FUNC(glClearStencil) - ONYX_FUNC(glCompileShader) - ONYX_FUNC(glCullFace) - ONYX_FUNC(glDeleteProgram) - ONYX_FUNC(glDeleteShader) - ONYX_FUNC(glDepthFunc) - ONYX_FUNC(glDepthMask) - ONYX_FUNC(glDisableVertexAttribArray) - ONYX_FUNC(glEnableVertexAttribArray) - ONYX_FUNC(glFrontFace) - ONYX_FUNC(glGenerateMipmap) - ONYX_FUNC(glLineWidth) - ONYX_FUNC(glLinkProgram) - ONYX_FUNC(glStencilMask) - ONYX_FUNC(glUseProgram) - ONYX_FUNC(glValidateProgram) - ONYX_FUNC(glReadBuffer) - ONYX_FUNC(glEndQuery) - ONYX_FUNC(glBindVertexArray) - ONYX_FUNC(glBeginTransformFeedback) ONYX_FUNC(glAttachShader) + ONYX_FUNC(glBindAttribLocation) ONYX_FUNC(glBindBuffer) ONYX_FUNC(glBindFramebuffer) ONYX_FUNC(glBindRenderbuffer) ONYX_FUNC(glBindTexture) - ONYX_FUNC(glCreateProgram) - ONYX_FUNC(glGetError) + ONYX_FUNC(glBlendColor) + ONYX_FUNC(glBlendEquation) ONYX_FUNC(glBlendEquationSeparate) ONYX_FUNC(glBlendFunc) - ONYX_FUNC(glDetachShader) - ONYX_FUNC(glHint) - ONYX_FUNC(glPixelStorei) - ONYX_FUNC(glStencilMaskSeparate) - ONYX_FUNC(glBeginQuery) - ONYX_FUNC(glBindSampler) - ONYX_FUNC(glVertexAttribDivisor) - ONYX_FUNC(glBindTransformFeedback) + ONYX_FUNC(glBlendFuncSeparate) + ONYX_FUNC(glBufferData) + ONYX_FUNC(glBufferSubData) ONYX_FUNC(glCheckFramebufferStatus) - ONYX_FUNC(glCreateShader) - ONYX_FUNC(glIsBuffer) - ONYX_FUNC(glIsEnabled) - ONYX_FUNC(glIsFramebuffer) - ONYX_FUNC(glIsProgram ) - ONYX_FUNC(glIsRenderbuffer) - ONYX_FUNC(glIsShader) - ONYX_FUNC(glIsTexture) - ONYX_FUNC(glIsQuery) - ONYX_FUNC(glUnmapBuffer) - ONYX_FUNC(glIsVertexArray) - ONYX_FUNC(glIsTransformFeedback) - ONYX_FUNC(glIsSampler) - // ONYX_FUNC(glFenceSync) - ONYX_FUNC(glClearDepthf) - ONYX_FUNC(glDepthRangef) - ONYX_FUNC(glPolygonOffset) + ONYX_FUNC(glClear) ONYX_FUNC(glClearColor) - ONYX_FUNC(glBlendColor) - + ONYX_FUNC(glClearDepthf) + ONYX_FUNC(glClearStencil) + ONYX_FUNC(glColorMask) + ONYX_FUNC(glCompileShader) + ONYX_FUNC(glCompressedTexImage2D) + ONYX_FUNC(glCompressedTexSubImage2D) + ONYX_FUNC(glCopyTexImage2D) + ONYX_FUNC(glCopyTexSubImage2D) + ONYX_FUNC(glCreateProgram) + ONYX_FUNC(glCreateShader) + ONYX_FUNC(glCullFace) ONYX_FUNC(glDeleteBuffers) ONYX_FUNC(glDeleteFramebuffers) + ONYX_FUNC(glDeleteProgram) ONYX_FUNC(glDeleteRenderbuffers) + ONYX_FUNC(glDeleteShader) ONYX_FUNC(glDeleteTextures) + ONYX_FUNC(glDepthFunc) + ONYX_FUNC(glDepthMask) + ONYX_FUNC(glDepthRangef) + ONYX_FUNC(glDetachShader) + ONYX_FUNC(glDisable) + ONYX_FUNC(glDisableVertexAttribArray) + ONYX_FUNC(glDrawArrays) + ONYX_FUNC(glDrawElements) + ONYX_FUNC(glEnable) + ONYX_FUNC(glEnableVertexAttribArray) + ONYX_FUNC(glFinish) + ONYX_FUNC(glFlush) + ONYX_FUNC(glFramebufferRenderbuffer) + ONYX_FUNC(glFramebufferTexture2D) + ONYX_FUNC(glFrontFace) ONYX_FUNC(glGenBuffers) + ONYX_FUNC(glGenerateMipmap) ONYX_FUNC(glGenFramebuffers) ONYX_FUNC(glGenRenderbuffers) ONYX_FUNC(glGenTextures) + ONYX_FUNC(glGetActiveAttrib) + ONYX_FUNC(glGetActiveUniform) + ONYX_FUNC(glGetAttachedShaders) ONYX_FUNC(glGetAttribLocation) ONYX_FUNC(glGetBooleanv) + ONYX_FUNC(glGetBufferParameteriv) + ONYX_FUNC(glGetError) ONYX_FUNC(glGetFloatv) + ONYX_FUNC(glGetFramebufferAttachmentParameteriv) ONYX_FUNC(glGetIntegerv) + ONYX_FUNC(glGetProgramiv) + ONYX_FUNC(glGetProgramInfoLog) + ONYX_FUNC(glGetRenderbufferParameteriv) + ONYX_FUNC(glGetShaderiv) + ONYX_FUNC(glGetShaderInfoLog) + ONYX_FUNC(glGetShaderPrecisionFormat) + ONYX_FUNC(glGetShaderSource) + // ONYX_FUNC(glGetString) + ONYX_FUNC(glGetTexParameterfv) + ONYX_FUNC(glGetTexParameteriv) + ONYX_FUNC(glGetUniformfv) + ONYX_FUNC(glGetUniformiv) ONYX_FUNC(glGetUniformLocation) + ONYX_FUNC(glGetVertexAttribfv) + ONYX_FUNC(glGetVertexAttribiv) + // ONYX_FUNC(glGetVertexAttribPointerv) + ONYX_FUNC(glHint) + ONYX_FUNC(glIsBuffer) + ONYX_FUNC(glIsEnabled) + ONYX_FUNC(glIsFramebuffer) + ONYX_FUNC(glIsProgram) + ONYX_FUNC(glIsRenderbuffer) + ONYX_FUNC(glIsShader) + ONYX_FUNC(glIsTexture) + ONYX_FUNC(glLineWidth) + ONYX_FUNC(glLinkProgram) + ONYX_FUNC(glPixelStorei) + ONYX_FUNC(glPolygonOffset) + ONYX_FUNC(glReadPixels) + ONYX_FUNC(glReleaseShaderCompiler) + ONYX_FUNC(glRenderbufferStorage) + ONYX_FUNC(glSampleCoverage) + ONYX_FUNC(glScissor) + ONYX_FUNC(glShaderBinary) + ONYX_FUNC(glShaderSource) + ONYX_FUNC(glStencilFunc) + ONYX_FUNC(glStencilFuncSeparate) + ONYX_FUNC(glStencilMask) + ONYX_FUNC(glStencilMaskSeparate) + ONYX_FUNC(glStencilOp) + ONYX_FUNC(glStencilOpSeparate) + ONYX_FUNC(glTexImage2D) + ONYX_FUNC(glTexParameterf) + ONYX_FUNC(glTexParameterfv) + ONYX_FUNC(glTexParameteri) + ONYX_FUNC(glTexParameteriv) + ONYX_FUNC(glTexSubImage2D) + ONYX_FUNC(glUniform1f) + ONYX_FUNC(glUniform1fv) + ONYX_FUNC(glUniform1i) + ONYX_FUNC(glUniform1iv) + ONYX_FUNC(glUniform2f) + ONYX_FUNC(glUniform2fv) + ONYX_FUNC(glUniform2i) + ONYX_FUNC(glUniform2iv) + ONYX_FUNC(glUniform3f) + ONYX_FUNC(glUniform3fv) + ONYX_FUNC(glUniform3i) + ONYX_FUNC(glUniform3iv) + ONYX_FUNC(glUniform4f) + ONYX_FUNC(glUniform4fv) + ONYX_FUNC(glUniform4i) + ONYX_FUNC(glUniform4iv) + ONYX_FUNC(glUniformMatrix2fv) + ONYX_FUNC(glUniformMatrix3fv) + ONYX_FUNC(glUniformMatrix4fv) + ONYX_FUNC(glUseProgram) + ONYX_FUNC(glValidateProgram) + ONYX_FUNC(glVertexAttrib1f) ONYX_FUNC(glVertexAttrib1fv) + ONYX_FUNC(glVertexAttrib2f) ONYX_FUNC(glVertexAttrib2fv) + ONYX_FUNC(glVertexAttrib3f) ONYX_FUNC(glVertexAttrib3fv) + ONYX_FUNC(glVertexAttrib4f) ONYX_FUNC(glVertexAttrib4fv) + ONYX_FUNC(glVertexAttribPointer) + ONYX_FUNC(glViewport) + + + // Open3: GLES + ONYX_FUNC(glReadBuffer) + ONYX_FUNC(glDrawRangeElements) + ONYX_FUNC(glTexImage3D) + ONYX_FUNC(glTexSubImage3D) + ONYX_FUNC(glCopyTexSubImage3D) + ONYX_FUNC(glCompressedTexImage3D) + ONYX_FUNC(glCompressedTexSubImage3D) ONYX_FUNC(glGenQueries) ONYX_FUNC(glDeleteQueries) + ONYX_FUNC(glIsQuery) + ONYX_FUNC(glBeginQuery) + ONYX_FUNC(glEndQuery) + ONYX_FUNC(glGetQueryiv) + ONYX_FUNC(glGetQueryObjectuiv) + ONYX_FUNC(glUnmapBuffer) + // ONYX_FUNC(glGetBufferPointerv) ONYX_FUNC(glDrawBuffers) + ONYX_FUNC(glUniformMatrix2x3fv) + ONYX_FUNC(glUniformMatrix3x2fv) + ONYX_FUNC(glUniformMatrix2x4fv) + ONYX_FUNC(glUniformMatrix4x2fv) + ONYX_FUNC(glUniformMatrix3x4fv) + ONYX_FUNC(glUniformMatrix4x3fv) + ONYX_FUNC(glBlitFramebuffer) + ONYX_FUNC(glRenderbufferStorageMultisample) + ONYX_FUNC(glFramebufferTextureLayer) + ONYX_FUNC(glMapBufferRange) + ONYX_FUNC(glFlushMappedBufferRange) + ONYX_FUNC(glBindVertexArray) ONYX_FUNC(glDeleteVertexArrays) ONYX_FUNC(glGenVertexArrays) - ONYX_FUNC(glGenSamplers) + ONYX_FUNC(glIsVertexArray) + ONYX_FUNC(glGetIntegeri_v) + ONYX_FUNC(glBeginTransformFeedback) + ONYX_FUNC(glEndTransformFeedback) + ONYX_FUNC(glBindBufferRange) + ONYX_FUNC(glBindBufferBase) + // ONYX_FUNC(glTransformFeedbackVaryings) + ONYX_FUNC(glGetTransformFeedbackVarying) + ONYX_FUNC(glVertexAttribIPointer) + ONYX_FUNC(glGetVertexAttribIiv) + ONYX_FUNC(glGetVertexAttribIuiv) + ONYX_FUNC(glVertexAttribI4i) + ONYX_FUNC(glVertexAttribI4ui) + ONYX_FUNC(glVertexAttribI4iv) + ONYX_FUNC(glVertexAttribI4uiv) + ONYX_FUNC(glGetUniformuiv) + ONYX_FUNC(glGetFragDataLocation) + ONYX_FUNC(glUniform1ui) + ONYX_FUNC(glUniform2ui) + ONYX_FUNC(glUniform3ui) + ONYX_FUNC(glUniform4ui) + ONYX_FUNC(glUniform1uiv) + ONYX_FUNC(glUniform2uiv) + ONYX_FUNC(glUniform3uiv) + ONYX_FUNC(glUniform4uiv) + ONYX_FUNC(glClearBufferiv) + ONYX_FUNC(glClearBufferuiv) + ONYX_FUNC(glClearBufferfv) + // ONYX_FUNC(glClearBufferfi) + // ONYX_FUNC(glGetStringi) + ONYX_FUNC(glCopyBufferSubData) + // ONYX_FUNC(glGetUniformIndices) + // ONYX_FUNC(glGetActiveUniformsiv) + ONYX_FUNC(glGetUniformBlockIndex) + ONYX_FUNC(glGetActiveUniformBlockiv) + ONYX_FUNC(glGetActiveUniformBlockName) + ONYX_FUNC(glUniformBlockBinding) + ONYX_FUNC(glDrawArraysInstanced) + ONYX_FUNC(glDrawElementsInstanced) + //ONYX_FUNC(glFenceSync) + //ONYX_FUNC(glIsSync) + //ONYX_FUNC(glDeleteSync) + //ONYX_FUNC(glClientWaitSync) + //ONYX_FUNC(glWaitSync) ONYX_FUNC(glGetInteger64v) + // ONYX_FUNC(glGetSynciv) + ONYX_FUNC(glGetInteger64i_v) + ONYX_FUNC(glGetBufferParameteri64v) + ONYX_FUNC(glGenSamplers) ONYX_FUNC(glDeleteSamplers) + ONYX_FUNC(glIsSampler) + ONYX_FUNC(glBindSampler) + ONYX_FUNC(glSamplerParameteri) + ONYX_FUNC(glSamplerParameteriv) + ONYX_FUNC(glSamplerParameterf) + ONYX_FUNC(glSamplerParameterfv) + ONYX_FUNC(glGetSamplerParameteriv) + ONYX_FUNC(glGetSamplerParameterfv) + ONYX_FUNC(glVertexAttribDivisor) + ONYX_FUNC(glBindTransformFeedback) ONYX_FUNC(glDeleteTransformFeedbacks) ONYX_FUNC(glGenTransformFeedbacks) + ONYX_FUNC(glIsTransformFeedback) + ONYX_FUNC(glPauseTransformFeedback) + ONYX_FUNC(glResumeTransformFeedback) + ONYX_FUNC(glGetProgramBinary) + ONYX_FUNC(glProgramBinary) + ONYX_FUNC(glProgramParameteri) + ONYX_FUNC(glInvalidateFramebuffer) + // ONYX_FUNC(glInvalidateSubFramebuffer) + ONYX_FUNC(glTexStorage2D) + ONYX_FUNC(glTexStorage3D) + ONYX_FUNC(glGetInternalformativ) NULL }; diff --git a/modules/opengles/onyx_opengles.so b/modules/opengles/onyx_opengles.so index f0829791..5253b1f7 100755 Binary files a/modules/opengles/onyx_opengles.so and b/modules/opengles/onyx_opengles.so differ diff --git a/src/wasm_runtime.c b/src/wasm_runtime.c index fd72a057..9a4513a2 100644 --- a/src/wasm_runtime.c +++ b/src/wasm_runtime.c @@ -538,7 +538,7 @@ static void onyx_load_library(char *name) { static void onyx_lookup_and_load_custom_libraries(bh_buffer wasm_bytes) { i32 cursor = 8; // skip the magic number and version - while (1) { + while (cursor < wasm_bytes.length) { u64 section_number = uleb128_to_uint(wasm_bytes.data, &cursor); u64 section_size = uleb128_to_uint(wasm_bytes.data, &cursor); diff --git a/test_library.so b/test_library.so deleted file mode 100755 index cba999b4..00000000 Binary files a/test_library.so and /dev/null differ