opengl:emscripten
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
opengl:emscripten [2014/05/24 22:55] – [Blog 記事] oga | opengl:emscripten [2015/01/10 21:11] – [Linux] oga | ||
---|---|---|---|
行 16: | 行 16: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
行 24: | 行 31: | ||
* [[opengl: | * [[opengl: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Install 手順 ===== | ||
+ | |||
+ | ==== Windows/Mac OS X ==== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | emsdk command を使って package の install と更新を行う。 | ||
+ | |||
+ | * Windows の場合 C:/Program Files/ | ||
+ | * emsdk.bat list | ||
+ | |||
+ | |||
+ | ==== Linux ==== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | 上記手順に従い install | ||
+ | |||
+ | 2015/01/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:// | ||
+ | $ cd emscripten-fastcomp | ||
+ | $ git clone https:// | ||
+ | $ mkdir build | ||
+ | $ cd build | ||
+ | $ ../ | ||
+ | $ make -j | ||
+ | $ cd ../.. | ||
+ | $ git clone https:// | ||
+ | $ cd emscripten | ||
+ | $ ./emcc | ||
+ | </ | ||
+ | |||
+ | ~/ | ||
+ | |||
+ | < | ||
+ | LLVM_ROOT = os.path.expanduser(os.getenv(' | ||
+ | </ | ||
+ | |||
+ | 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 に " | ||
+ | - devtools.hud.loglimit.console の値を増やす | ||
+ | |||
+ | |||
+ | |||
+ | === Android Firefox の Remote Debug === | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | - 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 === | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | - adb で接続 | ||
+ | - HOST PC 側 Chrome で " | ||
+ | |||
opengl/emscripten.txt · 最終更新: 2015/01/11 01:51 by oga