From: Brendan Hansen Date: Wed, 9 Mar 2022 02:56:36 +0000 (-0600) Subject: updated opengles library to use cptr X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=7d8250de03a0e7a4e6ce6f46a044f336bb8ef927;p=onyx.git updated opengles library to use cptr --- diff --git a/modules/opengles/module.onyx b/modules/opengles/module.onyx index 5abeb749..95b29a70 100644 --- a/modules/opengles/module.onyx +++ b/modules/opengles/module.onyx @@ -1,5 +1,7 @@ package opengles +use package core { cptr } + #library "onyx_opengles" GLGetProcAddress :: #distinct i64 // (name: cstr) -> ^void @@ -108,7 +110,7 @@ GLGetProcAddress :: #distinct i64 // (name: cstr) -> ^void glSampleCoverage :: (value: GLfloat, invert: GLboolean) -> void --- glScissor :: (x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> void --- glShaderBinary :: (count: GLsizei, shaders: ^GLuint, binaryformat: GLenum, binary: rawptr, length: GLsizei) -> void --- - glShaderSource :: (shader: GLuint, count: GLsizei, string: ^^GLchar, length: ^GLint) -> void --- + glShaderSource :: (shader: GLuint, count: GLsizei, string: ^cptr(GLchar), length: ^GLint) -> void --- glStencilFunc :: (func: GLenum, ref: GLint, mask: GLuint) -> void --- glStencilFuncSeparate :: (face: GLenum, func: GLenum, ref: GLint, mask: GLuint) -> void --- glStencilMask :: (mask: GLuint) -> void --- @@ -217,7 +219,7 @@ GLGetProcAddress :: #distinct i64 // (name: cstr) -> ^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 --- + glGetUniformIndices :: (program: GLuint, uniformCount: GLsizei, uniformNames: ^cptr(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 --- diff --git a/modules/opengles/onyx_opengles.c b/modules/opengles/onyx_opengles.c index c03b479c..d6cabd10 100644 --- a/modules/opengles/onyx_opengles.c +++ b/modules/opengles/onyx_opengles.c @@ -526,26 +526,20 @@ 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; idata[1].of.i32; + GLchar** sources = ONYX_PTR(params->data[2].of.i32); + GLint* lengths = ONYX_PTR(params->data[3].of.i32); - glad_glShaderSource(params->data[0].of.i32, count, strs, (GLint *) ONYX_PTR(params->data[3].of.i32)); + glad_glShaderSource(params->data[0].of.i32, count, sources, lengths); return NULL; } ONYX_DEF(glGetUniformIndices, (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; idata[1].of.i32; + GLchar** names = ONYX_PTR(params->data[2].of.i32); + GLint* lengths = ONYX_PTR(params->data[3].of.i32); - glad_glGetUniformIndices(params->data[0].of.i32, count, (const char *const*) strs, (int *) ONYX_PTR(params->data[3].of.i32)); + glad_glGetUniformIndices(params->data[0].of.i32, count, (const char *const*) names, lengths); return NULL; } diff --git a/modules/opengles/onyx_opengles.so b/modules/opengles/onyx_opengles.so index 2b34641b..6015b67e 100755 Binary files a/modules/opengles/onyx_opengles.so and b/modules/opengles/onyx_opengles.so differ