opengl:emscripten
目次
Emscripten
Emscripten
Blog 記事
WebGL Extensions (Emscripten)
OS毎、ブラウザごと、GPU ごとのデータ
Install 手順
Windows/Mac OS X
emsdk command を使って package の install と更新を行う。
- Windows の場合 C:/Program Files/Emscripten/emsdk.bat
$ emsdk update $ emsdk list $ emsdk install sdk-1.27.0-64bit
Linux
上記手順に従い install
2015/01/10 現在の手順の一例 (Ubuntu14.10)
$ cd $ sudo apt-get update $ sudo apt-get install python2.7 nodejs build-essential cmake git-core default-jre $ mkdir emscripten $ cd emscripten $ git clone https://github.com/kripken/emscripten-fastcomp $ cd emscripten-fastcomp $ git clone https://github.com/kripken/emscripten-fastcomp-clang tools/clang $ mkdir build $ cd build $ ../configure --enable-optimized --disable-assertions --enable-targets=host,js $ make -j $ cd ../.. $ git clone https://github.com/kripken/emscripten.git $ cd emscripten $ ./emcc
~/.emscripten を編集して LLVM_ROOT= に emscripten-fastcomp/build/Release/bin を追加
LLVM_ROOT = os.path.expanduser(os.getenv('LLVM') or '/home/user_name/emscripten/emscripten-fastcomp/build/Release/bin')
emscripten/emscripten にパスを通す
Debug のための設定メモ
実行
--preload-file のデータが読めない
preload file は xhr なのでローカルサーバーを立ててブラウザからアクセスする必要あり。 –embed-file なら js に埋め込むのでどの方法でもアクセスできる。
コード生成
Null ポインタアクセスがエラーにならない
- コンパイル時 ( js 生成時) に -s SAFE_HEAP=1 を付ける。
- メモリアクセスのたびにアドレスチェックが入るため、動作速度は大きく落ちる。
Heap メモリが足りない
- コンパイル時 ( js 生成時) に -s TOTAL_MEMORY= で指定する。byte 単位。
- これは HEAP サイズではなく、仮想マシンの全メモリ空間 (搭載 RAM 容量) に相当する。ただし JavaScript Heap は含まない。
- デフォルトは 16MB
Stack が足りない
- コンパイル時 ( js 生成時) に -s TOTAL_STACK= で指定する。byte 単位。
- TOTAL_MEMORY から確保されるので注意。必ず TOTAL_MEMORY > TOTAL_STACK でなければならない。
- デフォルトは 5MB
ブラウザ
Firefox の Console Log を増やす
- URL に “about:config”
- devtools.hud.loglimit.console の値を増やす
Android Firefox の Remote Debug
- adb で接続
- Android Firefox の Menu → 設定 → デベロッパーツール → リモートデバッグ を ON
- HOST PC の Firefox で Menu → 開発ツール → 開発ツールを表示 → 開発ツールパネルの左上の歯車アイコン → 「リモートデバッガを有効」にチェックを入れる
- HOST PC で「 adb forward tcp:6000 tcp:6000 」
- HOST PC の Firefox で Menu → 開発ツール → 接続 → [接続]
- Android 側に dialog が出るので [OK]
- HOST PC の Firefox で接続する Tab を選択
Android Chrome の Remote Debug
- adb で接続
- HOST PC 側 Chrome で “chrome:inspect”
opengl/emscripten.txt · 最終更新: 2015/01/11 01:51 by oga