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上で動かすのはあきらめようと思います。回答してくださりありがとうございました。
|