|
昨日のカウンタ: 今日のカウンタ: |
java.awt.imageの特にBufferedImageがあると喜んでいたのですが、なかなかの食わせものでした。getRasterがないので嫌な予感はあったのですがgetRGB, setRGBを使ってみたら遅い遅い。Symbian v.9ではどうもOSレベルでは32ビットカラー(ハードウェアでは18bitカラーとのソース不明の情報も)であるのに、なぜかCDC/CLDCでは16ビットカラーのようです。
ですからgetRGB/setRGBを使うと32bit(アプリケーション) -- 16bit(JVM?) -- 32bit(OS) (-- 18bit(ハードウェア)) という無駄な変換が生じているのかも知れません。とにかく全画面(QVGA)の情報をgetRGB/setRGBで変更しようとするととんでもなく時間がかかります。
ラスター処理自身はそれほどでも。やっぱりCPUが早いせいでしょうか。
あと、CDCはJDK1.2相当とか言いつつ、java.awt.Graphics2Dで幅の太い線でdrawLineできなかったり、draw(Stroke)もなかったりで、上のBufferedImageの使えなさ加減もあいまって、JDK1.2相当なんて詐欺だーっ、って気分です。
それならいっそCLDC MIDPならcom.nokia.mid.ui.DirectGraphicsとかってのがあるから、ひょっとしたらまだマシかなと思わなくもなかったり。試してすらいないんですが。
まだ準備始めたばかりです。今回は飛行機に乗ってる時間が短かいので、飛行機の中で準備するという裏技が使えない上に、出発する前日まで連日残業の可能性大です。どうなりますか。
ラスター操作の前段階として、デフォルトのカラーモデルを調べてみました。実機はARGB 4444でシミュレーターはRGB 888だそうです。ま、シミュレーターはS60一般のものなので違ってのは仕方ありませんが。しかしM600iのCanvasクラスでのカラーモデルは4096色しか出ないって事だとするとちょっと残念な気も。ゲームを作るためのクラスなんでしょうかね。