aboutsummaryrefslogtreecommitdiff
path: root/vendor/wasm
diff options
context:
space:
mode:
authorAlex Riedl <alexanderbriedl@gmail.com>2025-08-09 10:47:07 -0500
committerAlex Riedl <alexanderbriedl@gmail.com>2025-08-09 10:47:07 -0500
commit277c6cac7175d78bd2e42db17e7ca7475ec6d574 (patch)
tree8f9333b7ced6e257f4874ee2de42e1834c079b08 /vendor/wasm
parent786d454443a6ba3bc6d97b922305c6646776b1e2 (diff)
Fix some webgl bindings
Diffstat (limited to 'vendor/wasm')
-rw-r--r--vendor/wasm/WebGL/webgl.odin66
-rw-r--r--vendor/wasm/WebGL/webgl2.odin2
2 files changed, 59 insertions, 9 deletions
diff --git a/vendor/wasm/WebGL/webgl.odin b/vendor/wasm/WebGL/webgl.odin
index 96d363ba2..5616f3660 100644
--- a/vendor/wasm/WebGL/webgl.odin
+++ b/vendor/wasm/WebGL/webgl.odin
@@ -52,6 +52,7 @@ foreign webgl {
BindBuffer :: proc(target: Enum, buffer: Buffer) ---
BindFramebuffer :: proc(target: Enum, framebuffer: Framebuffer) ---
BindTexture :: proc(target: Enum, texture: Texture) ---
+ BindRenderbuffer :: proc(target: Enum, renderbuffer: Renderbuffer) ---
BlendColor :: proc(red, green, blue, alpha: f32) ---
BlendEquation :: proc(mode: Enum) ---
BlendEquationSeparate :: proc(modeRGB: Enum, modeAlpha: Enum) ---
@@ -172,14 +173,63 @@ foreign webgl {
Viewport :: proc(x, y, w, h: i32) ---
}
-Uniform1fv :: proc "contextless" (location: i32, v: f32) { Uniform1f(location, v) }
-Uniform2fv :: proc "contextless" (location: i32, v: glm.vec2) { Uniform2f(location, v.x, v.y) }
-Uniform3fv :: proc "contextless" (location: i32, v: glm.vec3) { Uniform3f(location, v.x, v.y, v.z) }
-Uniform4fv :: proc "contextless" (location: i32, v: glm.vec4) { Uniform4f(location, v.x, v.y, v.z, v.w) }
-Uniform1iv :: proc "contextless" (location: i32, v: i32) { Uniform1i(location, v) }
-Uniform2iv :: proc "contextless" (location: i32, v: glm.ivec2) { Uniform2i(location, v.x, v.y) }
-Uniform3iv :: proc "contextless" (location: i32, v: glm.ivec3) { Uniform3i(location, v.x, v.y, v.z) }
-Uniform4iv :: proc "contextless" (location: i32, v: glm.ivec4) { Uniform4i(location, v.x, v.y, v.z, v.w) }
+Uniform1fv :: proc "contextless" (location: i32, v: []f32) {
+ foreign webgl {
+ @(link_name="Uniform1fv")
+ _Uniform1fv :: proc "contextless" (location: i32, count: int, value: [^]f32) ---
+ }
+ _Uniform1fv(location, len(v), &v[0])
+}
+Uniform2fv :: proc "contextless" (location: i32, v: []glm.vec2) {
+ foreign webgl {
+ @(link_name="Uniform2fv")
+ _Uniform2fv :: proc "contextless" (location: i32, count: int, value: [^]f32) ---
+ }
+ _Uniform2fv(location, len(v), &v[0].x)
+}
+Uniform3fv :: proc "contextless" (location: i32, v: []glm.vec3) {
+ foreign webgl {
+ @(link_name="Uniform3fv")
+ _Uniform3fv :: proc "contextless" (location: i32, count: int, value: [^]f32) ---
+ }
+ _Uniform3fv(location, len(v), &v[0].x)
+}
+Uniform4fv :: proc "contextless" (location: i32, v: []glm.vec4) {
+ foreign webgl {
+ @(link_name="Uniform4fv")
+ _Uniform4fv :: proc "contextless" (location: i32, count: int, value: [^]f32) ---
+ }
+ _Uniform4fv(location, len(v), &v[0].x)
+}
+
+Uniform1iv :: proc "contextless" (location: i32, v: []i32) {
+ foreign webgl {
+ @(link_name="Uniform1iv")
+ _Uniform1iv :: proc "contextless" (location: i32, count: int, value: [^]i32) ---
+ }
+ _Uniform1iv(location, len(v), &v[0])
+}
+Uniform2iv :: proc "contextless" (location: i32, v: []glm.ivec2) {
+ foreign webgl {
+ @(link_name="Uniform2iv")
+ _Uniform2iv :: proc "contextless" (location: i32, count: int, value: [^]i32) ---
+ }
+ _Uniform2iv(location, len(v), &v[0].x)
+}
+Uniform3iv :: proc "contextless" (location: i32, v: []glm.ivec3) {
+ foreign webgl {
+ @(link_name="Uniform3iv")
+ _Uniform3iv :: proc "contextless" (location: i32, count: int, value: [^]i32) ---
+ }
+ _Uniform3iv(location, len(v), &v[0].x)
+}
+Uniform4iv :: proc "contextless" (location: i32, v: []glm.ivec4) {
+ foreign webgl {
+ @(link_name="Uniform4iv")
+ _Uniform4iv :: proc "contextless" (location: i32, count: int, value: [^]i32) ---
+ }
+ _Uniform4iv(location, len(v), &v[0].x)
+}
VertexAttrib1fv :: proc "contextless" (index: i32, v: f32) { VertexAttrib1f(index, v) }
VertexAttrib2fv :: proc "contextless" (index: i32, v: glm.vec2){ VertexAttrib2f(index, v.x, v.y) }
diff --git a/vendor/wasm/WebGL/webgl2.odin b/vendor/wasm/WebGL/webgl2.odin
index 74f0534d7..66a739303 100644
--- a/vendor/wasm/WebGL/webgl2.odin
+++ b/vendor/wasm/WebGL/webgl2.odin
@@ -36,7 +36,7 @@ foreign webgl2 {
/* Texture objects */
TexStorage3D :: proc(target: Enum, levels: i32, internalformat: Enum, width, height, depth: i32) ---
TexImage3D :: proc(target: Enum, level: i32, internalformat: Enum, width, height, depth: i32, border: i32, format, type: Enum, size: int, data: rawptr) ---
- TexSubImage3D :: proc(target: Enum, level: i32, xoffset, yoffset, width, height, depth: i32, format, type: Enum, size: int, data: rawptr) ---
+ TexSubImage3D :: proc(target: Enum, level: i32, xoffset, yoffset, zoffset, width, height, depth: i32, format, type: Enum, size: int, data: rawptr) ---
CompressedTexImage3D :: proc(target: Enum, level: i32, internalformat: Enum, width, height, depth: i32, border: i32, imageSize: int, data: rawptr) ---
CompressedTexSubImage3D :: proc(target: Enum, level: i32, xoffset, yoffset: i32, width, height, depth: i32, format: Enum, imageSize: int, data: rawptr) ---
CopyTexSubImage3D :: proc(target: Enum, level: i32, xoffset, yoffset, zoffset: i32, x, y, width, height: i32) ---