トップページ > 記事閲覧
MacBook Air上での動作
名前:Nov 日時: 2016/05/10 08:12

はじめまして。MacBook Air上にVirtualBoxでWindows10を仮想化してDXライブラリを使用しようとしています。 最初に簡単な文字列を表示させようとしましたが、ウィンドウは表示されますが、それ以外に何も表示されません。 このような環境ではDXライブラリは動作不可なのでしょうか? 環境 ・Windows10 ・VS2015Community
メンテ

Page: 1 |

Re: MacBook Air上での動作 ( No.1 )
名前:管理人 日時:2016/05/10 15:34

今まで仮想環境で動作させたことが無いので何とも言えませんが、 特殊な環境ではあると思いますので正常に動作しなくてもおかしくないとは思います プログラムを実行するとプログラムを実行したフォルダに Log.txt というファイルが 作成されるのですが、正常に動作しない原因がわかるかもしれませんので よろしければ Log.txt の内容をこちらの掲示板に貼り付けて頂けないでしょうか? m(_ _)m
メンテ
Re: MacBook Air上での動作 ( No.2 )
名前:can110 日時:2016/05/10 19:04

文字列の描画に関して、過去ログに同様の現象があったので貼っておきます。 DrawStringで エラー発生 hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=996 ロケールとフォント設定によっては描画失敗することがあるようです。 的外れでしたらすみません。
メンテ
Re: MacBook Air上での動作 ( No.3 )
名前:Nov 日時:2016/05/10 21:02

