mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Merge pull request #2978 from thetarnav/patch-2
Many small typos and fixes to wasm bindings
This commit is contained in:
Vendored
+1
@@ -117,6 +117,7 @@ foreign webgl {
|
|||||||
Hint :: proc(target: Enum, mode: Enum) ---
|
Hint :: proc(target: Enum, mode: Enum) ---
|
||||||
|
|
||||||
IsBuffer :: proc(buffer: Buffer) -> bool ---
|
IsBuffer :: proc(buffer: Buffer) -> bool ---
|
||||||
|
IsEnabled :: proc(cap: Enum) -> bool ---
|
||||||
IsFramebuffer :: proc(framebuffer: Framebuffer) -> bool ---
|
IsFramebuffer :: proc(framebuffer: Framebuffer) -> bool ---
|
||||||
IsProgram :: proc(program: Program) -> bool ---
|
IsProgram :: proc(program: Program) -> bool ---
|
||||||
IsRenderbuffer :: proc(renderbuffer: Renderbuffer) -> bool ---
|
IsRenderbuffer :: proc(renderbuffer: Renderbuffer) -> bool ---
|
||||||
|
|||||||
Vendored
+2
-2
@@ -70,7 +70,7 @@ window_get_scroll :: proc "contextless" () -> (x, y: f64) {
|
|||||||
@(link_name="window_get_scroll")
|
@(link_name="window_get_scroll")
|
||||||
_window_get_scroll :: proc(scroll: ^[2]f64) ---
|
_window_get_scroll :: proc(scroll: ^[2]f64) ---
|
||||||
}
|
}
|
||||||
scroll := [2]f64{x, y}
|
scroll: [2]f64
|
||||||
_window_get_scroll(&scroll)
|
_window_get_scroll(&scroll)
|
||||||
return
|
return scroll.x, scroll.y
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -24,7 +24,7 @@ page_allocator :: proc() -> mem.Allocator {
|
|||||||
case .Alloc, .Alloc_Non_Zeroed:
|
case .Alloc, .Alloc_Non_Zeroed:
|
||||||
assert(size % PAGE_SIZE == 0)
|
assert(size % PAGE_SIZE == 0)
|
||||||
return page_alloc(size/PAGE_SIZE)
|
return page_alloc(size/PAGE_SIZE)
|
||||||
case .Resize, .Free, .Free_All, .Query_Info:
|
case .Resize, .Free, .Free_All, .Query_Info, .Resize_Non_Zeroed:
|
||||||
return nil, .Mode_Not_Implemented
|
return nil, .Mode_Not_Implemented
|
||||||
case .Query_Features:
|
case .Query_Features:
|
||||||
set := (^mem.Allocator_Mode_Set)(old_memory)
|
set := (^mem.Allocator_Mode_Set)(old_memory)
|
||||||
|
|||||||
Vendored
+28
-27
@@ -13,6 +13,8 @@ function stripNewline(str) {
|
|||||||
return str.replace(/\n/, ' ')
|
return str.replace(/\n/, ' ')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const STRING_SIZE = 2*4;
|
||||||
|
|
||||||
class WasmMemoryInterface {
|
class WasmMemoryInterface {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.memory = null;
|
this.memory = null;
|
||||||
@@ -204,7 +206,6 @@ class WebGLInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
getSource(shader, strings_ptr, strings_length) {
|
getSource(shader, strings_ptr, strings_length) {
|
||||||
const STRING_SIZE = 2*4;
|
|
||||||
let source = "";
|
let source = "";
|
||||||
for (let i = 0; i < strings_length; i++) {
|
for (let i = 0; i < strings_length; i++) {
|
||||||
let ptr = this.mem.loadPtr(strings_ptr + i*STRING_SIZE);
|
let ptr = this.mem.loadPtr(strings_ptr + i*STRING_SIZE);
|
||||||
@@ -395,7 +396,7 @@ class WebGLInterface {
|
|||||||
this.ctx.copyTexImage2D(target, level, internalformat, x, y, width, height, border);
|
this.ctx.copyTexImage2D(target, level, internalformat, x, y, width, height, border);
|
||||||
},
|
},
|
||||||
CopyTexSubImage2D: (target, level, xoffset, yoffset, x, y, width, height) => {
|
CopyTexSubImage2D: (target, level, xoffset, yoffset, x, y, width, height) => {
|
||||||
this.ctx.copyTexImage2D(target, level, xoffset, yoffset, x, y, width, height);
|
this.ctx.copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@@ -538,8 +539,8 @@ class WebGLInterface {
|
|||||||
Flush: () => {
|
Flush: () => {
|
||||||
this.ctx.flush();
|
this.ctx.flush();
|
||||||
},
|
},
|
||||||
FramebufferRenderBuffer: (target, attachment, renderbuffertarget, renderbuffer) => {
|
FramebufferRenderbuffer: (target, attachment, renderbuffertarget, renderbuffer) => {
|
||||||
this.ctx.framebufferRenderBuffer(target, attachment, renderbuffertarget, this.renderbuffers[renderbuffer]);
|
this.ctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, this.renderbuffers[renderbuffer]);
|
||||||
},
|
},
|
||||||
FramebufferTexture2D: (target, attachment, textarget, texture, level) => {
|
FramebufferTexture2D: (target, attachment, textarget, texture, level) => {
|
||||||
this.ctx.framebufferTexture2D(target, attachment, textarget, this.textures[texture], level);
|
this.ctx.framebufferTexture2D(target, attachment, textarget, this.textures[texture], level);
|
||||||
@@ -645,7 +646,7 @@ class WebGLInterface {
|
|||||||
|
|
||||||
|
|
||||||
IsBuffer: (buffer) => this.ctx.isBuffer(this.buffers[buffer]),
|
IsBuffer: (buffer) => this.ctx.isBuffer(this.buffers[buffer]),
|
||||||
IsEnabled: (enabled) => this.ctx.isEnabled(this.enableds[enabled]),
|
IsEnabled: (cap) => this.ctx.isEnabled(cap),
|
||||||
IsFramebuffer: (framebuffer) => this.ctx.isFramebuffer(this.framebuffers[framebuffer]),
|
IsFramebuffer: (framebuffer) => this.ctx.isFramebuffer(this.framebuffers[framebuffer]),
|
||||||
IsProgram: (program) => this.ctx.isProgram(this.programs[program]),
|
IsProgram: (program) => this.ctx.isProgram(this.programs[program]),
|
||||||
IsRenderbuffer: (renderbuffer) => this.ctx.isRenderbuffer(this.renderbuffers[renderbuffer]),
|
IsRenderbuffer: (renderbuffer) => this.ctx.isRenderbuffer(this.renderbuffers[renderbuffer]),
|
||||||
@@ -669,7 +670,7 @@ class WebGLInterface {
|
|||||||
|
|
||||||
|
|
||||||
ReadnPixels: (x, y, width, height, format, type, bufSize, data) => {
|
ReadnPixels: (x, y, width, height, format, type, bufSize, data) => {
|
||||||
this.ctx.readPixels(x, y, width, format, type, this.mem.loadBytes(data, bufSize));
|
this.ctx.readPixels(x, y, width, height, format, type, this.mem.loadBytes(data, bufSize));
|
||||||
},
|
},
|
||||||
RenderbufferStorage: (target, internalformat, width, height) => {
|
RenderbufferStorage: (target, internalformat, width, height) => {
|
||||||
this.ctx.renderbufferStorage(target, internalformat, width, height);
|
this.ctx.renderbufferStorage(target, internalformat, width, height);
|
||||||
@@ -735,11 +736,11 @@ class WebGLInterface {
|
|||||||
|
|
||||||
UniformMatrix2fv: (location, addr) => {
|
UniformMatrix2fv: (location, addr) => {
|
||||||
let array = this.mem.loadF32Array(addr, 2*2);
|
let array = this.mem.loadF32Array(addr, 2*2);
|
||||||
this.ctx.uniformMatrix4fv(this.uniforms[location], false, array);
|
this.ctx.uniformMatrix2fv(this.uniforms[location], false, array);
|
||||||
},
|
},
|
||||||
UniformMatrix3fv: (location, addr) => {
|
UniformMatrix3fv: (location, addr) => {
|
||||||
let array = this.mem.loadF32Array(addr, 3*3);
|
let array = this.mem.loadF32Array(addr, 3*3);
|
||||||
this.ctx.uniformMatrix4fv(this.uniforms[location], false, array);
|
this.ctx.uniformMatrix3fv(this.uniforms[location], false, array);
|
||||||
},
|
},
|
||||||
UniformMatrix4fv: (location, addr) => {
|
UniformMatrix4fv: (location, addr) => {
|
||||||
let array = this.mem.loadF32Array(addr, 4*4);
|
let array = this.mem.loadF32Array(addr, 4*4);
|
||||||
@@ -791,7 +792,7 @@ class WebGLInterface {
|
|||||||
/* Framebuffer objects */
|
/* Framebuffer objects */
|
||||||
BlitFramebuffer: (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) => {
|
BlitFramebuffer: (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
this.ctx.glitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
|
this.ctx.blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
|
||||||
},
|
},
|
||||||
FramebufferTextureLayer: (target, attachment, texture, level, layer) => {
|
FramebufferTextureLayer: (target, attachment, texture, level, layer) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
@@ -822,7 +823,7 @@ class WebGLInterface {
|
|||||||
|
|
||||||
TexStorage3D: (target, levels, internalformat, width, height, depth) => {
|
TexStorage3D: (target, levels, internalformat, width, height, depth) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
this.ctx.texStorage3D(target, level, internalformat, width, heigh, depth);
|
this.ctx.texStorage3D(target, levels, internalformat, width, height, depth);
|
||||||
},
|
},
|
||||||
TexImage3D: (target, level, internalformat, width, height, depth, border, format, type, size, data) => {
|
TexImage3D: (target, level, internalformat, width, height, depth, border, format, type, size, data) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
@@ -855,7 +856,7 @@ class WebGLInterface {
|
|||||||
|
|
||||||
CopyTexSubImage3D: (target, level, xoffset, yoffset, zoffset, x, y, width, height) => {
|
CopyTexSubImage3D: (target, level, xoffset, yoffset, zoffset, x, y, width, height) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
this.ctx.copyTexImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
|
this.ctx.copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Programs and shaders */
|
/* Programs and shaders */
|
||||||
@@ -982,10 +983,10 @@ class WebGLInterface {
|
|||||||
},
|
},
|
||||||
DeleteQuery: (id) => {
|
DeleteQuery: (id) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
let obj = this.querys[id];
|
let obj = this.queries[id];
|
||||||
if (obj && id != 0) {
|
if (obj && id != 0) {
|
||||||
this.ctx.deleteQuery(obj);
|
this.ctx.deleteQuery(obj);
|
||||||
this.querys[id] = null;
|
this.queries[id] = null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
IsQuery: (query) => {
|
IsQuery: (query) => {
|
||||||
@@ -1038,7 +1039,7 @@ class WebGLInterface {
|
|||||||
},
|
},
|
||||||
BindSampler: (unit, sampler) => {
|
BindSampler: (unit, sampler) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
this.ctx.bindSampler(unit, this.samplers[Sampler]);
|
this.ctx.bindSampler(unit, this.samplers[sampler]);
|
||||||
},
|
},
|
||||||
SamplerParameteri: (sampler, pname, param) => {
|
SamplerParameteri: (sampler, pname, param) => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
@@ -1083,7 +1084,7 @@ class WebGLInterface {
|
|||||||
/* Transform Feedback */
|
/* Transform Feedback */
|
||||||
CreateTransformFeedback: () => {
|
CreateTransformFeedback: () => {
|
||||||
this.assertWebGL2();
|
this.assertWebGL2();
|
||||||
let transformFeedback = this.ctx.createtransformFeedback();
|
let transformFeedback = this.ctx.createTransformFeedback();
|
||||||
let id = this.getNewId(this.transformFeedbacks);
|
let id = this.getNewId(this.transformFeedbacks);
|
||||||
transformFeedback.name = id;
|
transformFeedback.name = id;
|
||||||
this.transformFeedbacks[id] = transformFeedback;
|
this.transformFeedbacks[id] = transformFeedback;
|
||||||
@@ -1451,11 +1452,11 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
|
|||||||
wmi.storeF64(off(8), e.deltaY);
|
wmi.storeF64(off(8), e.deltaY);
|
||||||
wmi.storeF64(off(8), e.deltaZ);
|
wmi.storeF64(off(8), e.deltaZ);
|
||||||
wmi.storeU32(off(4), e.deltaMode);
|
wmi.storeU32(off(4), e.deltaMode);
|
||||||
} else if (e instanceof Event) {
|
} else if (e.type === 'scroll') {
|
||||||
if ('scrollX' in e) {
|
wmi.storeF64(off(8), window.scrollX);
|
||||||
wmi.storeF64(off(8), e.scrollX);
|
wmi.storeF64(off(8), window.scrollY);
|
||||||
wmi.storeF64(off(8), e.scrollY);
|
} else if (e.type === 'visibilitychange') {
|
||||||
}
|
wmi.storeU8(off(1), !document.hidden);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1529,12 +1530,12 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
|
|||||||
|
|
||||||
event_stop_propagation: () => {
|
event_stop_propagation: () => {
|
||||||
if (event_temp_data && event_temp_data.event) {
|
if (event_temp_data && event_temp_data.event) {
|
||||||
event_temp_data.event.eventStopPropagation();
|
event_temp_data.event.stopPropagation();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
event_stop_immediate_propagation: () => {
|
event_stop_immediate_propagation: () => {
|
||||||
if (event_temp_data && event_temp_data.event) {
|
if (event_temp_data && event_temp_data.event) {
|
||||||
event_temp_data.event.eventStopImmediatePropagation();
|
event_temp_data.event.stopImmediatePropagation();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
event_prevent_default: () => {
|
event_prevent_default: () => {
|
||||||
@@ -1547,9 +1548,9 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
|
|||||||
let id = wasmMemoryInterface.loadString(id_ptr, id_len);
|
let id = wasmMemoryInterface.loadString(id_ptr, id_len);
|
||||||
let name = wasmMemoryInterface.loadString(name_ptr, name_len);
|
let name = wasmMemoryInterface.loadString(name_ptr, name_len);
|
||||||
let options = {
|
let options = {
|
||||||
bubbles: (options_bits & (1<<0)) !== 0,
|
bubbles: (options_bits & (1<<0)) !== 0,
|
||||||
cancelabe: (options_bits & (1<<1)) !== 0,
|
cancelable: (options_bits & (1<<1)) !== 0,
|
||||||
composed: (options_bits & (1<<2)) !== 0,
|
composed: (options_bits & (1<<2)) !== 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
let element = getElement(id);
|
let element = getElement(id);
|
||||||
@@ -1603,7 +1604,7 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
|
|||||||
element.value = value;
|
element.value = value;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
set_element_value_string: (id_ptr, id_len, value_ptr, value_id) => {
|
set_element_value_string: (id_ptr, id_len, value_ptr, value_len) => {
|
||||||
let id = wasmMemoryInterface.loadString(id_ptr, id_len);
|
let id = wasmMemoryInterface.loadString(id_ptr, id_len);
|
||||||
let value = wasmMemoryInterface.loadString(value_ptr, value_len);
|
let value = wasmMemoryInterface.loadString(value_ptr, value_len);
|
||||||
let element = getElement(id);
|
let element = getElement(id);
|
||||||
@@ -1707,4 +1708,4 @@ window.odin = {
|
|||||||
setupDefaultImports: odinSetupDefaultImports,
|
setupDefaultImports: odinSetupDefaultImports,
|
||||||
runWasm: runWasm,
|
runWasm: runWasm,
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user