あるアプリ開発でのこと。特定の実機に特化していて、エミュレータで動かすとクラッシュするんですね。android studioで編集、RUNしてから、実機で動くまで、1〜2分かかります。
Java部分の間違いは、android stuidoがシンタックスエラーを表示してくれますし、コンパイルエラーになるので、すぐにわかります。
GPUImageFilterのシェーダは、編集して、RUNして、実機で動かして、画面が黒い、LogCatを見て、シンタックスエラーに気づきます。2分ぐらい待って、セミコロンを忘れた、とがっかりします。
それはさておき、画像の変形のロジックやパラメータ調整をするのに、Javaソースやシェーダソースのどこかを編集しては、2分待つのが、まどろっこしいです。
そこで、HTMLのCanvasにJavaScriptで描画して、ロジック確認していました。
ところが、どうも期待どおりの描画になりません。console.logすると、10万ピクセル以上の量なので、ブラウザが固まってしまいます。
きりのいい値にする、ピクセル数を減らす、プログラムの行を減らす、さまよった結果、ようやく原因がわかりました。カッコ忘れでした。
// 間違い
x = (a + b) * c;
// 正しい
x = a + b * c;
Code language: JavaScript (javascript)