【发布时间】:2020-05-07 13:18:47
【问题描述】:
通过使用以下选项进行编译,
emcc -s WASM=1 main.cpp -o index.js
emscripten 生成一个 index.wasm 和一个 js 包装器 index.js。
js 包装器加载位于同一目录中的.wasm 文件,在浏览器中运行时使用XMLHttpRequest。
如果我需要手动加载.wasm 文件怎么办?加载部分在包装器中似乎是硬编码的。
以下是我需要这个的一些情况:
- 我需要从另一个网址(例如来自 CDN)提供
.wasm文件。 - 下载
.wasm文件的url是动态生成的。 - 代码在沙箱中运行,不允许
XMLHttpRequest,只有getMyData('some_file')之类的API。 - 我需要将所有文件嵌入为 base64 字符串。
我知道我只能通过
生成.wasm文件
emcc -s WASM=1 main.cpp -o index.wasm
但随后我丢失了包装器,这在使用 SDL 和 GLES 等一些 emscripten API 时并非易事。
【问题讨论】:
-
您支持的最旧的浏览器是什么?如果您的浏览器支持 XHR 限制,则可以绕过它
-
@AnthumChris 这不是一个典型的浏览器,它是一个沙盒环境,您的文件只能通过给定的 API 加载。
标签: javascript webassembly emscripten