フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 流行るかなぁ・・・ | トップページ | 今週は »

2007.06.25

PCとPocketPCの違い

公開したDirect3D Mobileのサンプルの話ですが、PC版のDirect3DとDirect3D Mobileでは同じインターフェイスでもフラグとかが結構違うんですよね。

たとえば、テクスチャや頂点バッファなんかのPOOLなんかでD3DMPOOL_MANAGEDなんかは実機では通らない感じで、D3DMPOOL_SYSTEMMEMなんかで明示的にシステムRAMに置く感じですね。

あと、今回エミュレータと実機での違いで頭を悩ませたのが、D3DMUSAGE_LOCKABLEですね(こういうフラグは、PCのDirect3Dは無い)。Direct3D Mobileでは、ロック可能なテクスチャには明示的にこのフラグを生成時に入れてやる必要があるようですが、これはエミュレータでは通りますが、実機では通りませんでした。

これが通らないとテクスチャからサーフェイスを取り出して、GetDCも通りません。そんなわけで、実機ではもう一枚サーフェイスを作ってCopyRectしてあげています。これは通るようです。ただ、LOCKABLEを指定したテクスチャはエミュレータ上ではCopyRectが通らなかったですね。

あと、Direct3D Mobileはたいていの機種がソフトウェアで動かすわけ(もしくは、VRAMがない)ですが、Intel製チップ(XScale.今はIntel製じゃないか)とSamsung製では使える深度 / ステンシルバッファのフォーマットが違います(XScaleはステンシルバッファが使えない)。

具体的には、ソフトバンクモバイルのX01HTとウィルコムのW-ZERO3シリーズでは、こまめにCapsなんかを確認した方がいいですね。

« 流行るかなぁ・・・ | トップページ | 今週は »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 流行るかなぁ・・・ | トップページ | 今週は »