こちらがログになります。やはり仮想マシン上では使わないほうがいいのでしょうか。 0:ChangeWindowMode実行 0:ウインドウモードフラグが立てられました 15:DXライブラリの初期化処理開始 15: システムの情報を出力します 30: DXライブラリ Ver3.16b 30: 論理プロセッサの数 : 2 30: OS Windows10 ( Build 10586 ) 152: 現時点のCPU動作速度:大体1.60GHz 201: MMX命令を使用します 224: SSE命令が使用可能です 238: SSE2命令が使用可能です 250: CPUベンダ:GenuineIntel 281: CPU名:Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz 286: COMの初期化... 成功しました 300: メモリ総量:4003.55MB 空きメモリ領域:2128.46MB 305: タイマーの精度を検査します 310: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 316: パフォーマンスカウンターを使用します タイマー精度 : 1562.500000 KHz 327: ソフトの二重起動検査... 二重起動はされていませんでした 345: ウインドウクラスを登録します... 登録に成功しました 355: ウインドウモード起動用のウインドウを作成します 361: ディスプレイ情報のセットアップ開始 368: モニターの数:1 ディスプレイデバイスの数:1 372: No.0 モニター名:\\.\DISPLAY1 1440x762 32bit 60Hz 379: ディスプレイ情報のセットアップ完了 387: ウインドウの作成に成功しました 392: ウインドウを表示します 406: IMEを無効にしました 428: ウインドウスタイルをウインドウモード用に変更します... 完了 480: DirectInput関係初期化処理 488: XInput DLL の読み込み中... 成功 505: DirectInput7 の取得中... 成功 528: 引き続き初期化処理... 初期化成功 553: ジョイパッドの初期化... 569: ジョイパッドの初期化は正常に終了しました 574: マウスデバイスの初期化... 初期化成功 589: キーボードデバイスの初期化... 初期化成功 620: DirectInput 関連の初期化は正常に終了しました 635: DirectSound の初期化を行います 641: DirectSound インターフェースの取得を行います.... 成功 659: 引き続きインターフェースの初期化処理... 成功 758: DirectSound デバイスを列挙します 765: Module Name : Description : プライマリ サウンド ドライバー 771: Module Name : {0.0.0.00000000}.{af28c98c-7483-4345-bbf3-f1449df651bc} Description : スピーカー (High Definition Audio デバイス) 776: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 781: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 792: 利用可能サンプリング精度 798: Primary 16bit = OK 8bit = OK 803: Secondary 16bit = OK 8bit = OK 808: 利用可能チャンネル 815: Primary MONO = OK STEREO = OK 820: Secondary MONO = OK STEREO = OK 826: DirectSound の初期化は正常に終了しました 834: d3d11.dll の読み込み.... 成功 847: dxgi.dll の読み込み.... 成功 859: API CreateDXGIFactory のアドレスを取得します.... 成功 871: IDXGIFactory を作成します.... 成功 886: API D3D11CreateDevice のアドレスを取得します.... 成功 899: IDXGIAdapter を取得します.... 成功 911: Direct3D 11 FeatureLevel 11_0 以上を対象とします 917: ID3D11Device オブジェクトを取得します.... 失敗 931: d3d11.dll の解放 1 938: dxgi.dll の解放 1 944: Direct3D11 のオブジェクト数を出力 950: Direct3D11 のオブジェクト合計数 : 0 958: DirectDraw オブジェクトの取得を行います.... 成功 972: 引き続き初期化処理... 初期化に成功しました 988: IDirect3D9Ex オブジェクトを取得します.... 成功 1235: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 1533: 成功 1540: Driver:VBoxDispD3D-x86.dll Description:VirtualBox Graphics Adapter for Windows 8+ 1563: 画面のフォーマットは D3DFMT_X8R8G8B8 です 1573: 16bit Zバッファフォーマットは D3DFMT_D16 です 1579: 24bit Zバッファフォーマットは D3DFMT_D24X8 です 1588: 32bit Zバッファフォーマットは D3DFMT_D24X8 です 1594: 16bit カラーフォーマットは D3DFMT_R5G6B5 です 1602: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1608: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 1614: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1620: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 1627: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1634: DXT1テクスチャフォーマットはD3DFMT_DXT1 です 1640: DXT2テクスチャフォーマットはD3DFMT_DXT2 です 1646: DXT3テクスチャフォーマットはD3DFMT_DXT3 です 1652: DXT4テクスチャフォーマットはD3DFMT_DXT4 です 1658: DXT5テクスチャフォーマットはD3DFMT_DXT5 です 1665: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 1672: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 1679: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 1685: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 1691: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 1698: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 1704: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 1710: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 1717: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 1724: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 1730: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 1737: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 1743: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1749: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1757: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 1764: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 1771: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 1781: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 1792: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 1798: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 1804: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 1810: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 1815: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 1823: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 1829: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 1836: 一度に描画できるプリミティブの最大数:1048575 1843: 対応している最大頂点インデックス:1048575 1849: 同時にレンダリングできるバッファの数:4 1855: 最大テクスチャサイズ 幅:16384 高さ:16384 1863: テクスチャステージテンポラリレジスタ:使用可 1868: 減算合成のハードウェア対応:ネイティブ 1875: ハードウェア頂点シェーダーバージョンコード:300 1882: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 1888: ピクセルシェーダーバージョンコード:300 1929: バックバッファロック転送の時間:2444nsec 一時的な描画可能バッファを使用した転送の時間:3098nsec 1935: バックバッファロックを使用します 1942: Zバッファを作成します.... 成功 1982: プログラマブルシェーダーを使用します 2074: フォントの初期化を行います 2084: フォントの初期化は正常に終了しました 2130: 文字コードバッファの初期化を行います... 完了しました 2146:DXライブラリの初期化処理終了 13403:フォントの初期化を行います 13409:フォントの初期化は正常に終了しました 13418:Direct3DDevice9 の解放 2 13468:d3d9.dll の解放 1 13475:DirectInput 関連の終了処理... 完了 13502:DirectSound の終了処理は正常に終了しました 13538:ウインドウを閉じようとしています 13574:ウインドウが破棄されようとしています 13599:ソフトを終了する準備が整いました 13676: 13688:Alloc memory dump 13694: Total size:0(0.000kb) Alloc num:0 13706:
メンテ
Re: MacBook Air上での動作 ( No.4 )
名前:管理人 日時:2016/05/11 00:54

ログの貼り付けありがとうございます > やはり仮想マシン上では使わないほうがいいのでしょうか。 いえ、正常に動作すれば特に使わないほうがいいということはないと思います 文字列の描画は正常に行えなかったとのことですが、例えば以下のような四角形の描画はできますでしょうか? #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x, add ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // メインループ x = 0 ; add = 8 ; while( ProcessMessage() == 0 ) { // 移動 x += add ; if( x < 0 || x > 640 ) add = -add ; // 画面のクリア ClearDrawScreen() ; // 四角形の描画 DrawBox( x, 120, x + 64, 120 + 64, GetColor( 255,255,255 ), TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ
Re: MacBook Air上での動作 ( No.5 )
名前:Nov 日時:2016/05/11 09:10

早速上のコードをコピペして実行してみましたが、やはり黒い画面のみで、四角形の描画は行われませんでした。コンパイル自体は通り、警告メッセージなども無しです。
メンテ
Re: MacBook Air上での動作 ( No.6 )
名前:管理人 日時:2016/05/11 13:05

