- これだけ読んどけ
- とは何か?
- WebAssembly のコンセプト - WebAssembly | MDN
-
Emscripten は SDL、 OpenGL、 OpenAL および POSIX の一部といった主な C/C++ ライブラリを組み込みます。
-
- WebAssembly のコンセプト - WebAssembly | MDN
- ハウツー
- システムコールは模倣されているものもあれば完全ダミーのもの、未実装のものも
- 当然ながらVC++のコードは変換できない
- 主要プレイヤーがWebAssemblyに向けて足並みを揃え盛り上がった2015年エモい感じの記事
- libpngをemscriptenでコンパイルしてJSから使う - Qiita
- [OpenCV][WebAssembly]ブラウザで2画像の特徴量比較してみる - Qiita
- EmscriptenのOpenGLと純粋なWebGLと共存させる黒魔術 // Speaker Deck
フカシギの数え方 できるか
em++ fukashigi_dfs.cpp -s WASM=1 -o fukashigi_dfs.html -std=c++11 -O3
Emscriptenでできるはできた。 が、このテンプレートを変形して純粋にwasm内の関数呼んだりするのがめちゃくちゃハードル高い。 Emscriptenが魔術じみている。 main()を呼ぶコードを吐いているようだが、そこにコマンドライン引数を渡す方法が読み切れていない。 エクスポートした関数を呼び出したかったが時間切れ。 WebAssembly.instantiate()の第2引数がオプションかと思ったら必須で、これに渡すオブジェクトに何を詰めればいいか不明。 コンパイラ次第とか言われても… wasm内では「JSのこの値・関数を渡してくれ!」って待ち構えてるらしく、対応するものをwasmにインポートしてやらないといけない。 Emscriptenはコンパイル段階でそれを把握してて、自動生成したコード内で渡すものを構築してる。 中身何が入ってるのか見てみたら山ほどプロパティがあって人間には無理だと悟った。 (そこだけ構築するコード吐いてくれればいいのに)