Re: 起動が遅い ( No.1 ) |
- 名前:通 日時:2009/02/10 10:09
結局、どうして欲しいのかよく分かりませんが、
DXライブラリが使用しているDirectX7は、
かなりの年代物で互換性が保たれています。
Vistaなどの新しいOSでは互換機能を使用するために
ある程度の時間がかかる可能性もあります。
#特に起動時
また、グラフィック性能の問題の可能性もありです
DirectXを使用するために最適な設定を
DXライブラリは内部でテストを行って順次
最適なものを探したりしていたはずなので、
グラフィックメモリの容量が多くても、
表現できる色や、作成できるテクスチャの
制限などとは全く別の問題でこのあたりの
制限を保つためにテストが数回行われたとか。
グラフィック性能云々は、
DXライブラリのログとか貼り付けてもらえると
もう少し何か分かるかもしれませんね。
# たぶんテストした結果を出しているはずなので。
# これらはDxInitを呼び出したときに行われるので
# 環境によっては仕様ということになりますが。
# マルチポストはあんまり関心しませんが。。。
|
Re: 起動が遅い ( No.2 ) |
- 名前:管理人 日時:2009/02/10 19:37
「別の人が作ったフリーのゲーム」とは、DXライブラリを使用して作成されたゲームでしょうか?
|
Re: 起動が遅い ( No.3 ) |
- 名前:ask 日時:2009/02/10 20:24
はい。 ちなみにDXライブラリを使用せず、directxを使用したゲームはちゃんと動きます。
|
Re: 起動が遅い ( No.4 ) |
- 名前:管理人 日時:2009/02/11 00:08
起動までに5〜10秒掛かるとのことですが、DxLib_Init が
終了するまでにそれだけ時間が掛かるということでしょうか?
それとも LoadGraph 等を行い、すべての準備が整ってソフトの
画面が表示されるまでに5〜10秒かかるということでしょうか?
|
Re: 起動が遅い ( No.5 ) |
- 名前:ask 日時:2009/02/11 18:22
起動するとウィンドウが真っ黒の画面のまま
5〜10秒硬直します。そのあと画像の表示など、
ちゃんと表示してくれます。(ウィンドウモードでも一緒です) ちなみに画面の色を
32ビットから16ビットに変えると、多少時間が縮みます。
|
Re: 起動が遅い ( No.6 ) |
- 名前:管理人 日時:2009/02/11 21:27
以下のような初期化して直ぐ終了するようなプログラムでも5〜10秒掛かってしまうのでしょうか?
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
|
Re: 起動が遅い ( No.7 ) |
- 名前:ask 日時:2009/02/12 20:07
掛かってしまいます。多分グラフィックボードが原因だと思います。(Geforce 9600M GS)
|
Re: 起動が遅い ( No.8 ) |
- 名前:管理人 日時:2009/02/12 20:50
うーん、何ででしょう
ログの出力を止めたら起動が早くなるかもしれませんので、宜しければ DxLib_Init を呼ぶ前に
ログを出力するかどうかを設定する SetOutApplicationLogValidFlag 関数に FALSE を渡して
呼んでみて下さい
↓こんな感じに・・・
SetOutApplicationLogValidFlag( FALSE ) ;
if( DxLib_Init() < 0 ) return -1 ;
因みにUSBメモリ上のフォルダを起動時のカレントフォルダにして起動したら
ログ出力の書き込みが原因で起動が遅かったということはあります
それでも変化が無いようでしたら、DirectX が原因かどうかの確認の意味も含めて、
描画処理に DirectX を使用するかどうかを設定する SetUseDirectDrawFlag 関数に
FALSE を渡して呼んで実行してみて下さい
SetUseDirectDrawFlag( FALSE ) ;
SetOutApplicationLogValidFlag( FALSE ) ; // ←一応ログ出力もOFF
if( DxLib_Init() < 0 ) return -1 ;
|
Re: 起動が遅い ( No.9 ) |
- 名前:ask 日時:2009/02/13 15:44
SetUseDirectDrawFlag関数を使用したところ上手くいきました!! つまりこれはDirectXが原因ということなので、リカバリした方がいいのでしょうか?DirectXを再インストールしても無理だったので。。
|
Re: 起動が遅い ( No.10 ) |
- 名前:管理人 日時:2009/02/14 14:56
リカバリによって解消されるかどうかはわかりませんが、グラフィクスドライバの
更新など色々試されてみると良いかもしれません
私の手元にaskさんの環境が無いので改善は難しいとは思いますが、
askさんの環境で起動が遅くなってしまっている原因を知ることができるかもしれませんので
宜しければライブラリ実行時に作成されるログファイル( Log.txt )の内容をこちらの掲示板に
書き込んで頂けないでしょうか?
( Log.txt の各行の左端にある数値は初期化開始からの経過時間( ミリ秒単位 )なので、
どこで時間が掛かっているのか分かるのです )
|
Re: 起動が遅い ( No.11 ) |
- 名前:ask 日時:2009/02/14 20:09
0:システムの情報を出力します
1: DXライブラリ Ver2.25
2: OS WindowsVista ( Build 6001 Service Pack 1 )
104: CPU動作速度:大体2.52GHz
105: MMX命令を使用します
105: SSE命令が使用可能です
106: SSE2命令が使用可能です
107: CPUベンダ:GenuineIntel
111: CPU名:Intel(R) Core(TM)2 Duo CPU T9400 @ 2.53GHz
112:COMの初期化... 成功しました
144:メモリ総量:2048.00MB 空きメモリ領域:1811.37MB
145:タイマーの精度を検査します
146:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
147: パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz
149: ソフトの二重起動検査... 二重起動はされていませんでした
152:ウインドウクラスを登録します... 登録に成功しました
153:ウインドウモード起動用のウインドウを作成します
274:IMEを無効にしました
476:ウインドウスタイルをウインドウモード用に変更します... 完了
479:DirectInput関係初期化処理
480: DirectInput7 の取得中... 成功
517: 引き続き初期化処理... 初期化成功
519: ジョイパッドの初期化...
524: ジョイパッドの初期化は正常に終了しました
525: マウスデバイスの初期化... 初期化成功
527: キーボードデバイスの初期化... 初期化成功
529:DirectInput 関連の初期化は正常に終了しました
530:DirectSound の初期化を行います
531:DirectSound インターフェースの取得を行います.... 成功
542:引き続きインターフェースの初期化処理... 成功
619: DirectSound デバイスを列挙します
620: モジュール名: ドライバ記述:プライマリ サウンド ドライバ
621: モジュール名:{0.0.0.00000000}.{c643042c-276f-4f9f-baa6-73636e5936e0} ドライバ記述:スピーカー (High Definition Audio デバイス)
622: モジュール名:{0.0.0.00000000}.{c176bfc8-90a7-403f-bc66-6b8a41881759} ドライバ記述:OUT (6- EDIROL UA-1EX)
623: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
624: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
625: 利用可能サンプリング精度
626: プライマリ 16bit = OK 8bit = OK
627: セカンダリ 16bit = OK 8bit = OK
628: 利用可能チャンネル
629: プライマリ MONO = OK STEREO = OK
630: セカンダリ MONO = OK STEREO = OK
631:DirectSound の初期化は正常に終了しました
631:DirectDraw 関連の初期化を行います
632: DirectDraw オブジェクトの取得を行います.... 成功
645: 引き続き初期化処理... 初期化に成功しました
1435: ビデオカードの情報
1436: 画面モード変更処理を開始します
1497: 画面モードの変更処理を開始します 640 x 480 16 bit
1498: ウインドウモードにします
1499: 画面モードの変更は正常に終了しました
1501: カラー情報
1502: A:00000000 B:00ff0000 G:0000ff00 B:000000ff
1503: ウインドウスタイルをウインドウモード用に変更します... 完了
1505: 出力画面用の DirectDrawSurface を作成します
1525: 各スクリーンメモリの配置位置
1527: PrimaryBuffer : VIDEOMEMORY
1528: BaskBuffer : VIDEOMEMORY
1529: 出力画面用の DirectDrawSurface の作成は正常に終了しました
1530: Direct3D 関連の初期化を行います
1531: Direct3Dオブジェクトを取得します
1581: Direct3Dオブジェクトを取得しました
1583: HALデバイスを発見しました
1584: ハードウエアT&Lデバイスを発見しました
1586: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
1615: テクスチャ最大幅:8192 最小幅:1
1616: 描画制限: D_D3DPTEXTURECAPS_POW2 = 0 D_D3DPTEXTURECAPS_SQUAREONLY = 0
1618: 最大テクスチャステージ数 = 8 最大テクスチャブレンド数 = 8
1619: テクスチャピクセルフォーマット
1620: 通常グラフィック用
1621: BIT:16 RED:5 GREEN:5 BLUE:5
1622: RED:007c00 GREEN:0003e0 BLUE:00001f
1623: BIT:32 RED:8 GREEN:8 BLUE:8
1624: RED:ff0000 GREEN:00ff00 BLUE:0000ff
1625: アルファチャンネル付きグラフィック用
1626: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4
1627: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f
1628: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8
1629: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff
1630: Direct3D 関連の初期化は正常に終了しました
1631: グラフィック管理系の初期化を行います
1633: 3Dグラフィック描画機能を使用します
1646: フォントの初期化を行います
1684: フォントの初期化は正常に終了しました
1685: グラフィック管理系の初期化は正常に終了しました
17208: サーフェス間転送には BltFast を使用します
17209: BitBlt:15499742μs BltFast:18131μs
17210: スキャンラインの数:800
17341: 1フレーム当たりの時間は 17 msecです
17342: Tri00:17 msec
17343: Tri01:16 msec
17344: Tri02:17 msec
17345: Tri03:17 msec
17346: 画面モード変更処理は正常に終了しました
17367: DirectDraw 関連の初期化は正常に終了しました
17369: 文字コードバッファの初期化を行います... 完了しました
19863: DirectDraw 関連の終了処理をおこないます
19864: フォントの初期化を行います
19867: フォントの初期化は正常に終了しました
19868: グラフィック管理系の終了処理は正常に終了しました
19869: Direct3D 関連の終了処理を行います
19871: 3Dデバイスの削除は正常に終了しました
19872: Direct3D 関連の終了処理は正常に終了しました
19873: メインサーフェスを破棄をします... 完了しました
19875: DirectDrawオブジェクトを解放します
19911: DirectDrawオブジェクトを解放しました
19912: DirectDraw 関連の終了処理は正常に終了しました
19913: DirectInput 関連の終了処理... 完了
19919: DirectSound の終了処理は正常に終了しました
19920: ウインドウを閉じようとしています
19925: ウインドウが破棄されようとしています
19926: ソフトを終了する準備が整いました
20866:
20867: Alloc memory dump Total size:0(0.000kb) Alloc num:0
20869:
|
Re: 起動が遅い ( No.12 ) |
- 名前:管理人 日時:2009/02/15 12:26
ログを拝見する限りでは時間が掛かっている箇所は幾つかあるみたいです
その中で一番時間が掛かっている処理は画像の転送に DirectDraw の BitBlt というAPIを
使用するのと、BltFast というのを使用するのではどちらが速いかの計測のようですので、
その計測処理を簡略化したバージョンを作成しました
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
宜しければお試し下さい m(_ _)m
もしかしたらこれで起動時間が短くなるかもしれません
|
Re: 起動が遅い ( No.13 ) |
- 名前:ask 日時:2009/02/15 14:22
迅速な対応ありがとうございました。
最初の時より大分速くなりました!
|