2008年8月17日日曜日

ape 0.45 for midp2.0 (4)

  • 今日はオフでしたが、家に帰ってからも続行。
  • 実機でフリーズしている原因をさぐる。どうやら画面外のオブジェクトを描画しているところで固まっていることがいろいろ試して判明。
  • でさらに調べると画面上にひとつ大きな円があり、これが原因になっている。円を小さくしてとりあえず解決はした。うーん。なんだろう。かきこんじゃいけないvramにとか、そんなjavaらしくない理由かなあと悩む。
  • pcで動いているものの移植だが、最終的に12fpsを割った。これはいかんねと思いプロファイラを動かす。
  • 今までは物理計算八割で、描画コストが二割という関係で物理計算のループとかアクセッサの省略とかそんなことをしていだのだが。今回のプロファイルは描画5:演算5と出た。
  • で見て見ると円を書くために利用していた、drawArcが14.59%という数値を出してくれている。えー。
  • ここで謎がとけた気がする(;´Д`)
  • drawArcは内部的に猛烈な勢いで点を打つか線をひくかする関数なわけだが、いままでは円の半径がせいぜい10pxとかそんなので問題なかったのが300pxとかになってそこで描画できなくなったものなのではなかろうか。おそらく点をうっていて半径300pxの円を描画するには600πの点を→ファブリーズ?
  • つまりvramとか関係ありませんね。たんに半径300pxの円は関数の性能的に無理なわけだ。
  • midp2.0だとdibみたいなものが使えるので描画関数全部用意したうえで、それ経由で画面作った方がいいのかなあ(;´Д`)でもそれで早くなっても他の携帯ではやくなる補償もないよねえ

0 件のコメント:

コメントを投稿