summaryrefslogtreecommitdiffstats
path: root/platform/javascript/js/libs/library_godot_runtime.js
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2021-03-03 15:58:28 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2021-03-05 20:17:58 +0100
commit44a662a1494388c2a7c7ac0a184497569e59867b (patch)
treee348890d9f256e8f03a05f1164ccd4a08511ca69 /platform/javascript/js/libs/library_godot_runtime.js
parentcb1b89dac5b9a73612ccf8f61dfcc9d55c9ad598 (diff)
downloadredot-engine-44a662a1494388c2a7c7ac0a184497569e59867b.tar.gz
[HTML5] Rename heapCopy to heapSlice.
New heapCopy function copies a TypedArray to the heap.
Diffstat (limited to 'platform/javascript/js/libs/library_godot_runtime.js')
-rw-r--r--platform/javascript/js/libs/library_godot_runtime.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/platform/javascript/js/libs/library_godot_runtime.js b/platform/javascript/js/libs/library_godot_runtime.js
index 7e36ff8ab5..3da1ed8f06 100644
--- a/platform/javascript/js/libs/library_godot_runtime.js
+++ b/platform/javascript/js/libs/library_godot_runtime.js
@@ -72,11 +72,16 @@ const GodotRuntime = {
return p_heap.subarray(p_ptr / bytes, p_ptr / bytes + p_len);
},
- heapCopy: function (p_heap, p_ptr, p_len) {
+ heapSlice: function (p_heap, p_ptr, p_len) {
const bytes = p_heap.BYTES_PER_ELEMENT;
return p_heap.slice(p_ptr / bytes, p_ptr / bytes + p_len);
},
+ heapCopy: function (p_dst, p_src, p_ptr) {
+ const bytes = p_src.BYTES_PER_ELEMENT;
+ return p_dst.set(p_src, p_ptr / bytes);
+ },
+
/*
* Strings
*/
@@ -84,6 +89,15 @@ const GodotRuntime = {
return UTF8ToString(p_ptr); // eslint-disable-line no-undef
},
+ parseStringArray: function (p_ptr, p_size) {
+ const strings = [];
+ const ptrs = GodotRuntime.heapSub(HEAP32, p_ptr, p_size); // TODO wasm64
+ ptrs.forEach(function (ptr) {
+ strings.push(GodotRuntime.parseString(ptr));
+ });
+ return strings;
+ },
+
strlen: function (p_str) {
return lengthBytesUTF8(p_str); // eslint-disable-line no-undef
},