お試しいただきありがとうございます 駄目でしたか… では、No.4 のプログラムの // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; の前( ChangeWindowMode( TRUE ) ; と同じように DxLib_Init 呼び出し前の個所に )に SetUseDirect3DVersion( DX_DIRECT3D_9 ); を追加して実行してみた場合や、 SetUseDirectDrawFlag( FALSE ); を追加して実行してみた場合はどうでしょうか?
メンテ
Re: MacBook Air上での動作 ( No.7 )
名前:Nov 日時:2016/05/11 15:08

返信ありがとうございます。上記のコード二つを試してみましたが、下のようになりました。 ・SetUseDirect3DVersion( DX_DIRECT3D_9 ); →以前と変化無しで、何も表示されない結果になりました。 ・SetUseDirectDrawFlag( FALSE ); →画面を往復する白い四角形が表示されました。ただし、チラツキが発生していました。
メンテ
Re: MacBook Air上での動作 ( No.8 )
名前:yumetodo 日時:2016/05/11 17:31

仮想環境と一口にいってもかなりいろいろありますが何を使っていますか? もしVirtual Boxを使っている場合は、3Dアクセラレーションが有効になっているか、 GuestAdditionsを導入しているか、を確認してください。
メンテ
Re: MacBook Air上での動作 ( No.9 )
名前:Nov 日時:2016/05/11 20:34

仮想マシンの設定は以下のようになっています。 ・使用OS → Windows10 64bit ・メモリ → 4GB ・プロセッサ数 → 2 ・使用率制限 → 100% ・準仮想化インターフェース → デフォルト ・仮想化支援機能 → ネステッドページングを有効化 ・ビデオメモリ → 256MB ・3Dアクセラレーション → 有効 ・2Dビデオアクセラレーション 有効 ・GuestAdditions → 導入済
メンテ
Re: MacBook Air上での動作 ( No.10 )
名前:yumetodo 日時:2016/05/12 10:53

眠ってたXPの仮想vdiを引っ張り出してきて実験しました。 Host: Windows 7 x64 SP1 Virtual Box 5.0.20 r106931 Guest: WindowsXP x86 SP3 ビデオメモリ → 128MB 3Dアクセラレーション → 有効 2Dビデオアクセラレーション 有効 GuestAdditions → 導入済(セーフモードで3Dアクセラレーションのためのオプションも導入済み) DxDiagの情報 pastebin.com/vKK9j3tf ビルド方法 Visual Studio 2015 Update2 でXP向けビルドを行う(Release build) 結果 >>4 そのまま ->真っ黒な画面(pastebin.com/n0ew8XrZ) SetUseDirect3DVersion( DX_DIRECT3D_9 );を追加 ->真っ黒な画面(pastebin.com/68rQYZpZ) SetUseDirectDrawFlag( FALSE ); ->画面を往復する白い四角形が表示されました。チラツキは発生しませんでした。(pastebin.com/ehvEz2CJ) (動作画面)www.dailymotion.com/video/x49y7kx うーん・・・。
メンテ
Re: MacBook Air上での動作 ( No.11 )
名前:管理人 日時:2016/05/13 02:48

残念ながら Virtual Box 環境での Direct3D 9 ではDXライブラリは正常に動作しないようですので SetUseDirectDrawFlag( FALSE ) ; を実行してソフトウエアレンダリングモードを使用する必要がありそうです… No.4 の // 裏画面の内容を表画面に反映 ScreenFlip() ; の後に WaitTimer( 16 ) ; という記述を追加すれば左右に動く四角形の速度が正常になると思います
メンテ
Re: MacBook Air上での動作 ( No.12 )
名前:yumetodo 日時:2016/05/13 21:05

しかしなんでなんでしょうね・・・。DxDiagのテストは通ってるのに・・・。
メンテ
Re: MacBook Air上での動作 ( No.13 )
名前:管理人 日時:2016/05/16 02:09

こちらのページでは VirtualBox の Direct3D 対応はまだ実験的と書かれていますので VirtualBox Mania <3Dアクセラレーションを有効化> http://vboxmania.net/content/3d%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96 まだ実用レベルでは動作しない、という可能性もあるかもしれません
メンテ
Re: MacBook Air上での動作 ( No.14 )
名前:Nov 日時:2016/05/16 09:07

なるほど・・・とりあえず現時点ではMacbookAir上で動かすのはあきらめようと思います。回答してくださりありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存