トップページ > 記事閲覧
SetUseDirect3DVersion
名前:さと 日時: 2015/08/28 23:08

いつもお世話になっております。 不具合というほどではないのですが 試しに SetUseDirect3DVersion(DX_DIRECT3D_NONE)を実行してから GetUseDirect3DVersion()でバージョンチェックをしてみたところ DX_DIRECT3D_NONEが返らず、環境によってDX_DIRECT3D_9やDX_DIRECT3D_9EXが返ってきました。 SetUseDirect3DVersionは、DxLib_Init()前に実行して GetUseDirect3DVersionは、初期化後に見ています。
メンテ

Page: 1 |

Re: SetUseDirect3DVersion ( No.1 )
名前:管理人 日時:2015/08/29 17:34

手元の環境でこちらのようなプログラムを実行してみたのですが #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { char *String ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DX_DIRECT3D_NONE をセット SetUseDirect3DVersion( DX_DIRECT3D_NONE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) { return -1 ; } // 起動後の GetUseDirect3DVersion の戻り値を文字列にして描画 switch( GetUseDirect3DVersion() ) { case DX_DIRECT3D_NONE : String = "Direct3D None" ; break ; case DX_DIRECT3D_9 : String = "Direct3D 9" ; break ; case DX_DIRECT3D_9EX : String = "Direct3D 9Ex" ; break ; case DX_DIRECT3D_11 : String = "Direct3D 11" ; break ; } DrawString( 0, 0, String, GetColor( 255,255,255 ) ) ; // キー入力があるまで待つ WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } 画面には Direct3D None が表示され、GetUseDirect3DVersion の戻り値は DX_DIRECT3D_NONE になっていました よろしければさとさんの環境では別の結果になるかどうかお試しになってみていただけないでしょうか?
メンテ
Re: SetUseDirect3DVersion ( No.2 )
名前:さと 日時:2015/08/29 23:30

早速試したところ、問題がありませんでした。 お手数おかけいたしました。 switchを使用しないで、 int value = GetUseDirect3DVersion(); if( value == DX_DIRECT3D_NONE) {} で調べたのがダメ?? ※=の代入ミスでもありません。 switchに置き換えたら問題がなくなりました。 それから自分のノートではDX_DIRECT3D_NONEモードは何も描画されませんでした。 DX_DIRECT3D_NONEを使用することはまずないので、問題はありません。 一応 Log.txtを貼り付けておきます。 0:ChangeWindowMode実行 10:ウインドウモードフラグが立てられました 26:DXライブラリの初期化処理開始 33: システムの情報を出力します 39: DXライブラリ Ver3.15b 50: 論理プロセッサの数 : 2 55: OS Windows7 ( Build 7601 Service Pack 1 ) 171: 現時点のCPU動作速度:大体1.78GHz 178: MMX命令を使用します 183: SSE命令が使用可能です 211: SSE2命令が使用可能です 219: CPUベンダ:GenuineIntel 259: CPU名: Intel(R) Celeron(R) CPU 1037U @ 1.80GHz 264: COMの初期化... 成功しました 277: メモリ総量:3990.04MB 空きメモリ領域:1693.52MB 284: タイマーの精度を検査します 290: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 295: パフォーマンスカウンターを使用します タイマー精度 : 1753.896001 KHz 307: ソフトの二重起動検査... 二重起動はされていませんでした 327: ウインドウクラスを登録します... 登録に成功しました 338: ウインドウモード起動用のウインドウを作成します 345: ディスプレイ情報のセットアップ開始 351: モニターの数:1 ディスプレイデバイスの数:6 357: No.0 モニター名:\\.\DISPLAY1 1366x768 32bit 60Hz 393: ディスプレイ情報のセットアップ完了 411: ウインドウの作成に成功しました 417: ウインドウを表示します 498: IMEを無効にしました 505: ウインドウスタイルをウインドウモード用に変更します... 完了 553: DirectInput関係初期化処理 553: XInput DLL の読み込み中... 成功 558: DirectInput7 の取得中... 成功 580: 引き続き初期化処理... 初期化成功 583: ジョイパッドの初期化... 586: ジョイパッドの初期化は正常に終了しました 587: マウスデバイスの初期化... 初期化成功 589: キーボードデバイスの初期化... 初期化成功 593: DirectInput 関連の初期化は正常に終了しました 594: DirectSound の初期化を行います 595: DirectSound インターフェースの取得を行います.... 成功 598: 引き続きインターフェースの初期化処理... 成功 680: DirectSound デバイスを列挙します 681: Module Name : Description : プライマリ サウンド ドライバー 681: Module Name : {0.0.0.00000000}.{1e5c950d-0d12-4946-ab00-6445488e6104} Description : スピーカー (VIA High Definition Audio) 682: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 682: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 682: 利用可能サンプリング精度 683: Primary 16bit = OK 8bit = OK 683: Secondary 16bit = OK 8bit = OK 684: 利用可能チャンネル 684: Primary MONO = OK STEREO = OK 684: Secondary MONO = OK STEREO = OK 690: DirectSound の初期化は正常に終了しました 691: DirectDraw オブジェクトの取得を行います.... 成功 695: 引き続き初期化処理... 初期化に成功しました 928: フォントの初期化を行います 929: フォントの初期化は正常に終了しました 930: 文字コードバッファの初期化を行います... 完了しました 944:DXライブラリの初期化処理終了 5280:フォントの初期化を行います 5280:フォントの初期化は正常に終了しました 5281:DirectInput 関連の終了処理... 完了 5299:DirectSound の終了処理は正常に終了しました 5305:ウインドウを閉じようとしています 5312:ウインドウが破棄されようとしています 5313:ソフトを終了する準備が整いました 5388: 5388:Alloc memory dump 5389: Total size:0(0.000kb) Alloc num:0 5389:
メンテ
Re: SetUseDirect3DVersion ( No.3 )
名前:管理人 日時:2015/08/30 11:46

if 文では駄目で、switch 文だと大丈夫、ということはコンパイラにバグが無い限りは発生しないと思います (・・; > それから自分のノートではDX_DIRECT3D_NONEモードは何も描画されませんでした。 > DX_DIRECT3D_NONEを使用することはまずないので、問題はありません。 すみません、SetUseDirect3DVersion( DX_DIRECT3D_NONE ) ; を実行すると ソフトウエアレンダリングモードになるのですが、最近のバージョンでは ソフトウエアレンダリングモードでは表画面に描画処理をしても何も表示されないという 状態になっていました 自分も手元で確認する際に発見して、そのとき修正したのを失念していました・・・ DX_DIRECT3D_NONE を使用されることは無いとのことですので必要ないとは思いますが こちらに修正版をアップしておきました m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: SetUseDirect3DVersion ( No.4 )
名前:さと(解決) 日時:2016/06/05 10:14

解決の報告を忘れていました。 お手数をおかけいたしました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存