HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0417
DXes_screen命令とフルスクリーン18未解決


DX

リンク

2013/4/17(Wed) 23:32:00|NO.53564

HSPDXFIXで画面を初期化する際、デバック中はウィンドウモードで行なっていたのですが、
ある程度形になったのでフルスクリーンで動作させたとところ、
16:9の比率の解像度を正確にフルスクリーン表示できないことに気が付きました。
何種類か解像度を試した結果、ディスプレイ解像度と同じ1920×1080ではきちんとモニタ全域を使ってフルスクリーン表示を行えますが
それ以外の16:9の解像度ではモニタの左右端に黒縁が発生し、その分だけ
画像が圧縮されて表示されてしまいます。

最近は普通にワイドスクリーンが使われているので16:9の解像度を採用したかったのですが、
フルスクリーンにする際、es_screen命令は実質4:3の解像度のみサポートしているということでいいのでしょうか?



この記事に返信する


KA

リンク

2013/4/17(Wed) 23:52:00|NO.53565

まずウィンドウモードで16:9の比率に出来ますか。



DX

リンク

2013/4/17(Wed) 23:53:07|NO.53566

>>KAさん
はい
ウィンドウモードでは1280*720でやっていました
それをフルスクリーンにしようとして判明した次第です。



KA

リンク

2013/4/18(Thu) 00:48:00|NO.53567

良く読んでいなかった、ちなみにこの場合は解像度とは言いません。
1920*1080・・・画素数です。
16:9・・・画面比率です。
物理的な画面サイズに対する画素密度が解像度です。

>>ディスプレイ解像度と同じ1920×1080ではきちんとフルスクリーン
1920:1080 = 16:9

>>それ以外の16:9の解像度ではモニタの左右端に黒縁が発生し縦長
別のモニターという意味かな、具体的な画素数はいくらですか。

>>実質4:3の解像度のみサポートしているということ?
1920×1080が表示出来ていますよ。

------------------------------------
モニターは同じで表示モードを変えただけなら、モニター自体の設定や
ドライバーの設定で、そうなる可能性もあります。

あと、CRTか液晶かでも変わります。



DX

リンク

2013/4/18(Thu) 01:31:47|NO.53568

使っているのは同じモニター(1980*1080)です
>1920×1080が表示出来ていますよ。
1980*1080以外では正常に表示されないので実質非対応ということですか? と質問させて頂きました



KA

リンク

2013/4/18(Thu) 16:45:14|NO.53570

>>同じモニター
ますます意味が分かりません、異なるモニターをつないでください。
液晶モニタ自体の画素数と比率以外のモードで、表示させようとしているのでしょうか。



暇人

リンク

2013/4/18(Thu) 19:46:46|NO.53574

HSPDXFIXとは関係なくグラフィックドライバ側の設定なんじゃ?
(DirectX7側にアスペクト比保持などの命令は無い)

解像度変更や全画面表示で黒枠が出たら (ATI Radeon/NVIDIA Geforce)
http://coffee17.blog89.fc2.com/blog-entry-376.html

ディスプレイの型番も接続方法も書いてないのでディスプレイ側の設定の可能性もあるが・・・



DX

リンク

2013/4/23(Tue) 18:50:07|NO.53627

>KAさん
ますます意味がわからないとはどういうことでしょうか?
普通ゲームやアプリケーションは一つのモニタでウィンドウモードやフルスクリーンに対応してますよね?
それと同じ事をやろうとしているだけなのですが…?
もしかしてKAさんはわざわざ異なるモニタでやっているのでしょうか?

>暇人さん
ドライバの方からもチェックしてみることにします



暇人

リンク

2013/4/23(Tue) 20:07:39|NO.53633

まず解像度の変更に失敗した場合es_screenはエラーを返す
エラーがでずに画面いっぱいに表示されないとか比率が違うならディスプレイやPC側の問題です

これで自分の環境では問題なくフルスクリーン表示される

#include "hspdx.as" screen 0,1280,720 es_ini ; system初期化 onexit *owari es_screen 1280,720,32,,0,1 ; スクリーン初期化 if stat=1 : goto *dderr1 if stat=2 : goto *dderr2 goto *start ; 正常に完了 *dderr1 dialog "DirectXの初期化に失敗しました。",1 end *dderr2 dialog "スクリーンの初期化に失敗しました。",1 end *dderr3 es_bye wait 100 dialog "VRAMの容量が不足しています。",1 end ;------------------------------------------------------------------ *start buffer 3 picload dir_exe+"\\sample\\hspdx\\hspdx.bmp" es_buffer 0,2,0,0,1 if stat : goto *dderr3 *main stick ky,$1f ; カーソルキーの情報を取得 if ky&$80 : goto *owari //[Esc]で終了 pos 0,0 es_excopy 0,0,0,640,480,1280,720 pos 1280/2-640/2,720/2-480/2 es_excopy 0,0,0,640,480,640,480,,,,es_bfcalc(ESB_SRCCOLOR ,ESB_ONE),128 es_sync 16 ; 画面の更新 await 0 ; タスク更新 goto *main *owari es_bye end



