From: Brendan Hansen Date: Mon, 6 Dec 2021 02:13:16 +0000 (-0600) Subject: making headway on opengles and glfw libraries X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=4fd63366b7dc35c5fdcfbb118a5fe983cae1951a;p=onyx.git making headway on opengles and glfw libraries --- diff --git a/modules/glfw3/module.onyx b/modules/glfw3/module.onyx index efc7ade9..c2e13f8c 100644 --- a/modules/glfw3/module.onyx +++ b/modules/glfw3/module.onyx @@ -12,26 +12,50 @@ GLFWimage :: struct #size 16 { pixels: ^u8; } -glfwInit :: () -> bool #foreign "onyx_glfw3" "glfwInit" --- -glfwTerminate :: () -> void #foreign "onyx_glfw3" "glfwTerminate" --- -glfwGetVersion :: (major, minor, rev: ^i32) -> void #foreign "onyx_glfw3" "glfwGetVersion" --- -// glfwSetErrorCallback :: (f: (i32, cstr) -> void) -> void #foreign "onyx_glfw3" "glfwSetErrorCallback" --- +#foreign "onyx_glfw3" { + glfwInit :: () -> bool --- + glfwTerminate :: () -> void --- + glfwGetVersion :: (major, minor, rev: ^i32) -> void --- + // glfwSetErrorCallback :: (f: (i32, cstr) -> void) -> void --- -glfwCreateWindow :: (width, height: i32, title: cstr, monitor: GLFWmonitor_p = 0, share: GLFWwindow_p = 0) -> GLFWwindow_p #foreign "onyx_glfw3" "glfwCreateWindow" --- -glfwDestroyWindow :: (window: GLFWwindow_p) -> void #foreign "onyx_glfw3" "glfwDestroyWindow" --- -glfwWindowShouldClose :: (window: GLFWwindow_p) -> bool #foreign "onyx_glfw3" "glfwWindowShouldClose" --- -glfwSetWindowShouldClose :: (window: GLFWwindow_p, value: i32) -> void #foreign "onyx_glfw3" "glfwSetWindowShouldClose" --- -glfwDefaultWindowHints :: () -> void #foreign "onyx_glfw3" "glfwDefaultWindowHints" --- -glfwWindowHint :: (hint: i32, value: i32) -> void #foreign "onyx_glfw3" "glfwWindowHint" --- -glfwSetWindowTitle :: (window: GLFWwindow_p, title: cstr) -> void #foreign "onyx_glfw3" "glfwSetWindowTitle" --- -glfwGetWindowPos :: (window: GLFWwindow_p, xpos, ypos: ^i32) -> void #foreign "onyx_glfw3" "glfwGetWindowPos" --- -glfwSetWindowPos :: (window: GLFWwindow_p, xpos, ypos: i32) -> void #foreign "onyx_glfw3" "glfwSetWindowPos" --- -// ... -glfwPollEvents :: () -> void #foreign "onyx_glfw3" "glfwPollEvents" --- -glfwWaitEvents :: () -> void #foreign "onyx_glfw3" "glfwWaitEvents" --- -glfwWaitEventsTimeout :: (timeout: f64) -> void #foreign "onyx_glfw3" "glfwWaitEventsTimeout" --- -glfwPostEmptyEvent :: () -> void #foreign "onyx_glfw3" "glfwPostEmptyEvent" --- -glfwSwapBuffers :: (window: GLFWwindow_p) -> void #foreign "onyx_glfw3" "glfwSwapBuffers" --- + glfwMakeContextCurrent :: (window: GLFWwindow_p) -> void --- + glfwGetCurrentContext :: () -> GLFWwindow_p --- + glfwSwapInterval :: (interval: i32) -> void --- + glfwExtensionSupported :: (name: cstr) -> bool --- + + glfwCreateWindow :: (width, height: i32, title: cstr, monitor: GLFWmonitor_p = 0, share: GLFWwindow_p = 0) -> GLFWwindow_p --- + glfwDestroyWindow :: (window: GLFWwindow_p) -> void --- + glfwWindowShouldClose :: (window: GLFWwindow_p) -> bool --- + glfwSetWindowShouldClose :: (window: GLFWwindow_p, value: i32) -> void --- + glfwDefaultWindowHints :: () -> void --- + glfwWindowHint :: (hint: i32, value: i32) -> void --- + glfwSetWindowTitle :: (window: GLFWwindow_p, title: cstr) -> void --- + glfwSetWindowIcon :: (window: GLFWwindow_p, count: i32, images: ^GLFWimage) -> void --- + glfwGetWindowPos :: (window: GLFWwindow_p, xpos, ypos: ^i32) -> void --- + glfwSetWindowPos :: (window: GLFWwindow_p, xpos, ypos: i32) -> void --- + glfwGetWindowSize :: (window: GLFWwindow_p, xpos, ypos: ^i32) -> void --- + glfwSetWindowSize :: (window: GLFWwindow_p, xpos, ypos: i32) -> void --- + glfwSetWindowSizeLimits :: (window: GLFWwindow_p, minwidth, minheight, maxwidth, maxheight: i32) -> void --- + glfwSetWindowAspectRatio :: (window: GLFWwindow_p, numer, denom: i32) -> void --- + glfwGetFramebufferSize :: (window: GLFWwindow_p, width, height: ^i32) -> void --- + glfwGetWindowFrameSize :: (window: GLFWwindow_p, left, top, right, bottom: ^i32) -> void --- + glfwIconifyWindow :: (window: GLFWwindow_p) -> void --- + glfwRestoreWindow :: (window: GLFWwindow_p) -> void --- + glfwMaximizeWindow :: (window: GLFWwindow_p) -> void --- + glfwShowWindow :: (window: GLFWwindow_p) -> void --- + glfwHideWindow :: (window: GLFWwindow_p) -> void --- + glfwFocusWindow :: (window: GLFWwindow_p) -> void --- + glfwGetWindowMonitor :: (window: GLFWwindow_p) -> GLFWmonitor_p --- + glfwSetWindowMonitor :: (window: GLFWwindow_p, monitor: GLFWmonitor_p, x, y, width, height, refreshRate: i32) -> void --- + glfwGetWindowAttrib :: (window: GLFWwindow_p, attrib: i32) -> i32 --- + glfwSetWindowUserPointer :: (window: GLFWwindow_p, ptr: rawptr) -> void --- + glfwGetWindowUserPointer :: (window: GLFWwindow_p) -> rawptr --- + glfwPollEvents :: () -> void --- + glfwWaitEvents :: () -> void --- + glfwWaitEventsTimeout :: (timeout: f64) -> void --- + glfwPostEmptyEvent :: () -> void --- + glfwSwapBuffers :: (window: GLFWwindow_p) -> void --- +} GLFW_FOCUSED :: 0x00020001; GLFW_ICONIFIED :: 0x00020002; diff --git a/modules/glfw3/onyx_glfw3.c b/modules/glfw3/onyx_glfw3.c index e2c785b1..11f7134c 100644 --- a/modules/glfw3/onyx_glfw3.c +++ b/modules/glfw3/onyx_glfw3.c @@ -20,6 +20,28 @@ ONYX_DEF(glfwGetVersion, (PTR, PTR, PTR), ()) { return NULL; } +ONYX_DEF(glfwMakeContextCurrent, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwMakeContextCurrent(window); + return NULL; +} + +ONYX_DEF(glfwGetCurrentContext, (), (LONG)) { + GLFWwindow *window = glfwGetCurrentContext(); + wasm_val_init_ptr(&results->data[0], window); + return NULL; +} + +ONYX_DEF(glfwSwapInterval, (INT), ()) { + glfwSwapInterval(params->data[0].of.i32); + return NULL; +} + +ONYX_DEF(glfwExtensionSupported, (PTR), (BOOL)) { + char *ext_name = ONYX_PTR(params->data[0].of.i32); + results->data[0] = WASM_I32_VAL(glfwExtensionSupported(ext_name) == GLFW_TRUE); +} + ONYX_DEF(glfwCreateWindow, (INT, INT, PTR, LONG, LONG), (LONG)) { GLFWwindow* window = glfwCreateWindow( params->data[0].of.i32, params->data[1].of.i32, @@ -77,7 +99,112 @@ ONYX_DEF(glfwSetWindowPos, (LONG, INT, INT), ()) { return NULL; } -// ... +ONYX_DEF(glfwGetWindowSize, (LONG, PTR, PTR), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwGetWindowSize(window, (int *) ONYX_PTR(params->data[1].of.i32), (int *) ONYX_PTR(params->data[2].of.i32)); + return NULL; +} + +ONYX_DEF(glfwSetWindowSize, (LONG, INT, INT), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwSetWindowSize(window, params->data[1].of.i32, params->data[2].of.i32); + return NULL; +} + +ONYX_DEF(glfwSetWindowSizeLimits, (LONG, INT, INT, INT, INT), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwSetWindowSizeLimits(window, params->data[1].of.i32, params->data[2].of.i32, + params->data[3].of.i32, params->data[4].of.i32); + return NULL; +} + +ONYX_DEF(glfwSetWindowAspectRatio, (LONG, INT, INT), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwSetWindowAspectRatio(window, params->data[1].of.i32, params->data[2].of.i32); + return NULL; +} + +ONYX_DEF(glfwGetFramebufferSize, (LONG, PTR, PTR), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwGetFramebufferSize(window, (int *) ONYX_PTR(params->data[1].of.i32), (int *) ONYX_PTR(params->data[2].of.i32)); + return NULL; +} + +ONYX_DEF(glfwGetWindowFrameSize, (LONG, PTR, PTR, PTR, PTR), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwGetWindowFrameSize(window, (int *) ONYX_PTR(params->data[1].of.i32), (int *) ONYX_PTR(params->data[2].of.i32), + (int *) ONYX_PTR(params->data[3].of.i32), (int *) ONYX_PTR(params->data[4].of.i32)); + return NULL; +} + +ONYX_DEF(glfwIconifyWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwIconifyWindow(window); + return NULL; +} + +ONYX_DEF(glfwRestoreWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwRestoreWindow(window); + return NULL; +} + +ONYX_DEF(glfwMaximizeWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwMaximizeWindow(window); + return NULL; +} + +ONYX_DEF(glfwShowWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwShowWindow(window); + return NULL; +} + +ONYX_DEF(glfwHideWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwHideWindow(window); + return NULL; +} + +ONYX_DEF(glfwFocusWindow, (LONG), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwFocusWindow(window); + return NULL; +} + +ONYX_DEF(glfwGetWindowMonitor, (LONG), (LONG)) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + GLFWmonitor *monitor = glfwGetWindowMonitor(window); + wasm_val_init_ptr(&results->data[0], monitor); + return NULL; +} + +ONYX_DEF(glfwSetWindowMonitor, (LONG, LONG, INT, INT, INT, INT, INT), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + GLFWmonitor *monitor = (GLFWmonitor *) params->data[1].of.i64; + glfwSetWindowMonitor(window, monitor, 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; +} + +ONYX_DEF(glfwGetWindowAttrib, (LONG, INT), (INT)) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + results->data[0] = WASM_I32_VAL(glfwGetWindowAttrib(window, params->data[1].of.i32)); + return NULL; +} + +ONYX_DEF(glfwSetWindowUserPointer, (LONG, INT), ()) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + glfwSetWindowUserPointer(window, (void *) (unsigned long) params->data[1].of.i32); + return NULL; +} + +ONYX_DEF(glfwGetWindowUserPointer, (LONG), (INT)) { + GLFWwindow *window = (GLFWwindow *) params->data[0].of.i64; + results->data[0] = WASM_I32_VAL((unsigned int) (unsigned long) glfwGetWindowUserPointer(window)); + return NULL; +} + ONYX_DEF(glfwPollEvents, (), ()) { glfwPollEvents(); return NULL; @@ -108,6 +235,10 @@ ONYX_LIBRARY { ONYX_FUNC(glfwInit) ONYX_FUNC(glfwTerminate) ONYX_FUNC(glfwGetVersion) + ONYX_FUNC(glfwMakeContextCurrent) + ONYX_FUNC(glfwGetCurrentContext) + ONYX_FUNC(glfwSwapInterval) + ONYX_FUNC(glfwExtensionSupported) ONYX_FUNC(glfwCreateWindow) ONYX_FUNC(glfwDestroyWindow) ONYX_FUNC(glfwWindowShouldClose) diff --git a/modules/glfw3/onyx_glfw3.so b/modules/glfw3/onyx_glfw3.so index c438dd4e..0822af7a 100755 Binary files a/modules/glfw3/onyx_glfw3.so and b/modules/glfw3/onyx_glfw3.so differ diff --git a/modules/opengles/build.sh b/modules/opengles/build.sh new file mode 100755 index 00000000..84206dd7 --- /dev/null +++ b/modules/opengles/build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +gcc -shared -fPIC modules/opengles/onyx_opengles.c -I include -I lib/linux_x86_64/include -o ./modules/opengles/onyx_opengles.so -lGL \ No newline at end of file diff --git a/modules/opengles/module.onyx b/modules/opengles/module.onyx new file mode 100644 index 00000000..d19341bb --- /dev/null +++ b/modules/opengles/module.onyx @@ -0,0 +1,900 @@ +package opengles + +#library "./modules/opengles/onyx_opengles" + +#foreign "onyx_opengles" { + glActiveTexture :: (texture: GLenum) -> void --- + glAttachShader :: (program: GLuint, shader: GLuint) -> void --- + glBindAttribLocation :: (program: GLuint, index: GLuint, name: ^GLchar) -> void --- + glBindBuffer :: (target: GLenum, buffer: GLuint) -> void --- + glBindFramebuffer :: (target: GLenum, framebuffer: GLuint) -> void --- + glBindRenderbuffer :: (target: GLenum, renderbuffer: GLuint) -> void --- + glBindTexture :: (target: GLenum, texture: GLuint) -> void --- + glBlendColor :: (red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat) -> void --- + glBlendEquation :: (mode: GLenum) -> void --- + glBlendEquationSeparate :: (modeRGB: GLenum, modeAlpha: GLenum) -> void --- + glBlendFunc :: (sfactor: GLenum, dfactor: GLenum) -> void --- + glBlendFuncSeparate :: (sfactorRGB: GLenum, dfactorRGB: GLenum, sfactorAlpha: GLenum, dfactorAlpha: GLenum) -> void --- + glBufferData :: (target: GLenum, size: GLsizeiptr, data: rawptr, usage: GLenum) -> void --- + glBufferSubData :: (target: GLenum, offset: GLintptr, size: GLsizeiptr, data: rawptr) -> void --- + glCheckFramebufferStatus :: (target: GLenum) -> GLenum --- + glClear :: (mask: GLbitfield) -> void --- + glClearColor :: (red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat) -> void --- + glClearDepthf :: (d: GLfloat) -> void --- + glClearStencil :: (s: GLint) -> void --- + glColorMask :: (red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) -> void --- + glCompileShader :: (shader: GLuint) -> 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 --- + glCreateProgram :: () -> GLuint --- + glCreateShader :: (type: GLenum) -> GLuint --- + glCullFace :: (mode: GLenum) -> void --- + glDeleteBuffers :: (n: GLsizei, buffers: ^GLuint) -> void --- + glDeleteFramebuffers :: (n: GLsizei, framebuffers: ^GLuint) -> void --- + glDeleteProgram :: (program: GLuint) -> void --- + glDeleteRenderbuffers :: (n: GLsizei, renderbuffers: ^GLuint) -> void --- + glDeleteShader :: (shader: GLuint) -> void --- + glDeleteTextures :: (n: GLsizei, textures: ^GLuint) -> void --- + glDepthFunc :: (func: GLenum) -> void --- + glDepthMask :: (flag: GLboolean) -> void --- + glDepthRangef :: (n: GLfloat, f: GLfloat) -> void --- + glDetachShader :: (program: GLuint, shader: GLuint) -> void --- + glDisable :: (cap: GLenum) -> void --- + glDisableVertexAttribArray :: (index: GLuint) -> void --- + glDrawArrays :: (mode: GLenum, first: GLint, count: GLsizei) -> void --- + glDrawElements :: (mode: GLenum, count: GLsizei, type: GLenum, indices: rawptr) -> void --- + glEnable :: (cap: GLenum) -> void --- + glEnableVertexAttribArray :: (index: GLuint) -> void --- + glFinish :: () -> void --- + glFlush :: () -> void --- + glFramebufferRenderbuffer :: (target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: GLuint) -> void --- + glFramebufferTexture2D :: (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint) -> void --- + glFrontFace :: (mode: GLenum) -> void --- + glGenBuffers :: (n: GLsizei, buffers: ^GLuint) -> void --- + glGenerateMipmap :: (target: GLenum) -> void --- + glGenFramebuffers :: (n: GLsizei, framebuffers: ^GLuint) -> void --- + glGenRenderbuffers :: (n: GLsizei, renderbuffers: ^GLuint) -> void --- + glGenTextures :: (n: GLsizei, textures: ^GLuint) -> 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 --- + glGetAttribLocation :: (program: GLuint, name: ^GLchar) -> GLint --- + glGetBooleanv :: (pname: GLenum, data: ^GLboolean) -> void --- + glGetBufferParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- + glGetError :: () -> GLenum --- + glGetFloatv :: (pname: GLenum, data: ^GLfloat) -> void --- + glGetFramebufferAttachmentParameteriv :: (target: GLenum, attachment: GLenum, pname: GLenum, params: ^GLint) -> void --- + glGetIntegerv :: (pname: GLenum, data: ^GLint) -> void --- + glGetProgramiv :: (program: GLuint, pname: GLenum, params: ^GLint) -> void --- + glGetProgramInfoLog :: (program: GLuint, bufSize: GLsizei, length: ^GLsizei, infoLog: ^GLchar) -> void --- + glGetRenderbufferParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- + glGetShaderiv :: (shader: GLuint, pname: GLenum, params: ^GLint) -> 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 --- + glGetTexParameterfv :: (target: GLenum, pname: GLenum, params: ^GLfloat) -> void --- + glGetTexParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- + glGetUniformfv :: (program: GLuint, location: GLint, params: ^GLfloat) -> void --- + glGetUniformiv :: (program: GLuint, location: GLint, params: ^GLint) -> void --- + glGetUniformLocation :: (program: GLuint, name: ^GLchar) -> GLint --- + glGetVertexAttribfv :: (index: GLuint, pname: GLenum, params: ^GLfloat) -> void --- + glGetVertexAttribiv :: (index: GLuint, pname: GLenum, params: ^GLint) -> void --- + glGetVertexAttribPointerv :: (index: GLuint, pname: GLenum, pointer: ^rawptr) -> void --- + glHint :: (target: GLenum, mode: GLenum) -> void --- + glIsBuffer :: (buffer: GLuint) -> GLboolean --- + glIsEnabled :: (cap: GLenum) -> GLboolean --- + glIsFramebuffer :: (framebuffer: GLuint) -> GLboolean --- + glIsProgram :: (program: GLuint) -> GLboolean --- + glIsRenderbuffer :: (renderbuffer: GLuint) -> GLboolean --- + glIsShader :: (shader: GLuint) -> GLboolean --- + glIsTexture :: (texture: GLuint) -> GLboolean --- + glLineWidth :: (width: GLfloat) -> void --- + glLinkProgram :: (program: GLuint) -> void --- + glPixelStorei :: (pname: GLenum, param: GLint) -> void --- + glPolygonOffset :: (factor: GLfloat, units: GLfloat) -> void --- + glReadPixels :: (x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: rawptr) -> void --- + glReleaseShaderCompiler :: () -> void --- + glRenderbufferStorage :: (target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) -> 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 --- + glStencilFunc :: (func: GLenum, ref: GLint, mask: GLuint) -> void --- + glStencilFuncSeparate :: (face: GLenum, func: GLenum, ref: GLint, mask: GLuint) -> void --- + glStencilMask :: (mask: GLuint) -> void --- + glStencilMaskSeparate :: (face: GLenum, mask: GLuint) -> void --- + glStencilOp :: (fail: GLenum, zfail: GLenum, zpass: GLenum) -> 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 --- + glTexParameterfv :: (target: GLenum, pname: GLenum, params: ^GLfloat) -> void --- + glTexParameteri :: (target: GLenum, pname: GLenum, param: GLint) -> void --- + glTexParameteriv :: (target: GLenum, pname: GLenum, params: ^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 --- + glUniform1fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- + glUniform1i :: (location: GLint, v0: GLint) -> void --- + glUniform1iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- + glUniform2f :: (location: GLint, v0: GLfloat, v1: GLfloat) -> void --- + glUniform2fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- + glUniform2i :: (location: GLint, v0: GLint, v1: GLint) -> void --- + glUniform2iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- + glUniform3f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) -> void --- + glUniform3fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- + glUniform3i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint) -> void --- + glUniform3iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- + glUniform4f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) -> void --- + glUniform4fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- + glUniform4i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) -> void --- + glUniform4iv :: (location: GLint, count: GLsizei, value: ^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 --- + glUseProgram :: (program: GLuint) -> void --- + glValidateProgram :: (program: GLuint) -> void --- + glVertexAttrib1f :: (index: GLuint, x: GLfloat) -> void --- + glVertexAttrib1fv :: (index: GLuint, v: ^GLfloat) -> void --- + glVertexAttrib2f :: (index: GLuint, x: GLfloat, y: GLfloat) -> void --- + glVertexAttrib2fv :: (index: GLuint, v: ^GLfloat) -> void --- + glVertexAttrib3f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) -> void --- + glVertexAttrib3fv :: (index: GLuint, v: ^GLfloat) -> void --- + glVertexAttrib4f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) -> void --- + glVertexAttrib4fv :: (index: GLuint, v: ^GLfloat) -> void --- + glVertexAttribPointer :: (index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, pointer: rawptr) -> void --- + glViewport :: (x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> void --- + + + // Open3: GLES + glReadBuffer :: (src: GLenum) -> void --- + 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 --- + glGenQueries :: (n: GLsizei, ids: ^GLuint) -> void --- + glDeleteQueries :: (n: GLsizei, ids: ^GLuint) -> void --- + glIsQuery :: (id: GLuint) -> GLboolean --- + glBeginQuery :: (target: GLenum, id: GLuint) -> void --- + glEndQuery :: (target: GLenum) -> void --- + glGetQueryiv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- + glGetQueryObjectuiv :: (id: GLuint, pname: GLenum, params: ^GLuint) -> void --- + glUnmapBuffer :: (target: GLenum) -> GLboolean --- + glGetBufferPointerv :: (target: GLenum, pname: GLenum, params: ^rawptr) -> void --- + glDrawBuffers :: (n: GLsizei, bufs: ^GLenum) -> 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 --- + glMapBufferRange :: (target: GLenum, offset: GLintptr, length: GLsizeiptr, access: GLbitfield) -> rawptr --- + glFlushMappedBufferRange :: (target: GLenum, offset: GLintptr, length: GLsizeiptr) -> void --- + glBindVertexArray :: (array: GLuint) -> void --- + glDeleteVertexArrays :: (n: GLsizei, arrays: ^GLuint) -> void --- + glGenVertexArrays :: (n: GLsizei, arrays: ^GLuint) -> void --- + glIsVertexArray :: (array: GLuint) -> GLboolean --- + glGetIntegeri_v :: (target: GLenum, index: GLuint, data: ^GLint) -> void --- + glBeginTransformFeedback :: (primitiveMode: GLenum) -> void --- + glEndTransformFeedback :: () -> void --- + glBindBufferRange :: (target: GLenum, index: GLuint, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) -> void --- + glBindBufferBase :: (target: GLenum, index: GLuint, buffer: GLuint) -> 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 --- + glGetVertexAttribIiv :: (index: GLuint, pname: GLenum, params: ^GLint) -> void --- + glGetVertexAttribIuiv :: (index: GLuint, pname: GLenum, params: ^GLuint) -> 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 --- + glVertexAttribI4iv :: (index: GLuint, v: ^GLint) -> void --- + glVertexAttribI4uiv :: (index: GLuint, v: ^GLuint) -> void --- + glGetUniformuiv :: (program: GLuint, location: GLint, params: ^GLuint) -> void --- + glGetFragDataLocation :: (program: GLuint, name: ^GLchar) -> GLint --- + 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 --- + 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 --- + 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 --- + glFenceSync :: (condition: GLenum, flags: GLbitfield) -> GLsync --- + glIsSync :: (sync: GLsync) -> GLboolean --- + glDeleteSync :: (sync: GLsync) -> void --- + glClientWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum --- + glWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> void --- + glGetInteger64v :: (pname: GLenum, data: ^GLint64) -> void --- + glGetSynciv :: (sync: GLsync, pname: GLenum, bufSize: GLsizei, length: ^GLsizei, values: ^GLint) -> void --- + glGetInteger64i_v :: (target: GLenum, index: GLuint, data: ^GLint64) -> void --- + glGetBufferParameteri64v :: (target: GLenum, pname: GLenum, params: ^GLint64) -> void --- + glGenSamplers :: (count: GLsizei, samplers: ^GLuint) -> void --- + glDeleteSamplers :: (count: GLsizei, samplers: ^GLuint) -> void --- + glIsSampler :: (sampler: GLuint) -> GLboolean --- + glBindSampler :: (unit: GLuint, sampler: GLuint) -> void --- + glSamplerParameteri :: (sampler: GLuint, pname: GLenum, param: GLint) -> void --- + glSamplerParameteriv :: (sampler: GLuint, pname: GLenum, param: ^GLint) -> void --- + glSamplerParameterf :: (sampler: GLuint, pname: GLenum, param: GLfloat) -> void --- + glSamplerParameterfv :: (sampler: GLuint, pname: GLenum, param: ^GLfloat) -> void --- + glGetSamplerParameteriv :: (sampler: GLuint, pname: GLenum, params: ^GLint) -> void --- + glGetSamplerParameterfv :: (sampler: GLuint, pname: GLenum, params: ^GLfloat) -> void --- + glVertexAttribDivisor :: (index: GLuint, divisor: GLuint) -> void --- + glBindTransformFeedback :: (target: GLenum, id: GLuint) -> void --- + glDeleteTransformFeedbacks :: (n: GLsizei, ids: ^GLuint) -> void --- + glGenTransformFeedbacks :: (n: GLsizei, ids: ^GLuint) -> void --- + glIsTransformFeedback :: (id: GLuint) -> GLboolean --- + glPauseTransformFeedback :: () -> void --- + glResumeTransformFeedback :: () -> 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 --- + +} + +GLbyte :: i8; +GLclampf :: f32; +GLfixed :: i32; +GLshort :: i16; +GLushort :: u16; +GLvoid :: void; +GLsync :: #distinct u64; +GLint64 :: i64; +GLuint64 :: u64; +GLenum :: i32; +GLuint :: u32; +GLchar :: u8; +GLfloat :: f32; +GLsizeiptr :: i32; +GLintptr:: i32; +GLbitfield :: u32; +GLint :: i32; +GLboolean :: bool; +GLsizei :: i32; +GLubyte :: u8; + +GL_DEPTH_BUFFER_BIT :: 0x00000100 +GL_STENCIL_BUFFER_BIT :: 0x00000400 +GL_COLOR_BUFFER_BIT :: 0x00004000 +GL_FALSE :: 0 +GL_TRUE :: 1 +GL_POINTS :: 0x0000 +GL_LINES :: 0x0001 +GL_LINE_LOOP :: 0x0002 +GL_LINE_STRIP :: 0x0003 +GL_TRIANGLES :: 0x0004 +GL_TRIANGLE_STRIP :: 0x0005 +GL_TRIANGLE_FAN :: 0x0006 +GL_ZERO :: 0 +GL_ONE :: 1 +GL_SRC_COLOR :: 0x0300 +GL_ONE_MINUS_SRC_COLOR :: 0x0301 +GL_SRC_ALPHA :: 0x0302 +GL_ONE_MINUS_SRC_ALPHA :: 0x0303 +GL_DST_ALPHA :: 0x0304 +GL_ONE_MINUS_DST_ALPHA :: 0x0305 +GL_DST_COLOR :: 0x0306 +GL_ONE_MINUS_DST_COLOR :: 0x0307 +GL_SRC_ALPHA_SATURATE :: 0x0308 +GL_FUNC_ADD :: 0x8006 +GL_BLEND_EQUATION :: 0x8009 +GL_BLEND_EQUATION_RGB :: 0x8009 +GL_BLEND_EQUATION_ALPHA :: 0x883D +GL_FUNC_SUBTRACT :: 0x800A +GL_FUNC_REVERSE_SUBTRACT :: 0x800B +GL_BLEND_DST_RGB :: 0x80C8 +GL_BLEND_SRC_RGB :: 0x80C9 +GL_BLEND_DST_ALPHA :: 0x80CA +GL_BLEND_SRC_ALPHA :: 0x80CB +GL_CONSTANT_COLOR :: 0x8001 +GL_ONE_MINUS_CONSTANT_COLOR :: 0x8002 +GL_CONSTANT_ALPHA :: 0x8003 +GL_ONE_MINUS_CONSTANT_ALPHA :: 0x8004 +GL_BLEND_COLOR :: 0x8005 +GL_ARRAY_BUFFER :: 0x8892 +GL_ELEMENT_ARRAY_BUFFER :: 0x8893 +GL_ARRAY_BUFFER_BINDING :: 0x8894 +GL_ELEMENT_ARRAY_BUFFER_BINDING :: 0x8895 +GL_STREAM_DRAW :: 0x88E0 +GL_STATIC_DRAW :: 0x88E4 +GL_DYNAMIC_DRAW :: 0x88E8 +GL_BUFFER_SIZE :: 0x8764 +GL_BUFFER_USAGE :: 0x8765 +GL_CURRENT_VERTEX_ATTRIB :: 0x8626 +GL_FRONT :: 0x0404 +GL_BACK :: 0x0405 +GL_FRONT_AND_BACK :: 0x0408 +GL_TEXTURE_2D :: 0x0DE1 +GL_CULL_FACE :: 0x0B44 +GL_BLEND :: 0x0BE2 +GL_DITHER :: 0x0BD0 +GL_STENCIL_TEST :: 0x0B90 +GL_DEPTH_TEST :: 0x0B71 +GL_SCISSOR_TEST :: 0x0C11 +GL_POLYGON_OFFSET_FILL :: 0x8037 +GL_SAMPLE_ALPHA_TO_COVERAGE :: 0x809E +GL_SAMPLE_COVERAGE :: 0x80A0 +GL_NO_ERROR :: 0 +GL_INVALID_ENUM :: 0x0500 +GL_INVALID_VALUE :: 0x0501 +GL_INVALID_OPERATION :: 0x0502 +GL_OUT_OF_MEMORY :: 0x0505 +GL_CW :: 0x0900 +GL_CCW :: 0x0901 +GL_LINE_WIDTH :: 0x0B21 +GL_ALIASED_POINT_SIZE_RANGE :: 0x846D +GL_ALIASED_LINE_WIDTH_RANGE :: 0x846E +GL_CULL_FACE_MODE :: 0x0B45 +GL_FRONT_FACE :: 0x0B46 +GL_DEPTH_RANGE :: 0x0B70 +GL_DEPTH_WRITEMASK :: 0x0B72 +GL_DEPTH_CLEAR_VALUE :: 0x0B73 +GL_DEPTH_FUNC :: 0x0B74 +GL_STENCIL_CLEAR_VALUE :: 0x0B91 +GL_STENCIL_FUNC :: 0x0B92 +GL_STENCIL_FAIL :: 0x0B94 +GL_STENCIL_PASS_DEPTH_FAIL :: 0x0B95 +GL_STENCIL_PASS_DEPTH_PASS :: 0x0B96 +GL_STENCIL_REF :: 0x0B97 +GL_STENCIL_VALUE_MASK :: 0x0B93 +GL_STENCIL_WRITEMASK :: 0x0B98 +GL_STENCIL_BACK_FUNC :: 0x8800 +GL_STENCIL_BACK_FAIL :: 0x8801 +GL_STENCIL_BACK_PASS_DEPTH_FAIL :: 0x8802 +GL_STENCIL_BACK_PASS_DEPTH_PASS :: 0x8803 +GL_STENCIL_BACK_REF :: 0x8CA3 +GL_STENCIL_BACK_VALUE_MASK :: 0x8CA4 +GL_STENCIL_BACK_WRITEMASK :: 0x8CA5 +GL_VIEWPORT :: 0x0BA2 +GL_SCISSOR_BOX :: 0x0C10 +GL_COLOR_CLEAR_VALUE :: 0x0C22 +GL_COLOR_WRITEMASK :: 0x0C23 +GL_UNPACK_ALIGNMENT :: 0x0CF5 +GL_PACK_ALIGNMENT :: 0x0D05 +GL_MAX_TEXTURE_SIZE :: 0x0D33 +GL_MAX_VIEWPORT_DIMS :: 0x0D3A +GL_SUBPIXEL_BITS :: 0x0D50 +GL_RED_BITS :: 0x0D52 +GL_GREEN_BITS :: 0x0D53 +GL_BLUE_BITS :: 0x0D54 +GL_ALPHA_BITS :: 0x0D55 +GL_DEPTH_BITS :: 0x0D56 +GL_STENCIL_BITS :: 0x0D57 +GL_POLYGON_OFFSET_UNITS :: 0x2A00 +GL_POLYGON_OFFSET_FACTOR :: 0x8038 +GL_TEXTURE_BINDING_2D :: 0x8069 +GL_SAMPLE_BUFFERS :: 0x80A8 +GL_SAMPLES :: 0x80A9 +GL_SAMPLE_COVERAGE_VALUE :: 0x80AA +GL_SAMPLE_COVERAGE_INVERT :: 0x80AB +GL_NUM_COMPRESSED_TEXTURE_FORMATS :: 0x86A2 +GL_COMPRESSED_TEXTURE_FORMATS :: 0x86A3 +GL_DONT_CARE :: 0x1100 +GL_FASTEST :: 0x1101 +GL_NICEST :: 0x1102 +GL_GENERATE_MIPMAP_HINT :: 0x8192 +GL_BYTE :: 0x1400 +GL_UNSIGNED_BYTE :: 0x1401 +GL_SHORT :: 0x1402 +GL_UNSIGNED_SHORT :: 0x1403 +GL_INT :: 0x1404 +GL_UNSIGNED_INT :: 0x1405 +GL_FLOAT :: 0x1406 +GL_FIXED :: 0x140C +GL_DEPTH_COMPONENT :: 0x1902 +GL_ALPHA :: 0x1906 +GL_RGB :: 0x1907 +GL_RGBA :: 0x1908 +GL_LUMINANCE :: 0x1909 +GL_LUMINANCE_ALPHA :: 0x190A +GL_UNSIGNED_SHORT_4_4_4_4 :: 0x8033 +GL_UNSIGNED_SHORT_5_5_5_1 :: 0x8034 +GL_UNSIGNED_SHORT_5_6_5 :: 0x8363 +GL_FRAGMENT_SHADER :: 0x8B30 +GL_VERTEX_SHADER :: 0x8B31 +GL_MAX_VERTEX_ATTRIBS :: 0x8869 +GL_MAX_VERTEX_UNIFORM_VECTORS :: 0x8DFB +GL_MAX_VARYING_VECTORS :: 0x8DFC +GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS :: 0x8B4D +GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS :: 0x8B4C +GL_MAX_TEXTURE_IMAGE_UNITS :: 0x8872 +GL_MAX_FRAGMENT_UNIFORM_VECTORS :: 0x8DFD +GL_SHADER_TYPE :: 0x8B4F +GL_DELETE_STATUS :: 0x8B80 +GL_LINK_STATUS :: 0x8B82 +GL_VALIDATE_STATUS :: 0x8B83 +GL_ATTACHED_SHADERS :: 0x8B85 +GL_ACTIVE_UNIFORMS :: 0x8B86 +GL_ACTIVE_UNIFORM_MAX_LENGTH :: 0x8B87 +GL_ACTIVE_ATTRIBUTES :: 0x8B89 +GL_ACTIVE_ATTRIBUTE_MAX_LENGTH :: 0x8B8A +GL_SHADING_LANGUAGE_VERSION :: 0x8B8C +GL_CURRENT_PROGRAM :: 0x8B8D +GL_NEVER :: 0x0200 +GL_LESS :: 0x0201 +GL_EQUAL :: 0x0202 +GL_LEQUAL :: 0x0203 +GL_GREATER :: 0x0204 +GL_NOTEQUAL :: 0x0205 +GL_GEQUAL :: 0x0206 +GL_ALWAYS :: 0x0207 +GL_KEEP :: 0x1E00 +GL_REPLACE :: 0x1E01 +GL_INCR :: 0x1E02 +GL_DECR :: 0x1E03 +GL_INVERT :: 0x150A +GL_INCR_WRAP :: 0x8507 +GL_DECR_WRAP :: 0x8508 +GL_VENDOR :: 0x1F00 +GL_RENDERER :: 0x1F01 +GL_VERSION :: 0x1F02 +GL_EXTENSIONS :: 0x1F03 +GL_NEAREST :: 0x2600 +GL_LINEAR :: 0x2601 +GL_NEAREST_MIPMAP_NEAREST :: 0x2700 +GL_LINEAR_MIPMAP_NEAREST :: 0x2701 +GL_NEAREST_MIPMAP_LINEAR :: 0x2702 +GL_LINEAR_MIPMAP_LINEAR :: 0x2703 +GL_TEXTURE_MAG_FILTER :: 0x2800 +GL_TEXTURE_MIN_FILTER :: 0x2801 +GL_TEXTURE_WRAP_S :: 0x2802 +GL_TEXTURE_WRAP_T :: 0x2803 +GL_TEXTURE :: 0x1702 +GL_TEXTURE_CUBE_MAP :: 0x8513 +GL_TEXTURE_BINDING_CUBE_MAP :: 0x8514 +GL_TEXTURE_CUBE_MAP_POSITIVE_X :: 0x8515 +GL_TEXTURE_CUBE_MAP_NEGATIVE_X :: 0x8516 +GL_TEXTURE_CUBE_MAP_POSITIVE_Y :: 0x8517 +GL_TEXTURE_CUBE_MAP_NEGATIVE_Y :: 0x8518 +GL_TEXTURE_CUBE_MAP_POSITIVE_Z :: 0x8519 +GL_TEXTURE_CUBE_MAP_NEGATIVE_Z :: 0x851A +GL_MAX_CUBE_MAP_TEXTURE_SIZE :: 0x851C +GL_TEXTURE0 :: 0x84C0 +GL_TEXTURE1 :: 0x84C1 +GL_TEXTURE2 :: 0x84C2 +GL_TEXTURE3 :: 0x84C3 +GL_TEXTURE4 :: 0x84C4 +GL_TEXTURE5 :: 0x84C5 +GL_TEXTURE6 :: 0x84C6 +GL_TEXTURE7 :: 0x84C7 +GL_TEXTURE8 :: 0x84C8 +GL_TEXTURE9 :: 0x84C9 +GL_TEXTURE10 :: 0x84CA +GL_TEXTURE11 :: 0x84CB +GL_TEXTURE12 :: 0x84CC +GL_TEXTURE13 :: 0x84CD +GL_TEXTURE14 :: 0x84CE +GL_TEXTURE15 :: 0x84CF +GL_TEXTURE16 :: 0x84D0 +GL_TEXTURE17 :: 0x84D1 +GL_TEXTURE18 :: 0x84D2 +GL_TEXTURE19 :: 0x84D3 +GL_TEXTURE20 :: 0x84D4 +GL_TEXTURE21 :: 0x84D5 +GL_TEXTURE22 :: 0x84D6 +GL_TEXTURE23 :: 0x84D7 +GL_TEXTURE24 :: 0x84D8 +GL_TEXTURE25 :: 0x84D9 +GL_TEXTURE26 :: 0x84DA +GL_TEXTURE27 :: 0x84DB +GL_TEXTURE28 :: 0x84DC +GL_TEXTURE29 :: 0x84DD +GL_TEXTURE30 :: 0x84DE +GL_TEXTURE31 :: 0x84DF +GL_ACTIVE_TEXTURE :: 0x84E0 +GL_REPEAT :: 0x2901 +GL_CLAMP_TO_EDGE :: 0x812F +GL_MIRRORED_REPEAT :: 0x8370 +GL_FLOAT_VEC2 :: 0x8B50 +GL_FLOAT_VEC3 :: 0x8B51 +GL_FLOAT_VEC4 :: 0x8B52 +GL_INT_VEC2 :: 0x8B53 +GL_INT_VEC3 :: 0x8B54 +GL_INT_VEC4 :: 0x8B55 +GL_BOOL :: 0x8B56 +GL_BOOL_VEC2 :: 0x8B57 +GL_BOOL_VEC3 :: 0x8B58 +GL_BOOL_VEC4 :: 0x8B59 +GL_FLOAT_MAT2 :: 0x8B5A +GL_FLOAT_MAT3 :: 0x8B5B +GL_FLOAT_MAT4 :: 0x8B5C +GL_SAMPLER_2D :: 0x8B5E +GL_SAMPLER_CUBE :: 0x8B60 +GL_VERTEX_ATTRIB_ARRAY_ENABLED :: 0x8622 +GL_VERTEX_ATTRIB_ARRAY_SIZE :: 0x8623 +GL_VERTEX_ATTRIB_ARRAY_STRIDE :: 0x8624 +GL_VERTEX_ATTRIB_ARRAY_TYPE :: 0x8625 +GL_VERTEX_ATTRIB_ARRAY_NORMALIZED :: 0x886A +GL_VERTEX_ATTRIB_ARRAY_POINTER :: 0x8645 +GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: 0x889F +GL_IMPLEMENTATION_COLOR_READ_TYPE :: 0x8B9A +GL_IMPLEMENTATION_COLOR_READ_FORMAT :: 0x8B9B +GL_COMPILE_STATUS :: 0x8B81 +GL_INFO_LOG_LENGTH :: 0x8B84 +GL_SHADER_SOURCE_LENGTH :: 0x8B88 +GL_SHADER_COMPILER :: 0x8DFA +GL_SHADER_BINARY_FORMATS :: 0x8DF8 +GL_NUM_SHADER_BINARY_FORMATS :: 0x8DF9 +GL_LOW_FLOAT :: 0x8DF0 +GL_MEDIUM_FLOAT :: 0x8DF1 +GL_HIGH_FLOAT :: 0x8DF2 +GL_LOW_INT :: 0x8DF3 +GL_MEDIUM_INT :: 0x8DF4 +GL_HIGH_INT :: 0x8DF5 +GL_FRAMEBUFFER :: 0x8D40 +GL_RENDERBUFFER :: 0x8D41 +GL_RGBA4 :: 0x8056 +GL_RGB5_A1 :: 0x8057 +GL_RGB565 :: 0x8D62 +GL_DEPTH_COMPONENT16 :: 0x81A5 +GL_STENCIL_INDEX8 :: 0x8D48 +GL_RENDERBUFFER_WIDTH :: 0x8D42 +GL_RENDERBUFFER_HEIGHT :: 0x8D43 +GL_RENDERBUFFER_INTERNAL_FORMAT :: 0x8D44 +GL_RENDERBUFFER_RED_SIZE :: 0x8D50 +GL_RENDERBUFFER_GREEN_SIZE :: 0x8D51 +GL_RENDERBUFFER_BLUE_SIZE :: 0x8D52 +GL_RENDERBUFFER_ALPHA_SIZE :: 0x8D53 +GL_RENDERBUFFER_DEPTH_SIZE :: 0x8D54 +GL_RENDERBUFFER_STENCIL_SIZE :: 0x8D55 +GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: 0x8CD0 +GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: 0x8CD1 +GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: 0x8CD2 +GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: 0x8CD3 +GL_COLOR_ATTACHMENT0 :: 0x8CE0 +GL_DEPTH_ATTACHMENT :: 0x8D00 +GL_STENCIL_ATTACHMENT :: 0x8D20 +GL_NONE :: 0 +GL_FRAMEBUFFER_COMPLETE :: 0x8CD5 +GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: 0x8CD6 +GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: 0x8CD7 +GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS :: 0x8CD9 +GL_FRAMEBUFFER_UNSUPPORTED :: 0x8CDD +GL_FRAMEBUFFER_BINDING :: 0x8CA6 +GL_RENDERBUFFER_BINDING :: 0x8CA7 +GL_MAX_RENDERBUFFER_SIZE :: 0x84E8 +GL_INVALID_FRAMEBUFFER_OPERATION :: 0x0506 +GL_READ_BUFFER :: 0x0C02 +GL_UNPACK_ROW_LENGTH :: 0x0CF2 +GL_UNPACK_SKIP_ROWS :: 0x0CF3 +GL_UNPACK_SKIP_PIXELS :: 0x0CF4 +GL_PACK_ROW_LENGTH :: 0x0D02 +GL_PACK_SKIP_ROWS :: 0x0D03 +GL_PACK_SKIP_PIXELS :: 0x0D04 +GL_COLOR :: 0x1800 +GL_DEPTH :: 0x1801 +GL_STENCIL :: 0x1802 +GL_RED :: 0x1903 +GL_RGB8 :: 0x8051 +GL_RGBA8 :: 0x8058 +GL_RGB10_A2 :: 0x8059 +GL_TEXTURE_BINDING_3D :: 0x806A +GL_UNPACK_SKIP_IMAGES :: 0x806D +GL_UNPACK_IMAGE_HEIGHT :: 0x806E +GL_TEXTURE_3D :: 0x806F +GL_TEXTURE_WRAP_R :: 0x8072 +GL_MAX_3D_TEXTURE_SIZE :: 0x8073 +GL_UNSIGNED_INT_2_10_10_10_REV :: 0x8368 +GL_MAX_ELEMENTS_VERTICES :: 0x80E8 +GL_MAX_ELEMENTS_INDICES :: 0x80E9 +GL_TEXTURE_MIN_LOD :: 0x813A +GL_TEXTURE_MAX_LOD :: 0x813B +GL_TEXTURE_BASE_LEVEL :: 0x813C +GL_TEXTURE_MAX_LEVEL :: 0x813D +GL_MIN :: 0x8007 +GL_MAX :: 0x8008 +GL_DEPTH_COMPONENT24 :: 0x81A6 +GL_MAX_TEXTURE_LOD_BIAS :: 0x84FD +GL_TEXTURE_COMPARE_MODE :: 0x884C +GL_TEXTURE_COMPARE_FUNC :: 0x884D +GL_CURRENT_QUERY :: 0x8865 +GL_QUERY_RESULT :: 0x8866 +GL_QUERY_RESULT_AVAILABLE :: 0x8867 +GL_BUFFER_MAPPED :: 0x88BC +GL_BUFFER_MAP_POINTER :: 0x88BD +GL_STREAM_READ :: 0x88E1 +GL_STREAM_COPY :: 0x88E2 +GL_STATIC_READ :: 0x88E5 +GL_STATIC_COPY :: 0x88E6 +GL_DYNAMIC_READ :: 0x88E9 +GL_DYNAMIC_COPY :: 0x88EA +GL_MAX_DRAW_BUFFERS :: 0x8824 +GL_DRAW_BUFFER0 :: 0x8825 +GL_DRAW_BUFFER1 :: 0x8826 +GL_DRAW_BUFFER2 :: 0x8827 +GL_DRAW_BUFFER3 :: 0x8828 +GL_DRAW_BUFFER4 :: 0x8829 +GL_DRAW_BUFFER5 :: 0x882A +GL_DRAW_BUFFER6 :: 0x882B +GL_DRAW_BUFFER7 :: 0x882C +GL_DRAW_BUFFER8 :: 0x882D +GL_DRAW_BUFFER9 :: 0x882E +GL_DRAW_BUFFER10 :: 0x882F +GL_DRAW_BUFFER11 :: 0x8830 +GL_DRAW_BUFFER12 :: 0x8831 +GL_DRAW_BUFFER13 :: 0x8832 +GL_DRAW_BUFFER14 :: 0x8833 +GL_DRAW_BUFFER15 :: 0x8834 +GL_MAX_FRAGMENT_UNIFORM_COMPONENTS :: 0x8B49 +GL_MAX_VERTEX_UNIFORM_COMPONENTS :: 0x8B4A +GL_SAMPLER_3D :: 0x8B5F +GL_SAMPLER_2D_SHADOW :: 0x8B62 +GL_FRAGMENT_SHADER_DERIVATIVE_HINT :: 0x8B8B +GL_PIXEL_PACK_BUFFER :: 0x88EB +GL_PIXEL_UNPACK_BUFFER :: 0x88EC +GL_PIXEL_PACK_BUFFER_BINDING :: 0x88ED +GL_PIXEL_UNPACK_BUFFER_BINDING :: 0x88EF +GL_FLOAT_MAT2x3 :: 0x8B65 +GL_FLOAT_MAT2x4 :: 0x8B66 +GL_FLOAT_MAT3x2 :: 0x8B67 +GL_FLOAT_MAT3x4 :: 0x8B68 +GL_FLOAT_MAT4x2 :: 0x8B69 +GL_FLOAT_MAT4x3 :: 0x8B6A +GL_SRGB :: 0x8C40 +GL_SRGB8 :: 0x8C41 +GL_SRGB8_ALPHA8 :: 0x8C43 +GL_COMPARE_REF_TO_TEXTURE :: 0x884E +GL_MAJOR_VERSION :: 0x821B +GL_MINOR_VERSION :: 0x821C +GL_NUM_EXTENSIONS :: 0x821D +GL_RGBA32F :: 0x8814 +GL_RGB32F :: 0x8815 +GL_RGBA16F :: 0x881A +GL_RGB16F :: 0x881B +GL_VERTEX_ATTRIB_ARRAY_INTEGER :: 0x88FD +GL_MAX_ARRAY_TEXTURE_LAYERS :: 0x88FF +GL_MIN_PROGRAM_TEXEL_OFFSET :: 0x8904 +GL_MAX_PROGRAM_TEXEL_OFFSET :: 0x8905 +GL_MAX_VARYING_COMPONENTS :: 0x8B4B +GL_TEXTURE_2D_ARRAY :: 0x8C1A +GL_TEXTURE_BINDING_2D_ARRAY :: 0x8C1D +GL_R11F_G11F_B10F :: 0x8C3A +GL_UNSIGNED_INT_10F_11F_11F_REV :: 0x8C3B +GL_RGB9_E5 :: 0x8C3D +GL_UNSIGNED_INT_5_9_9_9_REV :: 0x8C3E +GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: 0x8C76 +GL_TRANSFORM_FEEDBACK_BUFFER_MODE :: 0x8C7F +GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: 0x8C80 +GL_TRANSFORM_FEEDBACK_VARYINGS :: 0x8C83 +GL_TRANSFORM_FEEDBACK_BUFFER_START :: 0x8C84 +GL_TRANSFORM_FEEDBACK_BUFFER_SIZE :: 0x8C85 +GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: 0x8C88 +GL_RASTERIZER_DISCARD :: 0x8C89 +GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: 0x8C8A +GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: 0x8C8B +GL_INTERLEAVED_ATTRIBS :: 0x8C8C +GL_SEPARATE_ATTRIBS :: 0x8C8D +GL_TRANSFORM_FEEDBACK_BUFFER :: 0x8C8E +GL_TRANSFORM_FEEDBACK_BUFFER_BINDING :: 0x8C8F +GL_RGBA32UI :: 0x8D70 +GL_RGB32UI :: 0x8D71 +GL_RGBA16UI :: 0x8D76 +GL_RGB16UI :: 0x8D77 +GL_RGBA8UI :: 0x8D7C +GL_RGB8UI :: 0x8D7D +GL_RGBA32I :: 0x8D82 +GL_RGB32I :: 0x8D83 +GL_RGBA16I :: 0x8D88 +GL_RGB16I :: 0x8D89 +GL_RGBA8I :: 0x8D8E +GL_RGB8I :: 0x8D8F +GL_RED_INTEGER :: 0x8D94 +GL_RGB_INTEGER :: 0x8D98 +GL_RGBA_INTEGER :: 0x8D99 +GL_SAMPLER_2D_ARRAY :: 0x8DC1 +GL_SAMPLER_2D_ARRAY_SHADOW :: 0x8DC4 +GL_SAMPLER_CUBE_SHADOW :: 0x8DC5 +GL_UNSIGNED_INT_VEC2 :: 0x8DC6 +GL_UNSIGNED_INT_VEC3 :: 0x8DC7 +GL_UNSIGNED_INT_VEC4 :: 0x8DC8 +GL_INT_SAMPLER_2D :: 0x8DCA +GL_INT_SAMPLER_3D :: 0x8DCB +GL_INT_SAMPLER_CUBE :: 0x8DCC +GL_INT_SAMPLER_2D_ARRAY :: 0x8DCF +GL_UNSIGNED_INT_SAMPLER_2D :: 0x8DD2 +GL_UNSIGNED_INT_SAMPLER_3D :: 0x8DD3 +GL_UNSIGNED_INT_SAMPLER_CUBE :: 0x8DD4 +GL_UNSIGNED_INT_SAMPLER_2D_ARRAY :: 0x8DD7 +GL_BUFFER_ACCESS_FLAGS :: 0x911F +GL_BUFFER_MAP_LENGTH :: 0x9120 +GL_BUFFER_MAP_OFFSET :: 0x9121 +GL_DEPTH_COMPONENT32F :: 0x8CAC +GL_DEPTH32F_STENCIL8 :: 0x8CAD +GL_FLOAT_32_UNSIGNED_INT_24_8_REV :: 0x8DAD +GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: 0x8210 +GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: 0x8211 +GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE :: 0x8212 +GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: 0x8213 +GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: 0x8214 +GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: 0x8215 +GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: 0x8216 +GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: 0x8217 +GL_FRAMEBUFFER_DEFAULT :: 0x8218 +GL_FRAMEBUFFER_UNDEFINED :: 0x8219 +GL_DEPTH_STENCIL_ATTACHMENT :: 0x821A +GL_DEPTH_STENCIL :: 0x84F9 +GL_UNSIGNED_INT_24_8 :: 0x84FA +GL_DEPTH24_STENCIL8 :: 0x88F0 +GL_UNSIGNED_NORMALIZED :: 0x8C17 +GL_DRAW_FRAMEBUFFER_BINDING :: 0x8CA6 +GL_READ_FRAMEBUFFER :: 0x8CA8 +GL_DRAW_FRAMEBUFFER :: 0x8CA9 +GL_READ_FRAMEBUFFER_BINDING :: 0x8CAA +GL_RENDERBUFFER_SAMPLES :: 0x8CAB +GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: 0x8CD4 +GL_MAX_COLOR_ATTACHMENTS :: 0x8CDF +GL_COLOR_ATTACHMENT1 :: 0x8CE1 +GL_COLOR_ATTACHMENT2 :: 0x8CE2 +GL_COLOR_ATTACHMENT3 :: 0x8CE3 +GL_COLOR_ATTACHMENT4 :: 0x8CE4 +GL_COLOR_ATTACHMENT5 :: 0x8CE5 +GL_COLOR_ATTACHMENT6 :: 0x8CE6 +GL_COLOR_ATTACHMENT7 :: 0x8CE7 +GL_COLOR_ATTACHMENT8 :: 0x8CE8 +GL_COLOR_ATTACHMENT9 :: 0x8CE9 +GL_COLOR_ATTACHMENT10 :: 0x8CEA +GL_COLOR_ATTACHMENT11 :: 0x8CEB +GL_COLOR_ATTACHMENT12 :: 0x8CEC +GL_COLOR_ATTACHMENT13 :: 0x8CED +GL_COLOR_ATTACHMENT14 :: 0x8CEE +GL_COLOR_ATTACHMENT15 :: 0x8CEF +GL_COLOR_ATTACHMENT16 :: 0x8CF0 +GL_COLOR_ATTACHMENT17 :: 0x8CF1 +GL_COLOR_ATTACHMENT18 :: 0x8CF2 +GL_COLOR_ATTACHMENT19 :: 0x8CF3 +GL_COLOR_ATTACHMENT20 :: 0x8CF4 +GL_COLOR_ATTACHMENT21 :: 0x8CF5 +GL_COLOR_ATTACHMENT22 :: 0x8CF6 +GL_COLOR_ATTACHMENT23 :: 0x8CF7 +GL_COLOR_ATTACHMENT24 :: 0x8CF8 +GL_COLOR_ATTACHMENT25 :: 0x8CF9 +GL_COLOR_ATTACHMENT26 :: 0x8CFA +GL_COLOR_ATTACHMENT27 :: 0x8CFB +GL_COLOR_ATTACHMENT28 :: 0x8CFC +GL_COLOR_ATTACHMENT29 :: 0x8CFD +GL_COLOR_ATTACHMENT30 :: 0x8CFE +GL_COLOR_ATTACHMENT31 :: 0x8CFF +GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: 0x8D56 +GL_MAX_SAMPLES :: 0x8D57 +GL_HALF_FLOAT :: 0x140B +GL_MAP_READ_BIT :: 0x0001 +GL_MAP_WRITE_BIT :: 0x0002 +GL_MAP_INVALIDATE_RANGE_BIT :: 0x0004 +GL_MAP_INVALIDATE_BUFFER_BIT :: 0x0008 +GL_MAP_FLUSH_EXPLICIT_BIT :: 0x0010 +GL_MAP_UNSYNCHRONIZED_BIT :: 0x0020 +GL_RG :: 0x8227 +GL_RG_INTEGER :: 0x8228 +GL_R8 :: 0x8229 +GL_RG8 :: 0x822B +GL_R16F :: 0x822D +GL_R32F :: 0x822E +GL_RG16F :: 0x822F +GL_RG32F :: 0x8230 +GL_R8I :: 0x8231 +GL_R8UI :: 0x8232 +GL_R16I :: 0x8233 +GL_R16UI :: 0x8234 +GL_R32I :: 0x8235 +GL_R32UI :: 0x8236 +GL_RG8I :: 0x8237 +GL_RG8UI :: 0x8238 +GL_RG16I :: 0x8239 +GL_RG16UI :: 0x823A +GL_RG32I :: 0x823B +GL_RG32UI :: 0x823C +GL_VERTEX_ARRAY_BINDING :: 0x85B5 +GL_R8_SNORM :: 0x8F94 +GL_RG8_SNORM :: 0x8F95 +GL_RGB8_SNORM :: 0x8F96 +GL_RGBA8_SNORM :: 0x8F97 +GL_SIGNED_NORMALIZED :: 0x8F9C +GL_PRIMITIVE_RESTART_FIXED_INDEX :: 0x8D69 +GL_COPY_READ_BUFFER :: 0x8F36 +GL_COPY_WRITE_BUFFER :: 0x8F37 +GL_COPY_READ_BUFFER_BINDING :: 0x8F36 +GL_COPY_WRITE_BUFFER_BINDING :: 0x8F37 +GL_UNIFORM_BUFFER :: 0x8A11 +GL_UNIFORM_BUFFER_BINDING :: 0x8A28 +GL_UNIFORM_BUFFER_START :: 0x8A29 +GL_UNIFORM_BUFFER_SIZE :: 0x8A2A +GL_MAX_VERTEX_UNIFORM_BLOCKS :: 0x8A2B +GL_MAX_FRAGMENT_UNIFORM_BLOCKS :: 0x8A2D +GL_MAX_COMBINED_UNIFORM_BLOCKS :: 0x8A2E +GL_MAX_UNIFORM_BUFFER_BINDINGS :: 0x8A2F +GL_MAX_UNIFORM_BLOCK_SIZE :: 0x8A30 +GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: 0x8A31 +GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: 0x8A33 +GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT :: 0x8A34 +GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: 0x8A35 +GL_ACTIVE_UNIFORM_BLOCKS :: 0x8A36 +GL_UNIFORM_TYPE :: 0x8A37 +GL_UNIFORM_SIZE :: 0x8A38 +GL_UNIFORM_NAME_LENGTH :: 0x8A39 +GL_UNIFORM_BLOCK_INDEX :: 0x8A3A +GL_UNIFORM_OFFSET :: 0x8A3B +GL_UNIFORM_ARRAY_STRIDE :: 0x8A3C +GL_UNIFORM_MATRIX_STRIDE :: 0x8A3D +GL_UNIFORM_IS_ROW_MAJOR :: 0x8A3E +GL_UNIFORM_BLOCK_BINDING :: 0x8A3F +GL_UNIFORM_BLOCK_DATA_SIZE :: 0x8A40 +GL_UNIFORM_BLOCK_NAME_LENGTH :: 0x8A41 +GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS :: 0x8A42 +GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: 0x8A43 +GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: 0x8A44 +GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: 0x8A46 +GL_INVALID_INDEX :: 0xFFFFFFFF +GL_MAX_VERTEX_OUTPUT_COMPONENTS :: 0x9122 +GL_MAX_FRAGMENT_INPUT_COMPONENTS :: 0x9125 +GL_MAX_SERVER_WAIT_TIMEOUT :: 0x9111 +GL_OBJECT_TYPE :: 0x9112 +GL_SYNC_CONDITION :: 0x9113 +GL_SYNC_STATUS :: 0x9114 +GL_SYNC_FLAGS :: 0x9115 +GL_SYNC_FENCE :: 0x9116 +GL_SYNC_GPU_COMMANDS_COMPLETE :: 0x9117 +GL_UNSIGNALED :: 0x9118 +GL_SIGNALED :: 0x9119 +GL_ALREADY_SIGNALED :: 0x911A +GL_TIMEOUT_EXPIRED :: 0x911B +GL_CONDITION_SATISFIED :: 0x911C +GL_WAIT_FAILED :: 0x911D +GL_SYNC_FLUSH_COMMANDS_BIT :: 0x00000001 +GL_TIMEOUT_IGNORED :: 0xFFFFFFFFFFFFFFFF +GL_VERTEX_ATTRIB_ARRAY_DIVISOR :: 0x88FE +GL_ANY_SAMPLES_PASSED :: 0x8C2F +GL_ANY_SAMPLES_PASSED_CONSERVATIVE :: 0x8D6A +GL_SAMPLER_BINDING :: 0x8919 +GL_RGB10_A2UI :: 0x906F +GL_TEXTURE_SWIZZLE_R :: 0x8E42 +GL_TEXTURE_SWIZZLE_G :: 0x8E43 +GL_TEXTURE_SWIZZLE_B :: 0x8E44 +GL_TEXTURE_SWIZZLE_A :: 0x8E45 +GL_GREEN :: 0x1904 +GL_BLUE :: 0x1905 +GL_INT_2_10_10_10_REV :: 0x8D9F +GL_TRANSFORM_FEEDBACK :: 0x8E22 +GL_TRANSFORM_FEEDBACK_PAUSED :: 0x8E23 +GL_TRANSFORM_FEEDBACK_ACTIVE :: 0x8E24 +GL_TRANSFORM_FEEDBACK_BINDING :: 0x8E25 +GL_PROGRAM_BINARY_RETRIEVABLE_HINT :: 0x8257 +GL_PROGRAM_BINARY_LENGTH :: 0x8741 +GL_NUM_PROGRAM_BINARY_FORMATS :: 0x87FE +GL_PROGRAM_BINARY_FORMATS :: 0x87FF +GL_COMPRESSED_R11_EAC :: 0x9270 +GL_COMPRESSED_SIGNED_R11_EAC :: 0x9271 +GL_COMPRESSED_RG11_EAC :: 0x9272 +GL_COMPRESSED_SIGNED_RG11_EAC :: 0x9273 +GL_COMPRESSED_RGB8_ETC2 :: 0x9274 +GL_COMPRESSED_SRGB8_ETC2 :: 0x9275 +GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9276 +GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9277 +GL_COMPRESSED_RGBA8_ETC2_EAC :: 0x9278 +GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: 0x9279 +GL_TEXTURE_IMMUTABLE_FORMAT :: 0x912F +GL_MAX_ELEMENT_INDEX :: 0x8D6B +GL_NUM_SAMPLE_COUNTS :: 0x9380 +GL_TEXTURE_IMMUTABLE_LEVELS :: 0x82DF diff --git a/modules/opengles/onyx_opengles.c b/modules/opengles/onyx_opengles.c new file mode 100644 index 00000000..e49528e3 --- /dev/null +++ b/modules/opengles/onyx_opengles.c @@ -0,0 +1,322 @@ +#include "onyx_library.h" +#include + +#define ONYX_LIBRARY_NAME onyx_opengles + +#define ONYX_GL_0(name) \ + ONYX_DEF(name, (), ()) { \ + name (); \ + return NULL; \ + } + +#define ONYX_GL_INT_1(name) \ + ONYX_DEF(name, (INT), ()) { \ + name (params->data[0].of.i32); \ + return NULL; \ + } + +#define ONYX_GL_INT_2(name) \ + ONYX_DEF(name, (INT, INT), ()) { \ + name (params->data[0].of.i32, params->data[0].of.i32); \ + return NULL; \ + } + +ONYX_GL_0(glFinish) +ONYX_GL_0(glFlush) +ONYX_GL_0(glReleaseShaderCompiler) +ONYX_GL_0(glEndTransformFeedback) +ONYX_GL_0(glPauseTransformFeedback) +ONYX_GL_0(glResumeTransformFeedback) +ONYX_GL_INT_1(glActiveTexture) +ONYX_GL_INT_1(glClear) +ONYX_GL_INT_1(glEnable) +ONYX_GL_INT_1(glDisable) +ONYX_GL_INT_1(glBlendEquation) +ONYX_GL_INT_1(glClearStencil) +ONYX_GL_INT_1(glCompileShader) +ONYX_GL_INT_1(glCullFace) +ONYX_GL_INT_1(glDeleteProgram) +ONYX_GL_INT_1(glDeleteShader) +ONYX_GL_INT_1(glDepthFunc) +ONYX_GL_INT_1(glDepthMask) +ONYX_GL_INT_1(glDisableVertexAttribArray) +ONYX_GL_INT_1(glEnableVertexAttribArray) +ONYX_GL_INT_1(glFrontFace) +ONYX_GL_INT_1(glGenerateMipmap) +ONYX_GL_INT_1(glLineWidth) +ONYX_GL_INT_1(glLinkProgram) +ONYX_GL_INT_1(glStencilMask) +ONYX_GL_INT_1(glUseProgram) +ONYX_GL_INT_1(glValidateProgram) +ONYX_GL_INT_1(glReadBuffer) +ONYX_GL_INT_1(glEndQuery) +ONYX_GL_INT_1(glBindVertexArray) +ONYX_GL_INT_1(glBeginTransformFeedback) +ONYX_GL_INT_2(glAttachShader) +ONYX_GL_INT_2(glBindBuffer) +ONYX_GL_INT_2(glBindFramebuffer) +ONYX_GL_INT_2(glBindRenderbuffer) +ONYX_GL_INT_2(glBindTexture) +// glBlendEquationSeparate :: (modeRGB: GLenum, modeAlpha: GLenum) -> void --- +// glBlendFunc :: (sfactor: GLenum, dfactor: GLenum) -> void --- +// glDetachShader :: (program: GLuint, shader: GLuint) -> void --- +// glHint :: (target: GLenum, mode: GLenum) -> void --- +// glPixelStorei :: (pname: GLenum, param: GLint) -> void --- +// glStencilMaskSeparate :: (face: GLenum, mask: GLuint) -> void --- + +ONYX_DEF(glClearColor, (FLOAT, FLOAT, FLOAT, FLOAT), ()) { + glClearColor( + params->data[0].of.f32, + params->data[1].of.f32, + params->data[2].of.f32, + params->data[3].of.f32); + return NULL; +} + +// glBindAttribLocation :: (program: GLuint, index: GLuint, name: ^GLchar) -> void --- +// glBlendColor :: (red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat) -> void --- +// glBlendFuncSeparate :: (sfactorRGB: GLenum, dfactorRGB: GLenum, sfactorAlpha: GLenum, dfactorAlpha: GLenum) -> void --- +// glBufferData :: (target: GLenum, size: GLsizeiptr, data: rawptr, usage: GLenum) -> void --- +// glBufferSubData :: (target: GLenum, offset: GLintptr, size: GLsizeiptr, data: rawptr) -> void --- +// glCheckFramebufferStatus :: (target: GLenum) -> GLenum --- +// glClearDepthf :: (d: GLfloat) -> void --- +// glColorMask :: (red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) -> 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 --- +// glCreateProgram :: () -> GLuint --- +// glCreateShader :: (type: GLenum) -> GLuint --- +// glDeleteBuffers :: (n: GLsizei, buffers: ^GLuint) -> void --- +// glDeleteFramebuffers :: (n: GLsizei, framebuffers: ^GLuint) -> void --- +// glDeleteRenderbuffers :: (n: GLsizei, renderbuffers: ^GLuint) -> void --- +// glDeleteTextures :: (n: GLsizei, textures: ^GLuint) -> void --- +// glDepthRangef :: (n: GLfloat, f: GLfloat) -> void --- +// glDrawArrays :: (mode: GLenum, first: GLint, count: 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 --- +// glGenBuffers :: (n: GLsizei, buffers: ^GLuint) -> void --- +// glGenFramebuffers :: (n: GLsizei, framebuffers: ^GLuint) -> void --- +// glGenRenderbuffers :: (n: GLsizei, renderbuffers: ^GLuint) -> void --- +// glGenTextures :: (n: GLsizei, textures: ^GLuint) -> 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 --- +// glGetAttribLocation :: (program: GLuint, name: ^GLchar) -> GLint --- +// glGetBooleanv :: (pname: GLenum, data: ^GLboolean) -> void --- +// glGetBufferParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- +// glGetError :: () -> GLenum --- +// glGetFloatv :: (pname: GLenum, data: ^GLfloat) -> void --- +// glGetFramebufferAttachmentParameteriv :: (target: GLenum, attachment: GLenum, pname: GLenum, params: ^GLint) -> void --- +// glGetIntegerv :: (pname: GLenum, data: ^GLint) -> void --- +// glGetProgramiv :: (program: GLuint, pname: GLenum, params: ^GLint) -> void --- +// glGetProgramInfoLog :: (program: GLuint, bufSize: GLsizei, length: ^GLsizei, infoLog: ^GLchar) -> void --- +// glGetRenderbufferParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- +// glGetShaderiv :: (shader: GLuint, pname: GLenum, params: ^GLint) -> 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 --- +// glGetTexParameterfv :: (target: GLenum, pname: GLenum, params: ^GLfloat) -> void --- +// glGetTexParameteriv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- +// glGetUniformfv :: (program: GLuint, location: GLint, params: ^GLfloat) -> void --- +// glGetUniformiv :: (program: GLuint, location: GLint, params: ^GLint) -> void --- +// glGetUniformLocation :: (program: GLuint, name: ^GLchar) -> GLint --- +// glGetVertexAttribfv :: (index: GLuint, pname: GLenum, params: ^GLfloat) -> void --- +// glGetVertexAttribiv :: (index: GLuint, pname: GLenum, params: ^GLint) -> void --- +// glGetVertexAttribPointerv :: (index: GLuint, pname: GLenum, pointer: ^rawptr) -> void --- +// glIsBuffer :: (buffer: GLuint) -> GLboolean --- +// glIsEnabled :: (cap: GLenum) -> GLboolean --- +// glIsFramebuffer :: (framebuffer: GLuint) -> GLboolean --- +// glIsProgram :: (program: GLuint) -> GLboolean --- +// glIsRenderbuffer :: (renderbuffer: GLuint) -> GLboolean --- +// glIsShader :: (shader: GLuint) -> GLboolean --- +// glIsTexture :: (texture: GLuint) -> GLboolean --- +// glPolygonOffset :: (factor: GLfloat, units: GLfloat) -> void --- +// 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 --- +// 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, conststring: ^^GLchar, length: ^GLint) -> void --- +// glStencilFunc :: (func: GLenum, ref: GLint, mask: GLuint) -> void --- +// glStencilFuncSeparate :: (face: GLenum, func: GLenum, ref: GLint, mask: GLuint) -> void --- +// glStencilOp :: (fail: GLenum, zfail: GLenum, zpass: GLenum) -> 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 --- +// glTexParameterfv :: (target: GLenum, pname: GLenum, params: ^GLfloat) -> void --- +// glTexParameteri :: (target: GLenum, pname: GLenum, param: GLint) -> void --- +// glTexParameteriv :: (target: GLenum, pname: GLenum, params: ^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 --- +// glUniform1fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- +// glUniform1i :: (location: GLint, v0: GLint) -> void --- +// glUniform1iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- +// glUniform2f :: (location: GLint, v0: GLfloat, v1: GLfloat) -> void --- +// glUniform2fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- +// glUniform2i :: (location: GLint, v0: GLint, v1: GLint) -> void --- +// glUniform2iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- +// glUniform3f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) -> void --- +// glUniform3fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- +// glUniform3i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint) -> void --- +// glUniform3iv :: (location: GLint, count: GLsizei, value: ^GLint) -> void --- +// glUniform4f :: (location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) -> void --- +// glUniform4fv :: (location: GLint, count: GLsizei, value: ^GLfloat) -> void --- +// glUniform4i :: (location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) -> void --- +// glUniform4iv :: (location: GLint, count: GLsizei, value: ^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 --- +// glVertexAttrib1fv :: (index: GLuint, v: ^GLfloat) -> void --- +// glVertexAttrib2f :: (index: GLuint, x: GLfloat, y: GLfloat) -> void --- +// glVertexAttrib2fv :: (index: GLuint, v: ^GLfloat) -> void --- +// glVertexAttrib3f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) -> void --- +// glVertexAttrib3fv :: (index: GLuint, v: ^GLfloat) -> void --- +// glVertexAttrib4f :: (index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) -> void --- +// glVertexAttrib4fv :: (index: GLuint, v: ^GLfloat) -> void --- +// glVertexAttribPointer :: (index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, pointer: rawptr) -> void --- +// glViewport :: (x: GLint, y: GLint, width: GLsizei, height: GLsizei) -> 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 --- +// glGenQueries :: (n: GLsizei, ids: ^GLuint) -> void --- +// glDeleteQueries :: (n: GLsizei, ids: ^GLuint) -> void --- +// glIsQuery :: (id: GLuint) -> GLboolean --- +// glBeginQuery :: (target: GLenum, id: GLuint) -> void --- +// glGetQueryiv :: (target: GLenum, pname: GLenum, params: ^GLint) -> void --- +// glGetQueryObjectuiv :: (id: GLuint, pname: GLenum, params: ^GLuint) -> void --- +// glUnmapBuffer :: (target: GLenum) -> GLboolean --- +// glGetBufferPointerv :: (target: GLenum, pname: GLenum, params: ^rawptr) -> void --- +// glDrawBuffers :: (n: GLsizei, bufs: ^GLenum) -> 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 --- +// glMapBufferRange :: (target: GLenum, offset: GLintptr, length: GLsizeiptr, access: GLbitfield) -> rawptr --- +// glFlushMappedBufferRange :: (target: GLenum, offset: GLintptr, length: GLsizeiptr) -> void --- +// glDeleteVertexArrays :: (n: GLsizei, arrays: ^GLuint) -> void --- +// glGenVertexArrays :: (n: GLsizei, arrays: ^GLuint) -> void --- +// glIsVertexArray :: (array: GLuint) -> GLboolean --- +// glGetIntegeri_v :: (target: GLenum, index: GLuint, data: ^GLint) -> void --- +// glBindBufferRange :: (target: GLenum, index: GLuint, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) -> void --- +// glBindBufferBase :: (target: GLenum, index: GLuint, buffer: GLuint) -> 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 --- +// glGetVertexAttribIiv :: (index: GLuint, pname: GLenum, params: ^GLint) -> void --- +// glGetVertexAttribIuiv :: (index: GLuint, pname: GLenum, params: ^GLuint) -> 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 --- +// glVertexAttribI4iv :: (index: GLuint, v: ^GLint) -> void --- +// glVertexAttribI4uiv :: (index: GLuint, v: ^GLuint) -> void --- +// glGetUniformuiv :: (program: GLuint, location: GLint, params: ^GLuint) -> void --- +// glGetFragDataLocation :: (program: GLuint, name: ^GLchar) -> GLint --- +// 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 --- +// 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 --- +// 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 --- +// glFenceSync :: (condition: GLenum, flags: GLbitfield) -> GLsync --- +// glIsSync :: (sync: GLsync) -> GLboolean --- +// glClientWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> GLenum --- +// glWaitSync :: (sync: GLsync, flags: GLbitfield, timeout: GLuint64) -> void --- +// glGetInteger64v :: (pname: GLenum, data: ^GLint64) -> void --- +// glGetSynciv :: (sync: GLsync, pname: GLenum, bufSize: GLsizei, length: ^GLsizei, values: ^GLint) -> void --- +// glGetInteger64i_v :: (target: GLenum, index: GLuint, data: ^GLint64) -> void --- +// glGetBufferParameteri64v :: (target: GLenum, pname: GLenum, params: ^GLint64) -> void --- +// glGenSamplers :: (count: GLsizei, samplers: ^GLuint) -> void --- +// glDeleteSamplers :: (count: GLsizei, samplers: ^GLuint) -> void --- +// glIsSampler :: (sampler: GLuint) -> GLboolean --- +// glBindSampler :: (unit: GLuint, sampler: GLuint) -> void --- +// glSamplerParameteri :: (sampler: GLuint, pname: GLenum, param: GLint) -> void --- +// glSamplerParameteriv :: (sampler: GLuint, pname: GLenum, param: ^GLint) -> void --- +// glSamplerParameterf :: (sampler: GLuint, pname: GLenum, param: GLfloat) -> void --- +// glSamplerParameterfv :: (sampler: GLuint, pname: GLenum, param: ^GLfloat) -> void --- +// glGetSamplerParameteriv :: (sampler: GLuint, pname: GLenum, params: ^GLint) -> void --- +// glGetSamplerParameterfv :: (sampler: GLuint, pname: GLenum, params: ^GLfloat) -> void --- +// glVertexAttribDivisor :: (index: GLuint, divisor: GLuint) -> void --- +// glBindTransformFeedback :: (target: GLenum, id: GLuint) -> void --- +// glDeleteTransformFeedbacks :: (n: GLsizei, ids: ^GLuint) -> void --- +// glGenTransformFeedbacks :: (n: GLsizei, ids: ^GLuint) -> void --- +// glIsTransformFeedback :: (id: GLuint) -> GLboolean --- +// 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(glBindBuffer) + ONYX_FUNC(glBindFramebuffer) + ONYX_FUNC(glBindRenderbuffer) + ONYX_FUNC(glBindTexture) + + NULL +}; \ No newline at end of file diff --git a/modules/opengles/onyx_opengles.so b/modules/opengles/onyx_opengles.so new file mode 100755 index 00000000..d79e114b Binary files /dev/null and b/modules/opengles/onyx_opengles.so differ