diff --git a/vendor/wasm/WebGL/webgl.odin b/vendor/wasm/WebGL/webgl.odin index 4fa6c4c1d..7337e2a11 100644 --- a/vendor/wasm/WebGL/webgl.odin +++ b/vendor/wasm/WebGL/webgl.odin @@ -27,7 +27,7 @@ ContextAttributes :: distinct bit_set[ContextAttribute; u32] DEFAULT_CONTEXT_ATTRIBUTES :: ContextAttributes{} -@(default_calling_convention="c") +@(default_calling_convention="contextless") foreign webgl { // CreateCurrentContextById must be called before `GetCurrentContextAttributes` if the user wants to // set specific attributes, otherwise the default attributes will be set for the WebGL context @@ -168,61 +168,59 @@ foreign webgl { Viewport :: proc(x, y, w, h: i32) --- } -Uniform1fv :: proc "c" (location: i32, v: f32) { Uniform1f(location, v) } -Uniform2fv :: proc "c" (location: i32, v: glm.vec2) { Uniform2f(location, v.x, v.y) } -Uniform3fv :: proc "c" (location: i32, v: glm.vec3) { Uniform3f(location, v.x, v.y, v.z) } -Uniform4fv :: proc "c" (location: i32, v: glm.vec4) { Uniform4f(location, v.x, v.y, v.z, v.w) } -Uniform1iv :: proc "c" (location: i32, v: i32) { Uniform1i(location, v) } -Uniform2iv :: proc "c" (location: i32, v: glm.ivec2) { Uniform2i(location, v.x, v.y) } -Uniform3iv :: proc "c" (location: i32, v: glm.ivec3) { Uniform3i(location, v.x, v.y, v.z) } -Uniform4iv :: proc "c" (location: i32, v: glm.ivec4) { Uniform4i(location, v.x, v.y, v.z, v.w) } +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) } -VertexAttrib1fv :: proc "c" (index: i32, v: f32) { VertexAttrib1f(index, v) } -VertexAttrib2fv :: proc "c" (index: i32, v: glm.vec2){ VertexAttrib2f(index, v.x, v.y) } -VertexAttrib3fv :: proc "c" (index: i32, v: glm.vec3){ VertexAttrib3f(index, v.x, v.y, v.z) } -VertexAttrib4fv :: proc "c" (index: i32, v: glm.vec4){ VertexAttrib4f(index, v.x, v.y, v.z, v.w) } +VertexAttrib1fv :: proc "contextless" (index: i32, v: f32) { VertexAttrib1f(index, v) } +VertexAttrib2fv :: proc "contextless" (index: i32, v: glm.vec2){ VertexAttrib2f(index, v.x, v.y) } +VertexAttrib3fv :: proc "contextless" (index: i32, v: glm.vec3){ VertexAttrib3f(index, v.x, v.y, v.z) } +VertexAttrib4fv :: proc "contextless" (index: i32, v: glm.vec4){ VertexAttrib4f(index, v.x, v.y, v.z, v.w) } -UniformMatrix2fv :: proc "c" (location: i32, m: glm.mat2) { +UniformMatrix2fv :: proc "contextless" (location: i32, m: glm.mat2) { foreign webgl { @(link_name="UniformMatrix2fv") - _UniformMatrix2fv :: proc "c" (location: i32, value: [^]f32) --- + _UniformMatrix2fv :: proc "contextless" (location: i32, value: [^]f32) --- } value := transmute([2*2]f32)m _UniformMatrix2fv(location, &value[0]) } -UniformMatrix3fv :: proc "c" (location: i32, m: glm.mat3) { +UniformMatrix3fv :: proc "contextless" (location: i32, m: glm.mat3) { foreign webgl { @(link_name="UniformMatrix3fv") - _UniformMatrix3fv :: proc "c" (location: i32, value: [^]f32) --- + _UniformMatrix3fv :: proc "contextless" (location: i32, value: [^]f32) --- } value := transmute([3*3]f32)m _UniformMatrix3fv(location, &value[0]) } -UniformMatrix4fv :: proc "c" (location: i32, m: glm.mat4) { +UniformMatrix4fv :: proc "contextless" (location: i32, m: glm.mat4) { foreign webgl { @(link_name="UniformMatrix4fv") - _UniformMatrix4fv :: proc "c" (location: i32, value: [^]f32) --- + _UniformMatrix4fv :: proc "contextless" (location: i32, value: [^]f32) --- } value := transmute([4*4]f32)m _UniformMatrix4fv(location, &value[0]) } -GetShaderiv :: proc "c" (shader: Shader, pname: Enum) -> (p: i32) { - @(default_calling_convention="c") +GetShaderiv :: proc "contextless" (shader: Shader, pname: Enum) -> (p: i32) { foreign webgl { @(link_name="GetShaderiv") - _GetShaderiv :: proc "c" (shader: Shader, pname: Enum, p: ^i32) --- + _GetShaderiv :: proc "contextless" (shader: Shader, pname: Enum, p: ^i32) --- } _GetShaderiv(shader, pname, &p) return } -GetProgramInfoLog :: proc "c" (program: Program, buf: []byte) -> string { - @(default_calling_convention="c") +GetProgramInfoLog :: proc "contextless" (program: Program, buf: []byte) -> string { foreign webgl { @(link_name="GetProgramInfoLog") - _GetProgramInfoLog :: proc "c" (program: Program, buf: []byte, length: ^int) --- + _GetProgramInfoLog :: proc "contextless" (program: Program, buf: []byte, length: ^int) --- } length: int @@ -230,11 +228,10 @@ GetProgramInfoLog :: proc "c" (program: Program, buf: []byte) -> string { return string(buf[:length]) } -GetShaderInfoLog :: proc "c" (shader: Shader, buf: []byte) -> string { - @(default_calling_convention="c") +GetShaderInfoLog :: proc "contextless" (shader: Shader, buf: []byte) -> string { foreign webgl { @(link_name="GetShaderInfoLog") - _GetShaderInfoLog :: proc "c" (shader: Shader, buf: []byte, length: ^int) --- + _GetShaderInfoLog :: proc "contextless" (shader: Shader, buf: []byte, length: ^int) --- } length: int @@ -244,27 +241,27 @@ GetShaderInfoLog :: proc "c" (shader: Shader, buf: []byte) -> string { -BufferDataSlice :: proc "c" (target: Enum, slice: $S/[]$E, usage: Enum) { +BufferDataSlice :: proc "contextless" (target: Enum, slice: $S/[]$E, usage: Enum) { BufferData(target, len(slice)*size_of(E), raw_data(slice), usage) } -BufferSubDataSlice :: proc "c" (target: Enum, offset: uintptr, slice: $S/[]$E) { +BufferSubDataSlice :: proc "contextless" (target: Enum, offset: uintptr, slice: $S/[]$E) { BufferSubData(target, offset, len(slice)*size_of(E), raw_data(slice), usage) } -CompressedTexImage2DSlice :: proc "c" (target: Enum, level: i32, internalformat: Enum, width, height: i32, border: i32, slice: $S/[]$E) { +CompressedTexImage2DSlice :: proc "contextless" (target: Enum, level: i32, internalformat: Enum, width, height: i32, border: i32, slice: $S/[]$E) { CompressedTexImage2DSlice(target, level, internalformat, width, height, border, len(slice)*size_of(E), raw_data(slice)) } -CompressedTexSubImage2DSlice :: proc "c" (target: Enum, level: i32, xoffset, yoffset, width, height: i32, format: Enum, slice: $S/[]$E) { +CompressedTexSubImage2DSlice :: proc "contextless" (target: Enum, level: i32, xoffset, yoffset, width, height: i32, format: Enum, slice: $S/[]$E) { CompressedTexSubImage2DSlice(target, level, level, xoffset, yoffset, width, height, format, len(slice)*size_of(E), raw_data(slice)) } -ReadPixelsSlice :: proc "c" (x, y, width, height: i32, format: Enum, type: Enum, slice: $S/[]$E) { +ReadPixelsSlice :: proc "contextless" (x, y, width, height: i32, format: Enum, type: Enum, slice: $S/[]$E) { ReadnPixels(x, y, width, height, format, type, len(slice)*size_of(E), raw_data(slice)) } -TexImage2DSlice :: proc "c" (target: Enum, level: i32, internalformat: Enum, width, height: i32, border: i32, format, type: Enum, slice: $S/[]$E) { +TexImage2DSlice :: proc "contextless" (target: Enum, level: i32, internalformat: Enum, width, height: i32, border: i32, format, type: Enum, slice: $S/[]$E) { TexImage2D(target, level, internalformat, width, height, border, format, type, len(slice)*size_of(E), raw_data(slice)) } -TexSubImage2DSlice :: proc "c" (target: Enum, level: i32, xoffset, yoffset, width, height: i32, format, type: Enum, slice: $S/[]$E) { +TexSubImage2DSlice :: proc "contextless" (target: Enum, level: i32, xoffset, yoffset, width, height: i32, format, type: Enum, slice: $S/[]$E) { TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, len(slice)*size_of(E), raw_data(slice)) } \ No newline at end of file diff --git a/vendor/wasm/WebGL/webgl2.odin b/vendor/wasm/WebGL/webgl2.odin index a1d55b703..d360bc396 100644 --- a/vendor/wasm/WebGL/webgl2.odin +++ b/vendor/wasm/WebGL/webgl2.odin @@ -10,13 +10,13 @@ Sync :: distinct u32 TransformFeedback :: distinct u32 VertexArrayObject :: distinct u32 -IsWebGL2Supported :: proc "c" () -> bool { +IsWebGL2Supported :: proc "contextless" () -> bool { major, minor: i32 GetWebGLVersion(&major, &minor) return major >= 2 } -@(default_calling_convention="c") +@(default_calling_convention="contextless") foreign webgl2 { /* Buffer objects */ CopyBufferSubData :: proc(readTarget, writeTarget: Enum, readOffset, writeOffset: int, size: int) --- @@ -110,7 +110,7 @@ foreign webgl2 { GetActiveUniformBlockName :: proc(program: Program, uniformBlockIndex: i32, buf: []byte) -> string { foreign webgl2 { - _GetActiveUniformBlockName :: proc(program: Program, uniformBlockIndex: i32, buf: []byte, length: ^int) --- + _GetActiveUniformBlockName :: proc "contextless" (program: Program, uniformBlockIndex: i32, buf: []byte, length: ^int) --- } n: int _GetActiveUniformBlockName(program, uniformBlockIndex, buf, &n) @@ -118,65 +118,65 @@ GetActiveUniformBlockName :: proc(program: Program, uniformBlockIndex: i32, buf: } -Uniform1uiv :: proc "c" (location: i32, v: u32) { +Uniform1uiv :: proc "contextless" (location: i32, v: u32) { Uniform1ui(location, v) } -Uniform2uiv :: proc "c" (location: i32, v: glm.uvec2) { +Uniform2uiv :: proc "contextless" (location: i32, v: glm.uvec2) { Uniform2ui(location, v.x, v.y) } -Uniform3uiv :: proc "c" (location: i32, v: glm.uvec3) { +Uniform3uiv :: proc "contextless" (location: i32, v: glm.uvec3) { Uniform3ui(location, v.x, v.y, v.z) } -Uniform4uiv :: proc "c" (location: i32, v: glm.uvec4) { +Uniform4uiv :: proc "contextless" (location: i32, v: glm.uvec4) { Uniform4ui(location, v.x, v.y, v.z, v.w) } -UniformMatrix3x2fv :: proc "c" (location: i32, m: glm.mat3x2) { +UniformMatrix3x2fv :: proc "contextless" (location: i32, m: glm.mat3x2) { foreign webgl2 { - _UniformMatrix3x2fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix3x2fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix3x2fv(location, &array[0]) } -UniformMatrix4x2fv :: proc "c" (location: i32, m: glm.mat4x2) { +UniformMatrix4x2fv :: proc "contextless" (location: i32, m: glm.mat4x2) { foreign webgl2 { - _UniformMatrix4x2fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix4x2fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix4x2fv(location, &array[0]) } -UniformMatrix2x3fv :: proc "c" (location: i32, m: glm.mat2x3) { +UniformMatrix2x3fv :: proc "contextless" (location: i32, m: glm.mat2x3) { foreign webgl2 { - _UniformMatrix2x3fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix2x3fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix2x3fv(location, &array[0]) } -UniformMatrix4x3fv :: proc "c" (location: i32, m: glm.mat4x3) { +UniformMatrix4x3fv :: proc "contextless" (location: i32, m: glm.mat4x3) { foreign webgl2 { - _UniformMatrix4x3fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix4x3fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix4x3fv(location, &array[0]) } -UniformMatrix2x4fv :: proc "c" (location: i32, m: glm.mat2x4) { +UniformMatrix2x4fv :: proc "contextless" (location: i32, m: glm.mat2x4) { foreign webgl2 { - _UniformMatrix2x4fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix2x4fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix2x4fv(location, &array[0]) } -UniformMatrix3x4fv :: proc "c" (location: i32, m: glm.mat3x4) { +UniformMatrix3x4fv :: proc "contextless" (location: i32, m: glm.mat3x4) { foreign webgl2 { - _UniformMatrix3x4fv :: proc "c" (location: i32, addr: [^]f32) --- + _UniformMatrix3x4fv :: proc "contextless" (location: i32, addr: [^]f32) --- } array := matrix_flatten(m) _UniformMatrix3x4fv(location, &array[0]) } -VertexAttribI4iv :: proc "c" (index: i32, v: glm.ivec4) { +VertexAttribI4iv :: proc "contextless" (index: i32, v: glm.ivec4) { VertexAttribI4i(index, v.x, v.y, v.z, v.w) } -VertexAttribI4uiv :: proc "c" (index: i32, v: glm.uvec4) { +VertexAttribI4uiv :: proc "contextless" (index: i32, v: glm.uvec4) { VertexAttribI4ui(index, v.x, v.y, v.z, v.w) }