KA

リンク

2013/4/23(Tue) 23:05:21|NO.53635

>>ディスプレイと同じ1920×1080ではモニタ全域を使ってフルスクリーン可能
>>ウィンドウモードでは1280*720でやっていた
>>16:9の解像度を採用したかった
だから両方とも16:9ですよ。

>>それ以外の16:9の解像度ではモニタの左右端に黒縁が発生しダメ
それ以外の解像度とは具体的になんでしょう。

モニターが同じならフルスクリーンは1920×1080ですよ。
そのモニターで4:3表示させようとしていませんか。
それなら両側に黒帯が出来るでしょう。



KA

リンク

2013/4/23(Tue) 23:24:47|NO.53637

ちなみに、1920×1080が最大解像度で、16:9は比率です。



匿名希望

リンク

2013/4/26(Fri) 18:35:19|NO.53646

横レスで申し訳ない。

>>KAさん
揚げ足取りばかりで、回答する気が無いと思われかねないレスは好ましくないと思いますがいかがでしょうか?
間違いを指摘するのも大事ですが、ある程度は質問者の意図を汲み取る姿勢も必要だと思います。



KA

リンク

2013/4/26(Fri) 19:03:13|NO.53647

>>揚げ足取りばかりで、回答する気が無いと思われかねないレス
>>ある程度は質問者の意図を汲み取る姿勢も必要

質問者の意図が理解できないから、回答出来るか判断するために
詳細を聞き出す必要があります。それが「揚げ足取り」に受け取
られる事もあるでしょう。

意を汲んで回答しても、「そういう意味じゃないんです」と言わ
れると無駄骨です。的確な質問内容なら無駄なレスはしません。



skyblue

リンク

2013/4/26(Fri) 20:32:46|NO.53648

es系の解像度ってもしかしたら画面の表示するサイズなのでは?
確かにウインドウモードでは同じ指定でも黒帯が表示されませんが
フルスクリーンでは黒帯が表示されましたし。



暇人

リンク

2013/4/26(Fri) 21:21:09|NO.53649

es系とか関係ない(HGIMG3でも同じ結果になるはず)
ディスプレイと比率が同じでも帯が出るならPC側の設定
接続がアナログならモニター側の方の設定の可能性もある

>フルスクリーンでは黒帯が表示されましたし。
最大1920*1080のモニターにデジタル接続でNO.53633を実行して
帯が出るならPC設定の問題

640*480でフルスクリーンにして左右に帯がでるのはモニターやPCの設定(比率保持なら出て当然だが)



skyblue

リンク

2013/4/27(Sat) 06:58:27|NO.53652

>最大1920*1080のモニター
自分のディスプレイの最大画面解像度は1280×1024ですけど
ちなみにデジタル接続



暇人

リンク

2013/4/27(Sat) 07:49:08|NO.53653

>自分のディスプレイの最大画面解像度は1280×1024ですけど
それだけではなんとも・・・
どの解像度で初期化したのかも分からないし・・・

そのモニターでNO.53633のを実行して上下に帯が出た場合比率保持したいなら普通の結果
比率を変えても全画面にしたいならPC、モニタ側の設定で変えられる
HSPDXFIXどうこうとは一切関係ない

グラフィックドライバがATI系の自分の環境だとGPUスケーリングを有効にすると
モニター側の解像度は最大解像度(1920*1080)に固定される(モニタ側の表示で確認)
見た目の表示は他の設定次第だが、初期化の解像度通りのフルスクリーン画面になる



skyblue

リンク

2013/4/27(Sat) 21:42:02|NO.53662

質問者さんはそもそもフルスクリーンで何する気なのでしょうか?
たいていは640×480で十分だと思いますけど、



ZAP

リンク

2013/4/28(Sun) 11:11:28|NO.53667

今作っているゲーム画面の大きさが1280*720で、
それがフルスクリーンにしたときに綺麗に引き伸ばせないのであれば
やはりグラフィックボードのドライバがそのドット数のフルスクリーンに
対応していないのではないでしょうか?



ONION software Copyright 1997-2023(c) All rights reserved.