トップページ > 過去ログ > 記事閲覧
画面の四分の一しか表示されない
名前:SW 日時: 2009/12/29 08:36

いつもお世話になります。 当方が制作中のゲームが、一部の環境(ノートPC等)で 正常に表示されないという現象が起こっています。 よく聞くトラブルで「フルスクリーンにしても画面中央の一部分にしか 表示されない」というものがあり、その原因がPCの設定であることは知っていますが それとは少し違うようなのです。 具体的には、フルスクリーンでもウィンドウでも 画面の左上から四分の一程度にしか表示されていない状態になってます。 ゲームは320*240で作っています。 画面の左上四分の一しか表示されない、といっても 欠けているわけではなく、ウィンドウ枠が640*480で そこに320*240で表示されているという感じ。 本来表示されない、320*240の範囲からはずれた部分の表示もされている。 やたらと動作が重くなる。 なにか原因や、対処法に心当たりがありましたらご教示ください。

Page: 1 |

Re: 画面の四分の一しか表示されない ( No.1 )
名前:管理人 日時:2010/01/03 23:20

ご報告ありがとうございます 今確認したところ、DirectX9版( Ver3.00以降 )では 320x240 の画面モードが使用できませんでした とりあえず 640x480 の画面モードに 320x240 の映像を2倍拡大で表示するという方法で 対応することにしました、よろしければこちらをお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) ちなみに「ウインドウモードでも画面の左上から4分の1しか表示されない」というのは どのような状況なのでしょうか? ウインドウのサイズが640x480になっていてその中の4分の1しか表示されていない ということでしょうか・・・
Re: 画面の四分の一しか表示されない ( No.2 )
名前:SW 日時:2010/01/09 21:52

お返事ありがとうございます。 まだ、修正していただいた分は試していませんが、 取り急ぎご報告だけさせて頂きます。 先の問題ですが、現状で SetEmulation320x240( int Flag ) ; という命令がありましたのでこれをつかってなんとか凌ごうとしているところです。 修正していただいた分でなんとかなるようでしたら そちらを使わせていただこうと思います。 それで >「ウインドウモードでも画面の左上から4分の1しか表示されない」 これについてですが、おっしゃるとおりです。 ウィンドウモードにしても640*480でそのうち左上の320*240部分に表示されるという状況です。 誤解のないように具体的に書きますが。 ・ウィンドウ部分は”おそらく”640*480である。 ・表示されるのは原則として、その左上四分の1の320*240部分である。 ・ゲーム画面が欠けて表示されているわけではない。  もともと320*240のゲーム画面が、そのままのサイズで  640*480のウィンドウ内に表示されている。 ・ただし、きっちり四分の1の部分(320*240)だけでなく、  スクロール処理等で本来画面外にあるべき部分も表示されてしまっている。 ・プログラム起動時にウィンドウモード、および  SetWindowSizeExtendRate の二倍拡大で640*480として起動した場合は  正常っぽくなるが、一度フルスクリーンにしたりすると  やはりおかしくなる。(四分の1表示になる)
Re: 画面の四分の一しか表示されない ( No.3 )
名前:SW 日時:2010/01/10 01:22

お世話になります。 修正いただいた分を試してみたので、取り急ぎご報告させていただきます。 結果から申しますと、うまくいきませんでした。 というより以前よりおかしくなりました。 以下にざっと試してみた結果を記します。 前提として、今まで使っていたDXライブラリはバージョン3より前の物だった事に留意してください。 (DirectX7.0にも対応という事にしておきたくてバージョンを上げなかった) ・今までは正常に表示されていたパソコンでも同様の現象が出るようになった。 ・さらに、透過色が無視されるようになっていた。(透過色のはずの黒い部分が出る) ・ウィンドウモードにしたところ、SetWindowSizeExtendRateを使って  何倍表示にしても常に320*240部分にしか表示されない。  (ウィンドウ自体は大きくなるが、320*240部分以外は真っ黒) ・今まで例として挙げていたのは320*240のゲームでしたが、  別の640*480のゲームで今回のものを試してみたところ、今までどおり問題なかった。 以上です。 参考になれば幸いです。 ちょっと細かい条件とかまで洗い出してないので情報不足かもしれません。 もしまだ参考にしたい必要な情報がありましたら確認いたします。
Re: 画面の四分の一しか表示されない ( No.4 )
名前:管理人 日時:2010/01/17 17:21

ご報告ありがとうございます 正常に動作しないものをお渡ししてしまって申し訳ありません 私の環境でも正常に動作しないものでした、本当に申し訳ありません 少なくとも私の環境では正常に動作するようにしたバージョンをアップしましたので 申し訳ありませんが今一度お試し下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 今回の修正でウインドウモードで 320x240 を指定してもウインドウ自体が 640x480 になってしまうという現象も解消されていると思います
Re: 画面の四分の一しか表示されない ( No.5 )
名前:SW 日時:2010/01/18 10:38

