• ベストアンサー
  • 困ってます

DirectX 9のフルスクリーン表示

こんばんは、現在DirectX 9 でゲームを作っています。 ゲームの表示領域の大きさは 640×480 にしているのですが、 フルスクリーン表示にすると、 現在のPCの解像度 1024×768 の左上の 640×480 だけに表示され、画面いっぱいに拡大されません。 一般のゲームを見ると、起動時に PCの方の解像度を変更しているようなのですが、どうやればいいのでしょうか? 開発環境は VC++ 2005 です。 ご回答お待ちしております。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1751
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

★関数などのアドバイスのみです。参考に! ・『ChangeDisplaySettings』API関数で出来そうです。  プロトタイプ宣言は下のようになります。 LONG ChangeDisplaySettings(  LPDEVMODE lpDevMode, ←変更するグラフィックスモード(DEVMODE構造体)  DWORD dwflags ←グラフィックスモードの変更方法 ); 参考文献1:解像度モードの切り替え ・http://tigereye.isc.chubu.ac.jp/PkenDesign/pd200101/yang/fulscr.htmlhttp://www.geocities.jp/ky_webid/win32c/063.htmlhttp://hp.vector.co.jp/authors/VA007941/program/no2086.htmlhttp://www.kit.co.jp/vbit/QAndA04.htm 参考文献2:構造体(DEVMODE) ・http://www.winapi-database.com/Struct/DEVMODE.htmlhttp://www.activebasic.com/help_center/Pages/API/GDI/Printer/type_DEVMODE.htm

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpgdi/html/_win32_changedisplaysettings.asp

共感・感謝の気持ちを伝えよう!

質問者からのお礼

まとめて No.2 の方に書いておきました。

関連するQ&A

  • フルスクリーンの表示がおかしくなった

    ディスプレイアダプタのドライバを更新したら、 ゲームをするときフルスクリーンに切り替えた際 画面の左上に小さく表示され、全体化されません。 画面のプロパティ⇒詳細設定からいける設定では以前と解像度も変わっておらず、 アスペクト比のオプションも全画面表示になっています。 DirectXは正常に動作していますがフルスクリーン時のみ症状がでます。

  • フルスクリーン時に拡大表示されてしまう

    ゲームのフルスクリーンをするときなのですが、画面がすべて表示されず4分割の左上の部分だけが拡大されて表示されてしまいます。 テレビをモニターとして使っていて解像度は1920x1080でGeforce GT240を使っています。 ワイド画面対応のゲームでは正常に作動しています。

  • ゲーム等のフルスクリーン表示がずれます

    ゲーム等を起動した時に、 フルスクリーンで表示される場合 本来表示される画面の 左上の部分だけが拡大されて 全体に表示されます。 左上以外の部分が見えない状態です。 ウインドウ表示出来ないものだと まともにゲームが出来ず困ってます。 それと、ゲームではないのですが、 Winshotという画像保存するソフトも 同じように左上のみ表示となり、 画面もうまくキャプチャー出来ません。 仕様パソコンは DELL studio15 Windows vista です。 それぞれ同じ事が原因かはわかりませんが、 どちらも困っているので お答えよろしくお願いします。

その他の回答 (1)

  • 回答No.2
  • furyfox
  • ベストアンサー率56% (58/103)

DirectXの初期化時、或いはリセット時に ウインドウモードかフルスクリーンモードかを指定するパラメータがあると思います。 D3DPRESENT_PARAMETERSのWindowedの箇所です。 D3DPRESENT_PARAMETERSは IDirect3D9::CreateDeviceやIDirect3DDevice9::Reset の引数です。 またD3DPRESENT_PARAMETERSに解像度の情報も入ります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございました。 皆様にご指摘された所らへんのコードを見てみると、 どうやらフルスクリーンの場合、バックバッファのサイズに現在の解像度(1024×768)が入ってしまっていたようでした。 ネットにあったサンプルを改変して使っていたので理解できていなかったみたいです・・・。 やはり解らない所もしっかりと理解出来ていないと DirectX ぐらい複雑になってくるとトラブルに対処出来ないという事を痛感いたしました・・・。

関連するQ&A

  • 【再投稿】フルスクリーンになりません。(ゲーム等)

    以前、こちらで同じような質問をさせていただき、PC再セットアップという処置をとることで問題が改善されたのですが、再セットアップから数日経過して、また同じような症状が発生してしたので、恐縮ですが再度質問させていただきます。 症状:フルスクリーン<画面いっぱいに表示>にならない(フルスクリーンで起動するゲームが起動できない<終了してしまう>。) 【PC環境】 機種:DynaBook G6C/X18CME(ノートPCなので液晶ディスプレイです) CPU:Celeron 1.80GHz メモリ:512MB(256MB増設) グラフィックカード:GeForce4 440 Go(32MB) DirectX9.0 解像度:1400×1050(初期設定) 16ビット表示 ※解像度・ビット表示を変更しても症状は改善されませんでした。 以上のような症状・環境です。 PC再セットアップ直後は正常にフルスクリーンの起動ができていましたし、購入直後の時ももちろん正常に起動していました。 改善方法などご存知の方がいらっしゃれば、ぜひ教えてください。 よろしくお願いします。

  • 東方でフルスクリーン表示ができない

    最近Windows vistaからWindows 7 に変えて、ゲームを起動したところ、フルスクリーン表示ができなくなってしまいました。フルスクリーン(640*480)とかいてありますが、それが拡大化せず、真ん中に640*480で表示され回りには黒枠です。vistaを使っていたときはできていました。使っている機種LL560/M

  • Vistaでゲームをフルスクリーン起動すると、画面が全体に表示されず、余白が真っ黒の状態です。

    Vistaでゲームをフルスクリーンで起動すると、ツールバー(?)やステータスバー(?)が表示されなくなって、全画面ぽくなるんですがゲーム自体の表示領域が狭いです。 ゲームする分には支障はないのですが、どうせなら画面いっぱいでやりたいので自分は毎回、デスクトップ上で右クリック→グラフィック プロパティ→ディスプレイ設定→画像の解像度を[1280x800]から[1280x600]に変えて、プレイしています。 これをすると、起動時と終了後にいちいち設定を変えないといけないので、だるいです・・; 何かいい方法はないでしょうか。 ちなみに友人のVista(デフォルト設定)のパソコンは同じゲームでもフルスクリーンで起動します。

  • DirectXのセカンダリディスプレイ表示について

    デュアルディスプレイ下でBitmap画像を表示させるプログラムをDirectXを使用して作っているのですが、セカンダリディスプレイにBitmapを表示させると画面にちらつきが発生してしまいます。 プライマリディスプレイに表示させた場合はちらつきません。 セカンダリディスプレイにDirectXが効いていないようなのですが、原因・方法が解る方ご教授願います。 開発環境はWinXP/SP3・VC++6.0、DirectXのバージョンは9.0cです。 よろしくお願いします。

  • DirectX7とDirectX9の速度の違い

    フリーソフトや市販の3Dゲームで、DirectX7や8で開発されたゲームは割りと 私の非力なPCでもさくさく動くのですが、同じゲームのDirectX9版見つけ、 試しに入れてみると、ものすごく重くなっていました。 実際には試していませんが、仮にC++で開発したとしてDirectX7とDirectX9で 3Dモデルや画像を同じ数同じような条件で沢山表示させたとしてら、 DirectX7の方が動作が軽いのでしょうか? もしそうなるなら恐らくDirectX9の方が機能が多いので標準でより多くのメモリを システムが占有してしまうからだと推測していますが・・。 DierctX10や11など、DirectXのバージョンが上がるほど重くなるものなのでしょうか?

  • フルスクリーンが...

    DirectXを使用したゲームをやったら 「デバイスの作成に失敗しました」 というエラーが発生してしましました そしてゲームができなくなりました 一部ではゲームはできたけど、フルスクリーンが効かなくなりました 今までゲームはできたのに、いきなりできなくなりました 一体なぜなのか教えていただきたいと思い投稿してみました、また対処法も教えていただきたいです ちなみに、DirectXは最新版をやったり アンインストールして再びDirectXをインストールしてみたりしたのですが どれも失敗で、同じエラーが出てきてしまいます 自分のPCは メモリ 192MB CPU Celeron 585あたり? OS  Windows98SE です よろしくお願いしますm(_ _)m

  • フルスクリーン表示で見切れてしまいます

    カテゴリーがハードウェアで良いのか不安ですが質問させてください。 とある古いゲームをフルスクリーン表示でワイドモニターのパソコンで起動してみたところ、画面の右の2割ほどが見切れてしまいました。逆に左端は見切れと同じぐらいのスペースが真っ暗な状態です。なんとなく中心が右に寄ったような感じといえば良いのでしょうか? この時モニターに「許容範囲外です。解像度を戻してください」といった事を言われます。OSやゲームソフトからではなく、モニターから言われます。また、ゲームがウインドウモードの時は問題ありません。ためしにフリーソフトのゲームなどをいくつか試してみたところ、同じ症状がいくつか発生しました。 友人に「ソフトがワイドモニターに対応してないんじゃ無いか」と言われたのですが、結局解決方法が見つかりません。モニターの解像度を変えてみたりアスペクト比を変えてみたりしたのですが解決しません。むろん4:3モニターでは問題なく表示されます。 モニターの何かの設定を変えるなりすれば良いのか、逆にソフト側で何か問題があるかも判断がつきません。 フルスクリーンでしか動かせないソフトもあるため困っています。 モニターはI.OデータのLCD-DTV222XBRで、OSはXPです。 解決法がありましたらご教授いただきたいです。 よろしくお願いいたします。

  • 320x240のフルスクリーン

    OSはXPでグラフィック環境がNVIDIA GeForce 8600 GT、VRAM:512.0MB、ディスプレイモードが1280x1024(32bit)(60Hz)で液晶なのですが、 サイズが320x240の2Dゲームをフルスクリーンで起動した際に、スムージング処理が掛ってしまいドットにぼかしが入ったような状態になってしまいます。 本当はペイントで拡大をするようにドットがカクカクした感じにクッキリと映って欲しいのですが、どうすればよいでしょう? 画面やNVIDIAの設定等を覗いてもFSAAの設定らしきものも見当たらず、 色々弄ってみても駄目でした…。 ちなみに、640x480のゲームではフルスクリーンでもドットがハッキリと映りました。

  • フルスクリーン表示がおかしい?

    初めて質問させて頂きます。 acer社のAF705というCRTモニターを使用しているのですが、 最近になってフルスクリーン表示がおかしくなっています。 現象としては ・左右両端が縮小されたようにゆがんで表示される。 ・画面全体がぼやけている。 ・画面表示される部分が右側からだんだん縮むように小さくなっていき、画面全体のゆがみも大きくなってくる。 ・現象はWindows起動時や市販,フリーのゲームをフルスクリーン表示したときだけ出る。  (通常のウィンドウ画面や、動画,オンラインゲームをフルスクリーン表示したときは正常に表示される。) といったところです。 ディスプレイやビデオカードのドライバを更新しても直らず 泣く泣くウィンドウモードで起動しています。 何か設定の問題でもあるのでしょうか? OS:Windows2000 ビデオカード:RADEON 9000 PRO です。よろしくお願いします。

  • フルスクリーンで表示できません。(Direct3Dのテストも・・・)

    ゲームでフルスクリーン表示が出来ないのでおかしいなと思い、ビデオカードに何か問題があるのかなと思ってDirectX診断ツールのDirect3Dのテストをしてみたところ、「キーを押してテストを取り消しました」と表示されてテストが出来ませんでした。実際にキーはひとつも押してません。 フルスクリーン表示が正常にできる時にも同じテストをやってみたのですが正常にテストが行えたのでおそらくDirect3Dに問題(?)があると思うのですが対処方法が分かりません。 対処方法わかる方いらっしゃいましたらご回答お願いします。 OS:WIN XP SP2 DirectXバージョン:DirectX 9.0c ビデオカード:NVIDA GeForce4 440 Go