DirectX総合スレ (Part2)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/22 23:30:32ID:anobjZYP基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
テンプレは >>2以降で
0448名前は開発中のものです。
04/11/16 22:25:38ID:esebxn7x0449 ◆c.50Ky2eZQ
04/11/16 22:41:32ID:DXV97k4Kやっぱりそうですか。
とにかく問題の個所が分かったので、書籍のサンプルや自分で作成するプログラムは
フルスクリーンでも動かせるようになったわけですが、
さすがに市販されてるゲームはどうにもならず・・・
ちなみに友人数人の環境で試してみたのですが、
自分の持っている本のサンプルとか、入門ページのサンプルで
フルスクリーンで固まるという現象は再現しませんでしたorz
ネットで検索してもフルスクリーンで固まるというのは全然出てこないので
うちの環境が特殊なのかもしれません。
0450名前は開発中のものです。
04/11/16 22:57:02ID:fcqxyC5lちなみにどのパラメータが原因だったの?
0451オレー
04/11/16 23:21:34ID:KvJj/Phk俺もオマエと非常に似た構成のマシンで、同じようなことがおきたぞ。
俺の場合は、ウィンドウモードでも固まったがな!
BIOSでAGP×8をAGP×2まで落としたら直った。
0452 ◆c.50Ky2eZQ
04/11/16 23:25:07ID:DXV97k4Kどのパラメータが悪いのかというところは詳細に調べてないのですが、
とりあえず下記のような差がありました。
○:フルスクリーンで動作した
×:フルスクリーンで固まった
○[DirectX 9実践プログラミングI/O別冊]
BackBufferWidth = 1024;
BackBufferHeight = 768;
BackBufferFormat = D3DFMT_X8R8G8B8;
BackBufferCount = 1;
MultiSampleType = D3DMULTISAMPLE_NONE;
MultiSampleQuality = 0;
SwapEffect = D3DSWAPEFFECT_DISCARD;
hDeviceWindow = g_hWindow; // ウインドウハンドル
Windowed = FALSE;
EnableAutoDepthStencil = FALSE;
AutoDepthStencilFormat = D3DFMT_UNKNOWN;
Flags = 0;
FullScreen_RefreshRateInHz = 0;
PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
×[DirectXゲームグラフィックスプログラミング Ver. 2.0]
BackBufferCount = 1;
Windowed = FALSE; // フルスクリーン表示の指定
BackBufferWidth = clientWidth; // フルスクリーン時の横幅
BackBufferHeight = clientHeight; // フルスクリーン時の縦幅
BackBufferFormat = d3ddm.Format; // カラーモードの指定
SwapEffect = D3DSWAPEFFECT_DISCARD;//
EnableAutoDepthStencil = TRUE;// エラー対策
AutoDepthStencilFormat = D3DFMT_D16;// エラー対策
0453 ◆c.50Ky2eZQ
04/11/16 23:32:38ID:DXV97k4K動作したほうの設定をそのまま動作しないソースへ貼り付け。
動作しないほうの設定はコメントアウトでビルドして実行すると
フルスクリーンで動作しました。
パラメータの1つ1つをこれからチェックしたいと思います。
>>451
ウインドウモードでも固まることがあるんですね・・・
現在AGP×4なんですが、AGP×2に落として試してみます。
0454名前は開発中のものです。
04/11/16 23:37:08ID:fcqxyC5l違うのはAutoDepthStencilFormatくらいに見えるけど
0455名前は開発中のものです。
04/11/16 23:39:04ID:9Fl+6rlR下の方は FullScreen_RefreshRateInHz 書いてないけど
初期化されてなくて D3DPRESENT_RATE_DEFAULT D3DPRESENT_RATE_UNLIMITED
EnumAdapterModes のどれにも当てはまらない数字が入ってないかい?
0456名前は開発中のものです。
04/11/16 23:40:06ID:fcqxyC5l>BackBufferFormat = d3ddm.Format; // カラーモードの指定
d3ddmはGetAdapterDisplayModeで取得してると思うけど
フルスクリーンの場合はカラーモードはこちらか指定するから
>BackBufferFormat = D3DFMT_X8R8G8B8;
でとりあえずいいと思う
0457 ◆c.50Ky2eZQ
04/11/16 23:44:43ID:DXV97k4K2つとも値の設定の直前で下記を実行しています。
[DirectX 9実践プログラミングI/O別冊]
ZeroMemory(&g_D3DPP, sizeof(g_D3DPP));
[DirectXゲームグラフィックスプログラミング Ver. 2.0]
ZeroMemory(&m_D3DPP, sizeof(D3DPRESENT_PARAMETERS));
>>455
差分ではなく、すべて載せました。
I/O別冊のほうはいろいろ設定されているのですが、
もう1冊のほうは設定していないパラメータが多いですね。
FullScreen_RefreshRateInHzは指定されていないです。
0458名前は開発中のものです。
04/11/17 00:20:47ID:F/vQq9xHPresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
を加えてみ。それでSDKサンプルと同じ記述。
■ このスレッドは過去ログ倉庫に格納されています