■吉里吉里/KAG/TJS雑談質問スレ■その17at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その17 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト228:名前は開発中のものです。 09/03/08 17:22:04 5QzPfy2V >>227 >レイヤのピクセルデータをDirect3Dのテクスチャで持っておいて、更新時にレンダーターゲットに合成とか iTVPLayerManagerはそのための処理を抽象化した機構だぞっと iTVPLayerManager 経由で吉里吉里側で把握してる更新領域分のビットマップだけを送り込んでくれるようになってる。 ただし、吉里吉里側の設計上、drawdevice におくりこんで制御できるのは、子レイヤの合成を全部把握してる primaryLayer のみ 既存実装での Update() はそのレイヤマネージャの更新処理の口を全部たたいてるだけ。 iTVPDrawDevice::StartBitmapCompletion, NotifyBitmapCompleted, EndBitmapCompletion が順次呼ばれてビットマップ情報の drawdevice 側への転送が行われるようになってる。 そのビットマップをどう保持するかは drawdevice の実装次第で、Direct3D ならテクスチャに 保持して、更新があった部分だけ lock してテクスチャを更新することになる。 そのテクスチャ化した吉里吉里レイヤの実際の描画処理は Show() で行う。 ソース眺めるなら、drawdeviceD3D とかも見るべし。複数の primaryLayer のビットマップ情報を テクスチャ化して、拡縮した上で合成かけるサンプルになってる。もっとも単純に生成した順に重ねてるだけだが、 最背面:吉里吉里の primaryLayer その1 中間: 任意の D3D の描画 最前面:吉里吉里の primaryLayer その2 といった形への改造なら簡単に作れるだろう。 ただし、これは、吉里吉里本体が内包してる D3D7 のインターフェースを使ってる から、自前で3D処理も作るなら今なら D3D9 で書き直したほうが良いとは思う。 実際の3Dエンジンとの複合例なら drawdeviceIrrlicht のサンプル実装もある。 Irrlicht 描画の内容を吉里吉里のレイヤに吸い込む処理ももってるから、 それはそれで参考になるだろう。それはやっぱり転送大量で重いけどね FPS処理はその実装でおk 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch