トップページ > 過去ログ > 記事閲覧
SetNotUseDirect3D9Ex関数追加願い
名前:eiki 日時: 2012/02/09 14:58

いつもお世話になっております。 外部ライブラリとの連携でまたお願いしたいことがあります。 (前回:hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2429) 外部ライブラリの初期化時にDXライブラリ側から渡されたLPDIRECT3DDEVICE9を参照し色々設定するのですが、 vista以降だとDXライブラリが自動的にDirect3D9の代わりにDirect3D9Exを使用し渡してくると思います。 が、Direct3D9ExはD3DPOOL_MANAGEDを許容していないため、これを使用する一部の機能でエラーが起きてしまいます。 Vista以降の環境でDXライブラリがDirect3D9Exを用いることには何か特別な意味があるのでしょうか。 もしDirect3D9Exを用いなくても特に大きな弊害が無い場合(或いは別途こちらで対応すれば問題ない場合)、 DxStatic.hのGRH.NotUseDirect3D9Exを外から弄れるような関数、SetNotUseDirect3D9Exを追加して頂きたいと思うのですが、可能でしょうか。 何卒宜しくお願いします。

Page: 1 |

Re: SetNotUseDirect3D9Ex関数追加願い ( No.1 )
名前:管理人 日時:2012/02/13 01:39

MANAGED はすっかり過去の遺物になったと思っていたらBISHAMONが使っていましたか・・・ Direct3D9Ex を使用する理由は Direct3DDevice9Ex のAPI SetMaximumFrameLatency を使用するためです Vista 以降ではデフォルトで描画遅延があるようで、この API を使うことでその遅延を抑えることが できるそうです( 実際使ってみた限りでは、あまり体感の変化はありませんでしたが・・・ ) NyaRuRu様の日記に詳しく載っていますので、よろしければ「SetMaximumFrameLatency NyaRuRu」で 検索してみてください なので GHR.NotUseDirect3D9Ex は DirectX9Ex の作成に失敗した場合のみ使用していたのですが、 とりあえず関数 SetUseDirect3D9Ex で操作できるようにしましたのでよろしければお使いください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) DxLib_Init の前で SetUseDirect3D9Ex( FALSE ) ; とすれば、DirectX9Ex を使用せずに動作します
Re: SetNotUseDirect3D9Ex関数追加願い ( No.2 )
名前:eiki 日時:2012/02/13 15:46

EIKI`です、対応ありがとうございます。 なるほど、3フレーム遅延をプログラム側から変更するためのAPIがDirect3D9Exには用意されていたのですね。理解致しました。 BISHAMON側でもD3DPOOL_MANAGEDを使わない手段を検討して下さっているようですが、とりあえずの措置としてありがたく使わせて頂きたいと思います。 #ちなみにD3DPOOL_MANAGEDは通常の描画ではなくGPUパーティクルというGPUパワーで超大量のパーティクルを扱うエフェクトに用いられているようです。
Re: SetNotUseDirect3D9Ex関数追加願い ( No.3 )
名前:管理人 日時:2012/02/19 13:04

> #ちなみにD3DPOOL_MANAGEDは通常の描画ではなくGPUパーティクルというGPUパワーで超大量のパーティクルを扱うエフェクトに用いられているようです。 そうなのですか・・・ うーん超大量のパーティクルを扱う際に MANAGED のどんな点が有効なんだろう・・・

Page: 1 |