From 4fd63366b7dc35c5fdcfbb118a5fe983cae1951a Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 5 Dec 2021 20:13:16 -0600 Subject: [PATCH] making headway on opengles and glfw libraries --- modules/glfw3/module.onyx | 62 +- modules/glfw3/onyx_glfw3.c | 133 ++++- modules/glfw3/onyx_glfw3.so | Bin 27040 -> 28896 bytes modules/opengles/build.sh | 3 + modules/opengles/module.onyx | 900 ++++++++++++++++++++++++++++++ modules/opengles/onyx_opengles.c | 322 +++++++++++ modules/opengles/onyx_opengles.so | Bin 0 -> 40032 bytes 7 files changed, 1400 insertions(+), 20 deletions(-) create mode 100755 modules/opengles/build.sh create mode 100644 modules/opengles/module.onyx create mode 100644 modules/opengles/onyx_opengles.c create mode 100755 modules/opengles/onyx_opengles.so 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 c438dd4e95cb20ed7136e8fc74300c014c83f973..0822af7a87e59f6ac1ea48a15bdb05f480e12f87 100755 GIT binary patch literal 28896 zcmeI54RBo5b%3vA3pTZp)&y*UNmv})71S&;7%&OOt3PWEvJsa2L-^TUX;+p&(r$KF zw#1~Zh>3$D+^QLp(9DGH(1dz2WU8c@)NMm&6Bt7h+9(Z8-IQTAw8^X{6qcVP3KVb8 zx%Zsa)6sixH#E~}I{Rj{=iTp}pZoXTUcGnk+du5++ErUqqj+1PZc><@Mz`soX57 zdUaj;AOtpV=idF$?`pD`m-oOQZnc!Q>R$kS1^l7@`vTAW&CZ>tQsoi)7& ze|g5(Dd@)v{82l5A*Vj<+h)7&nkW8c|8$JAPjpe_!SMXWWN8l#e5KUl&d*@iPXDX} z?{V*7C$}9Ae!k|w$H9SJK6e4%Ae}?{^A7rNX#cBKVUsc9>&a`t*Qm8B z+++Bx5lV$ZhezV0p;S7OOou`$w7YjtC>l$~4iBZ$v1IR_w&D0_tT)m(95cu4kA(Wi zBcXwz(a7-7eKB=-c;INy(MY0oY+xXkOzCuYJeBSkNu(z_j>JaO8Xb%brFAORJ2VoD zk4Z{)!^1|&xQ(R`4vj|RN5P*u8cB_WMq(rJ}MNI*r-gb{d)gOrra~aykl1Zqvwm9%{Q%idy_r@qqM_Ks*)Hrz6$=+CU z1R5o6vbuY8C=Kl$ADtKv4G;AtBgqMqz-qWg0m2=BD(=^be%!lGb$0D;Z3|uPzuJE- z_nBWy;)NWp(qw~sjez(XGEeB)J`ZlxE3X zH5>m;LVp$UX2HYM-?j^0pnet*JWTy6EI7v<6ns6!O$a_oamNMEkpD@+Cy8eS=eQ>Y z_fyK!7yJQkU%|USVA^p(@C3zGbiLtr%urmu4l(DrO+x>(+`fX(P~7d3 zQ`~^yS#Dp!Iqsm~k8}G9K1*@O1y^^NdYBYE$L%XP$2}?dlia?7XDRL}!DqRB1@}>Y za)NW*yx>3N_7yzG?JIbJ+n2ttxE<$+^Y<8Yj@u;kU*`4|+`G}#=XS~W86FTkK;`A{ zRT+0s=%3~G6}*|^jtkyRaVG_DCY}+T%X?DrhOH+5vw~+R?kT}%$bVMw1o52U95*lc zW{O)7yg+dm1fM1UipD!!pJA$J9tSb!xJ^R;dWzdDxR?HK*)I4b`40#_NBId0&T$6? z-$QW|f;Us#als4Ze^T%aS(f2L4V~*QbaE{v~`2F0zg3odL3htx00l}N89_DT}`NDfmwUk8^XDpoa ziaclG4G3tD}y{_;dIMW9}QdhYK#7$g`a2P2@B_2rg(VV!o3## zNef?N;SXB)`4&E7;qSHZM=bmT3(r{ig%*C&!q-{&tc5pP_$dp&$ilN0zTU#CyVV+~ z)F{Aso=-6>DuC4@YvIyr*u(@*S-X} zxamLOv*FSJ>|uHkkImdrUo^v5ubL)>|vPTz-V9NNx%bvlV@9MaA!oxTUt4VW&R1+b|P(_T#Hbo#@X z#v$$eoKEk6KdaNNn8u;&d`71~h-n}+ ziJQLI>3O}u8}Q`+aq)n~U;Yz|Slj>g(sXdT(=*-OG@WSFQGc}Y5((0JG&)EWQBp`9iU{67H_N3GxzeX3^MTeE)k zxtk8y{NHQtvyyvZcQ1SY2m*b8WD`sjc4EQr`#)t@R!(?`kM#0ql05T}!?9 zcr6@0wxYA%7q4$@tM|50KCwML(7yUPGsN9b9NX6mT;>zo8};>bNYFn3`dC-k{-_WC z-|2YAY7fH^Q>Tx>v5j!dTBlgHS>RiM_o0m_TRWF+_wusgx`!y(-GX+yZ0%IGkJdLr zn#+dkI35B$?9*7M`zWtXz#j&#%K-YvYO%Jd{o&Xna7^a)PT(2f_o6S6*HSy|Uz*no zK=om;I|FvsdPLt(0H5PHIuBTrW{&c+a175qOjoyR4ODBOS_9P@sMbKW2C6mi+gt

mASJU5QVO+0s!*Ky(h0J!n- zpPwzpHGuyeaO1g<3$(*?Ae-no&t>#e{#F??J^saAQiBPQ<^ZWFUQdkULELx_r5=|; zx|t>oGJlXV$oV`;6~S{X_1F~b;K`%TzkVVOX?XIf(_D`*gw*NH1{2^%_OfQxr^ihk^>}< zkUUP(cv=3Lqkh0gYG4QdoHjgG>O(e4c+Abd+;QxWZuZ6&@I{(w- zblO_pD50}m`f!VlO23KYZa&JD&#mn%$zQ3UwBw_B?L2Rv*A0XZ83i9nUbn&PM#2Z_ zI7wc&lc9AtVUj+Qyl#uvjfH9bm5(H^+v9bE;a>7jlCry8G#j*vB(IY!(0LW6@+~(c zLU!v(@_NS%*-chx&+8axHWoU_C1t;UPl-pdmqVi<>&Q* za}>Xs@*l3yK1J~hWZzBplNH+YdOcpBmmvF0h4#Gej@Q}EaQ#)vK5zK{HrtAAe4#_QJ#WIso;oIS5g<8^3WS|1dsFg~v@)aDbvhgPcB zit-Q+Gizbg&F^30T> zi1T%r`6Tf<(%1L!!PgVS3&iz3eBft@^Yu{QqX&LYE!F=AOhzs?LNycT>lerEBhJ^Q z^`!q9;(Wc)_vGQ&GsO8i!u9healStEkslunNU$FGyw~^J;n+Un1v;PCk^UbL=kt{F z^OwZ={NuPkCeG)TzPAp(R;@H~`F!E>ZX?d;0sA=wyawJgr8MERK{&f_2EUnb7u zA?E)^oX1DZ*TBG1`#)qHGv7s=$4|_U5a;m}^CyV&_=@=p?4QP4%+G^=Krt?lznHfY z=kXZx`-t=SjQK2a9){`3yk1QTezWFlm6yJ!+0TQd zpB4Jg5LYy=VEwbib3*?*xS@b?144g&++p zq%>cv3PS%Y#ODMr5ckq}fb(+&eBtSK5&mPELwySUM~OEJeunsr;OiPpy(I)cNPJfC z8O@KD;hkj1$u$jZxrtSBB-T4^TtD3H*3%^C!jT7Dr`nBpj#rF|e{UYrL zuD9JxjNGg_ETh=FlwSoLR;DO^Zy_ITB|kwr-w!uOF5 zu@tL&018#D@eW+i?exFrz~6@N9XtJfaGkW{pLWpy8YrI+%V;lu`(VWe zOGMbC;iY%jO zeT`)4tc}J7Gw#zWa$`V^IFo zvoWgZ9JjG+U;eID+4pR$T&`9&+NHeNUkPn2p!rP*yKAzIeknqQ`YzuNHr^M%rj~s_ zxN7q&bt|aQGT)mvVXV``Wq?Ek1_Gfz{pw$NNpQ1E#!~R!-FIQ=7O+gwTw|88bql-L zXim-G8o9iAWx<#Am=0jxQ2AKbPHL^tNm5W zHE0=Ix3DgkR@aa&c5dO?%U}Op!&YGL7QR$bZX-?C3{>R7EeodN-gW%)=5E2=2M4YN zcQN;? z%sc(Z;~Lh*&Mlnte=n}loXy;V+5SuA8iy=)?Q7Z75$f36jz95$w{GAoKAMV$1|y?U z{AGvs+xNEY+1&;d9$kkzf+1rNY~Ke6eguL|JG*XeZRrZ#x@%WYM{lUNrM0UA9D+ai zVF8z4j&S{<2KfsVX3%K!0|h!l1;0NLSn`tv{?x=sI?|{7@QVya4)We;JRS2N9v$;1 zlJP_=nVwMo66zZp8jfB$6jfSbFp?Tn{^-OgI5RSxG)Iom&n;**N`&B8GBzAR1KLXr zr zY|rzWS@OJQj?eYS<-ecoTgf5MlV-{Ds?i>vs+8t+v;8zMtP{8mZZ_XiiT%sEaXy$G zhaIcE&u5OX)N4su86-dJVEHG&toA&whNXTJnTTnX_!1WcfunhWp%p{G5yB(-vFYmGS=ynAN_UGQ#o&c1(V_{VA!QgdKQ3GK0s^w)X#u!Eh4>BB}lxhSN}@ literal 27040 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 r{BgVa_=nGhcHJRsr^fv%`$-%eT4KKpt%3} 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 0000000000000000000000000000000000000000..d79e114b3615820cdc96af6344c0434fd1adcfd6 GIT binary patch literal 40032 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 Rk7YXANB*8Pgn=lk{{t>lbe#YI literal 0 HcmV?d00001 -- 2.25.1