Fix some webgl bindings

This commit is contained in:
Alex Riedl
2025-08-09 10:47:07 -05:00
parent 786d454443
commit 277c6cac71
3 changed files with 96 additions and 9 deletions
+58 -8
View File
@@ -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) }