お世話になります。 お手数かけてすみません。 変更していただいた分を使ってみましたところ 正常に動作しているようです。 ただ、上に記しました ・さらに、透過色が無視されるようになっていた。(透過色のはずの黒い部分が出る) の件についてはかわってませんでしたので ちょっと試してみましたところ、 SetGraphDataShavedMode を、   DX_SHAVEDMODE_DIFFUS から   DX_SHAVEDMODE_NONE にすると、ちゃんと透過されるようになりました。 この件はバージョン2.**の方では問題なかったはずなのですが、 3.00以降ではこれは仕様だと考えてよろしいのでしょうか?
Re: 画面の四分の一しか表示されない ( No.6 )
名前:管理人 日時:2010/01/28 01:49

SetGraphDataShavedMode( DX_SHAVEDMODE_DIFFUS ) ; にしていると 透過される部分が正常に処理されない現象はバグです、すいません 修正版をアップしましたので、よろしければお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 画面の四分の一しか表示されない ( No.7 )
名前:SW 日時:2010/01/29 22:34

お世話になります。 早速の対応ありがとうございます。 ですが、残念ながらまだ透過色が正常に機能してないようです。 もう少し調べてみますが、 そちらでの調査に何か必要な情報があるようでしたら 出来る限りご用意いたします。
Re: 画面の四分の一しか表示されない ( No.8 )
名前:管理人 日時:2010/01/31 22:41

うーん駄目でしたか・・・ 私のほうでは必ず直ると思える修正を加えたので、まだ透過しないということでしたら 私が見落としていることが原因となっていると考えられます SWさんのお言葉に甘えて・・・ 申し訳ありませんが宜しければ SetGraphDataShavedMode( DX_SHAVEDMODE_DIFFUS ) ; を実行していると 正常に透過されなくなる画像を BQE00322(あっとまーく)nifty.com まで送って頂けないでしょうか? 現象が手元で再現できていれば原因を突き止めるのも容易だと思いますので・・・ m(_ _;m
Re: 画面の四分の一しか表示されない ( No.9 )
名前:SW 日時:2010/02/01 20:22

メール送信させていただきました。 ご確認ください。 お手数ですがよろしくお願いいたします。
Re: 画面の四分の一しか表示されない ( No.10 )
名前:管理人 日時:2010/02/07 23:44

メールを拝見致しました、ありがとうございます 添付していただいたデータを拝見して、不具合の原因が分かりました パレット画像を DX_SHAVEDMODE_DIFFUS で読み込んだ場合のみ発生するというバグでした 修正版をアップしましたので、宜しければお試し下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 画面の四分の一しか表示されない ( No.11 )
名前:れもん 日時:2010/02/22 14:25

私の環境でも同じような現象が起きてしまいます。 修正版(Dxlib.libの更新日時が2010/02/22)を使っても直らないのですが、私の使い方に問題があるのでしょうか? ----------------------ソースコード------- #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { SetEmulation320x240(TRUE); if(DxLib_Init() == -1) return -1; DrawBox(0, 0, 320, 240, GetColor(255, 0, 0), TRUE); DrawString(300, 220, "Test", GetColor(255, 255, 255)); WaitKey(); DxLib_End(); return 0; } ----------------------現象------- SetEmulation320x240(TRUE); を使うと ウィンドウモードの時には 正しく640*480の画面に320*240の画面が拡大されて描画されるのですが、 フルスクリーンで起動すると 640*480の解像度で画面左上の320*240の部分のみに、拡大されずに描画されてしまいます。 さらにSWさんと同じように左上の320*240からはみ出た部分もクリッピングされることなく 描画されています。 (因みにSetEmulation320x240()を使わない通常の640*480のフルスクリーンはうまくいきます。) 上のソースコードだと640*480の解像度の左上4分の1の領域が赤で、画面中心あたりにTestと表示されます。
Re: 画面の四分の一しか表示されない ( No.12 )
名前:管理人 日時:2010/02/28 21:59

ご報告ありがとうございます、使い方に問題はありません 掲載していただいたサンプルプログラムを私の環境で試してみましたが、 問題の現象( 画面左上に表示 )は発生しませんでした 私の手元でコンパイルした実行ファイルをアップしましたので、 こちらのファイルでも同様に画面左上にしか表示されないか試してみていただけないでしょうか?m(_ _)m https://dxlib.xsrv.jp/file/SetEmulation320x240.zip
Re: 画面の四分の一しか表示されない ( No.13 )
名前:れもん 日時:2010/03/01 00:43

対応をありがとうございます。 アップしていただいたファイルを実行してみたのですが、やはり同じ結果になりました。 Log.txtとスクリーンショット、実行環境をメールに添付して送信しましたので 参考にしていただければと思います。
Re: 画面の四分の一しか表示されない ( No.14 )
名前:管理人 日時:2010/03/05 23:36

お手数お掛けしてすいません Windows7+64bitの環境で私のところでも再現しました 原因は恐らくドライバ・・・なのかな・・・? DirectXの説明書通りの使い方をしているのに少なくともWindows7+64bitでは その通りに動いてくれないというものでした WindowsVista以降は別の手段で同じ見た目になるようにプログラムを変更しましたので、 よろしければれもんさんの環境でも正常に表示されるか試してみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 画面の四分の一しか表示されない ( No.15 )
名前:れもん 日時:2010/03/07 14:59

私はBCCでのコンパイルですが、正常に表示されました。 本当にありがとうございました。

Page: 1 |