ページ 11

古いバージョンのDirectXで4k対応

Posted: 2021年5月12日(水) 07:52
by KAORU
DirectXのバージョン7のコードを弄っています。
2048x1280以上の解像度で初期化しようとすると失敗します。
バージョン9ではちゃんと4kでも初期化出来ました。
古いバージョンでは対応してないんでしょうか?
自分でしか使わないプログラムなのでどんな方法でもよいので
どうにかこれ以上の解像度で初期化する方法はないでしょうか?
バイナリを無理やり書き換えるとかでもいいので。

Re: 古いバージョンのDirectXで4k対応

Posted: 2021年5月12日(水) 08:53
by KAORU
こういう記事をみつけたのでやっぱり7では対応してないのでしょうか。
https://biscrat.com/blog/krkr2-resolution-limit/
どうにか出来ないでしょうか。

Re: 古いバージョンのDirectXで4k対応

Posted: 2021年5月12日(水) 09:00
by KAORU
https://biscrat.com/blog/krkr2-resolution-limit/
この記事によるとバージョン7ではDirectDrawでは2048を超えても初期化できそう。
だけどDirect3Dでは2048を超えると初期化出来ないと書いてある。
テクスチャサイズの限界と書いてるけど能力を調べると10000以上でも大丈夫みたいで
初期化時に解像度指定で2048を超えた指定を行うと失敗する。

Re: 古いバージョンのDirectXで4k対応

Posted: 2021年5月12日(水) 09:04
by KAORU
失敗する部分は
D3DXCreateContextEx()の初期化時で
ここでwidthに2048を超える解像度指定をすると失敗する。
戻り値のエラーはDDERR_INVALIDOBJECT
やはりバージョン7では無理でしょうか。

Re: 古いバージョンのDirectXで4k対応

Posted: 2021年7月11日(日) 23:46
by ISLe
dgVoodooという、修正される見込みのない古い市販ゲームを動作させる目的のソフトがあります。
古いDirectX API呼び出しを、元のバイナリを書き換えることなく、現代の環境に対応させる仕組みのもので、お望みに叶うと思います。