トップページ > 過去ログ > 記事閲覧
フルスクリーンで動作がカクカクする
名前:たわし 日時: 2013/03/02 00:23

初めまして。DXライブラリでゲームを作り始めました。 100個程度の描画なのに、フルスクリーンにすると、数秒毎に、絵がカクカクっと一瞬止まったりしてしまいます。 どうしてなのでしょうか? ウインドウモードだと、綺麗に動作するのですが… ソースを載せましたが、32x32のサイズのtest1.pngの画像が別途必要です。 #include <math.h> #include "DxLib.h" const int N = 60; //平均を取るサンプル数 const int FPS = 60; //設定したFPS const int ScreenWidth = 800; const int ScreenHeight = 600; const int EnemyMax = 100; const boolean WINDOWMODE = FALSE;//TRUE; //WindowsMode表示 const boolean WAITVSYNC = TRUE; //VSYNCを待つ float x[EnemyMax], y[EnemyMax]; //座標 float x1[EnemyMax], y2[EnemyMax]; //1Step当たりの移動量 int GraphHandle; int Color ; int mStartTime; //測定開始時刻 int mCount; //カウンタ float mFps; //fps bool Update() { if( mCount == 0 ){ //1フレーム目なら時刻を記憶 mStartTime = GetNowCount(); } if( mCount == N ){ //60フレーム目なら平均を計算する int t = GetNowCount(); mFps = 1000.f/((t-mStartTime)/(float)N); mCount = 0; mStartTime = t; } mCount++; for(int i=0;i<EnemyMax;i++) { x[i] += x1[i]; y[i] += y2[i]; if (x[i]>ScreenWidth-32) { x[i] = ScreenWidth-32; x1[i] *= -1; } if (x[i] < 0) { x[i] = 0; x1[i] *= -1; } if (y[i]>ScreenHeight-32) { y[i] = ScreenHeight-32; y2[i] *= -1; } if (y[i] < 0) { y[i] =0; y2[i] *= -1; } } return true; } void Draw() { ClearDrawScreen() ; for(int i=0;i<EnemyMax;i++) { DrawGraph( int(x[i]), int(y[i]) , GraphHandle , TRUE ) ; } DrawFormatString(0, 0, GetColor(255,255,255), "%.1f fps", mFps); } void Wait(){ int tookTime = GetNowCount() - mStartTime; //かかった時間 int waitTime = mCount*1000/FPS - tookTime; //待つべき時間 if( waitTime > 0 ) { Sleep(waitTime); //待機 } } int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { SetGraphMode( ScreenWidth, ScreenHeight , 16 ) ; //Windowモードで表示 ChangeWindowMode(WINDOWMODE); //画面の書き換えタイミング待ち SetWaitVSyncFlag(WAITVSYNC); // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); // グラフィック『test1.bmp』をメモリにロード GraphHandle = LoadGraph( "test1.png" ) ; // 計測中に別のウインドウがアクティブになっても問題が無いように常時実行フラグをセット SetAlwaysRunFlag( TRUE ) ; Color = GetColor( 255 , 255 , 255 ) ; for(int i=0;i<EnemyMax;i++) { x[i] = 10; y[i] = 10; x1[i] = (float)((rand()%100)/100.0f+1); y2[i] = (float)((rand()%100)/100.0f+1); } while( ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0 ) { Update(); //更新 Draw(); //描画 ScreenFlip(); Wait(); //待機 } DxLib_End(); return 0; }

Page: 1 |

Re: フルスクリーンで動作がカクカクする ( No.1 )
名前:管理人 日時:2013/03/03 21:47

原因は「VSYNCの間隔が GetNowCount で取得できる時刻の 1000 / 60 ではない」だと思います 試しに直前の Wait 関数で Sleep した時間を表示するようにしてみましたので、 よろしければ実行してみてください #include <math.h> #include "DxLib.h" const int N = 60; //平均を取るサンプル数 const int FPS = 60; //設定したFPS const int ScreenWidth = 800; const int ScreenHeight = 600; const int EnemyMax = 100; const boolean WINDOWMODE = FALSE;//TRUE; //WindowsMode表示 const boolean WAITVSYNC = TRUE; //VSYNCを待つ float x[EnemyMax], y[EnemyMax]; //座標 float x1[EnemyMax], y2[EnemyMax]; //1Step当たりの移動量 int GraphHandle; int Color ; int mWaitTime; int mStartTime; //測定開始時刻 int mCount; //カウンタ float mFps; //fps bool Update() { if( mCount == 0 ){ //1フレーム目なら時刻を記憶 mStartTime = GetNowCount(); } if( mCount == N ){ //60フレーム目なら平均を計算する int t = GetNowCount(); mFps = 1000.f/((t-mStartTime)/(float)N); mCount = 0; mStartTime = t; } mCount++; for(int i=0;i<EnemyMax;i++) { x[i] += x1[i]; y[i] += y2[i]; if (x[i]>ScreenWidth-32) { x[i] = ScreenWidth-32; x1[i] *= -1; } if (x[i] < 0) { x[i] = 0; x1[i] *= -1; } if (y[i]>ScreenHeight-32) { y[i] = ScreenHeight-32; y2[i] *= -1; } if (y[i] < 0) { y[i] =0; y2[i] *= -1; } } return true; } void Draw() { ClearDrawScreen() ; for(int i=0;i<EnemyMax;i++) { DrawGraph( int(x[i]), int(y[i]) , GraphHandle , TRUE ) ; } DrawFormatString(0, 0, GetColor(255,255,255), "%.1f fps", mFps); } void Wait(){ int tookTime = GetNowCount() - mStartTime; //かかった時間 int waitTime = mCount*1000/FPS - tookTime; //待つべき時間 if( waitTime > 0 ) { mWaitTime = waitTime; Sleep(waitTime); //待機 } } int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { SetGraphMode( ScreenWidth, ScreenHeight , 16 ) ; //Windowモードで表示 ChangeWindowMode(WINDOWMODE); //画面の書き換えタイミング待ち SetWaitVSyncFlag(WAITVSYNC); // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); // グラフィック『test1.bmp』をメモリにロード GraphHandle = LoadGraph( "test1.png" ) ; // 計測中に別のウインドウがアクティブになっても問題が無いように常時実行フラグをセット SetAlwaysRunFlag( TRUE ) ; Color = GetColor( 255 , 255 , 255 ) ; for(int i=0;i<EnemyMax;i++) { x[i] = 10; y[i] = 10; x1[i] = (float)((rand()%100)/100.0f+1); y2[i] = (float)((rand()%100)/100.0f+1); } while( ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0 ) { Update(); //更新 Draw(); //描画 DrawFormatString( 0, 16, GetColor( 255,255,255 ), "WiatTime:%d", mWaitTime ) ; ScreenFlip(); Wait(); //待機 } DxLib_End(); return 0; } 私の環境ではフルスクリーンの場合、表示される WaitTime の値が徐々に大きくなっていき、 17前後まで増えた後1付近に戻る、というのを繰り返していました こうなる原因はVSYNCが訪れるタイミングが GetNowCount で得られる値から導き出した 1フレーム辺りの時間と微妙に異なるからです ( 逆にウインドウモードの場合は何故か殆ど一致しているお陰かカクカク現象は発生していません ) VSYNC待ちをする場合で、望むFPSとVSYNCが訪れる間隔がほぼ一致している場合は Wait関数では「プログラム開始時に取得した時刻からの経過時間から待つ時間を算出する」のではなく 「前回VSYNCのタイミング( ScreenFlip から出てきたタイミング )からの経過時間から 待つ時間を算出する」ようにすると今回のような現象を防ぐことができます ( もしくはVSYNC待ちに同期処理を任せて Wait関数を使わないなど )
Re: フルスクリーンで動作がカクカクする ( No.2 )
名前:たわし 日時:2013/03/10 21:33

お返事ありがとうございます。 Waitをやめて、VSYNCのみで同期処理を行う方法に変更してみたのですが、改善されませんでした。 コンパイル済みの同じプログラムを、XPや7で動かした場合は問題なく、Windows8で動かした場合のみ現象が発生しているようです。 Windows8でも、Window表示の場合は大丈夫でフルスクリーンの場合のみ発生しています。 ビデオドライバのアップデートも適用済みなのですけどね… しかし、東方projectのゲームや、同じDXライブラリを使用している他の人のゲームでは現象が発生していません。 どこに違いがあるのでしょうかね? ちなみに、現象をもう一度詳しく書きますと次のような現象です。 ・Windows8でフルスクリーン表示の組み合わせの時のみ、1秒間隔くらいの周期で、移動物がカクカクっと動く。(私には、飛び飛びにワープをしているように見える) ・表示の同期はVSYNCを使用している。 といった感じです。
Re: フルスクリーンで動作がカクカクする ( No.3 )
名前:ロドリゲス 日時:2013/03/14 16:31

こんにちは。 質問者様のPCの性能はいかがでしょうか? 以前私はAtomのネットブックで動かしたらカクカクしたことがありました。
Re: フルスクリーンで動作がカクカクする ( No.4 )
名前:管理人 日時:2013/03/17 03:23

私も Windows8 の環境で以下のテストプログラムを実行してみましたが、 カクカクすることはありませんでした #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x, add; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); // メインループ(何かキーが押されたらループを抜ける) x = 0; add = 8; while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // 移動 x += add; if( x < 0 || x > 640 ) add = -add; // 画面のクリア ClearDrawScreen(); // 画像の描画 DrawBox( x, 0, x + 64, 64, GetColor( 255,255,255 ), TRUE ); // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; } コンパイルした実行ファイルをこちらにアップしましたので、 よろしければたわしさんの環境でもカクカクしないか試してみて頂けないでしょうか? https://dxlib.xsrv.jp/file/FullScreenTest.zip 尚、実行から10〜20秒くらいは内部で色々な DLL がロードされたりアンロードされたり スレッドが立ち上がったり終了したりしているので、定期的にカクカクします 10〜20秒ほど経過するとその辺りが落ち着いてカクカクすることが無くなります
Re: フルスクリーンで動作がカクカクする ( No.5 )
名前:たわし 日時:2013/03/24 22:54

ロドリゲス さんお返事ありがとうございます。 そして、随分と遅くなってしまい申し訳ありません。 PCのスペックなのですが、 CPU:Core 2 Duo E8500 @ 3.16GHz メモリ:8GB Windows 8 Pro (64Bit版) グラフィックボード:NVIDIA GeForce 8600 GT という感じで、どうみても今動かしてるサンプル程度なら全然平気なハズなんですよねぇ… グラフィックボードのドライバも最新を適用してみてもダメでした。
Re: フルスクリーンで動作がカクカクする ( No.6 )
名前:たわし 日時:2013/03/24 23:07

管理人さん、お返事ありがとうございます。 1:まず作っていただいたexeをダウンロードしてみたのですが、とてもスムーズに動きました。 2:今作ってるプロジェクトファイルを利用してソースだけまるまる上書き(入れ替え)して実行すると、やはりダメでした。 →ソースの書き方に問題があるわけではなさそうです。 3:HPにある環境設定を再度すべて行い新規にプロジェクトを作り直してみましたが、やはりダメでした。 私の環境は、1つ上の返答内容+Visual Studio 2010です。 ★頂いたEXEを実行した時のログは 0:設定されている画面設定 640x480 16bit color 202:640x480 32bit color 202:640x480 32bit color 202:640x480 32bit color 202:720x480 32bit color 202:720x480 32bit color 202:720x480 32bit color 202:720x480 32bit color 202:720x480 32bit color 218:720x576 32bit color 218:720x576 32bit color 218:720x576 32bit color 218:720x576 32bit color 218:720x576 32bit color 218:720x576 32bit color 218:800x600 32bit color 218:800x600 32bit color 218:1024x768 32bit color 218:1024x768 32bit color 218:1152x864 32bit color 218:1152x864 32bit color 234:1152x864 32bit color 234:1280x720 32bit color 234:1280x720 32bit color 234:1280x720 32bit color 234:1280x720 32bit color 234:1280x720 32bit color 234:1280x768 32bit color 234:1280x768 32bit color 234:1280x768 32bit color 234:1280x800 32bit color 234:1280x960 32bit color 249:1280x960 32bit color 249:1280x960 32bit color 249:1280x960 32bit color 249:1280x960 32bit color 249:1280x960 32bit color 249:1280x1024 32bit color 249:1280x1024 32bit color 249:1360x768 32bit color 249:1360x768 32bit color 249:1360x768 32bit color 249:1366x768 32bit color 249:1366x768 32bit color 249:1366x768 32bit color 265:1600x900 32bit color 265:1600x900 32bit color 265:1600x900 32bit color 265:1600x900 32bit color 265:1600x900 32bit color 265:1600x900 32bit color 265:1600x1024 32bit color 265:1600x1024 32bit color 265:1600x1024 32bit color 265:1600x1024 32bit color 265:1600x1024 32bit color 265:1600x1024 32bit color 280:1600x1200 32bit color 280:1680x1050 32bit color 280:1680x1050 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1080 32bit color 280:1920x1200 32bit color 296:1920x1200 32bit color 296:1152x720 32bit color 296:1440x900 32bit color 296:640x480 16bit color 296:システムの情報を出力します 296: DXライブラリ Ver3.10b 296: 論理プロセッサの数 : 2 296: OS Windows ( Build 9200 ) 396: CPU動作速度:大体2.81GHz 397: MMX命令を使用します 399: SSE命令が使用可能です 400: SSE2命令が使用可能です 401: CPUベンダ:GenuineIntel 408: CPU名:Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz 409:COMの初期化... 成功しました 412:メモリ総量:4096.00MB 空きメモリ領域:4096.00MB 415:タイマーの精度を検査します 416:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 418: パフォーマンスカウンターを使用します タイマー精度 : 3100.138000 KHz 421: ソフトの二重起動検査... 二重起動はされていませんでした 425:ウインドウクラスを登録します... 登録に成功しました 428:フルスクリーンモード用のウインドウを作成します 430:ウインドウの作成に成功しました 431:ウインドウを表示します 438:カーソルを不可視にしました 441:IMEを無効にしました 462:DirectInput関係初期化処理 464: XInput DLL の読み込み中... 成功 468: DirectInput7 の取得中... 成功 477: 引き続き初期化処理... 初期化成功 481: ジョイパッドの初期化... 483: ジョイパッドの初期化は正常に終了しました 485: マウスデバイスの初期化... 初期化成功 488: キーボードデバイスの初期化... 初期化成功 492:DirectInput 関連の初期化は正常に終了しました 494:XAudio2 の初期化を行います 516: XAudio2_8.dll を使用します 517: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 541:XAudio2 の初期化は正常に終了しました 545:DirectDraw オブジェクトの取得を行います.... 成功 550:引き続き初期化処理... 初期化に成功しました 569:IDirect3D9Ex オブジェクトを取得します.... 成功 574:Desktop Window Manager を無効にしました 575:IDirect3DDevice9Ex オブジェクトを取得します.... Direct3DDevice9Ex の作成に失敗しました 579:Desktop Window Manager を無効にしました 581:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 1288:成功 1290:Driver:nvd3dum.dll Description:NVIDIA GeForce 8600 GT 1292:画面のフォーマットは D3DFMT_X8R8G8B8 です 1293:Zバッファのフォーマットは D3DFMT_D16 です 1295:16bit カラーフォーマットは D3DFMT_R5G6B5 です 1296:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1297:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 1299:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1301:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 1302:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1304:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 1305:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 1307:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 1308:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 1310:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 1311:描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 1313:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1314:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1316:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 1317:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 1319:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 1320:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_L8 です 1322:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_L16 です 1324:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 1325:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 1327:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 1328:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 1330:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 1331:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 1333:一度に描画できるプリミティブの最大数:8388607 1335:対応している最大頂点インデックス:16777215 1336:同時にレンダリングできるバッファの数:4 1338:最大テクスチャサイズ 幅:8192 高さ:8192 1339:テクスチャステージテンポラリレジスタ:使用可 1341:減算合成のハードウェア対応:ネイティブ 1342:ハードウェア頂点シェーダーバージョンコード:300 1344:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 1346:ピクセルシェーダーバージョンコード:300 1355:バックバッファロック転送の時間:75nsec 一時的な描画可能バッファを使用した転送の時間:519nsec 1357:バックバッファロックを使用します 1359:Zバッファを作成します.... 成功 1375:プログラマブルシェーダーを使用します 1426:フォントの初期化を行います 1431:フォントの初期化は正常に終了しました 1443:文字コードバッファの初期化を行います... 完了しました 6740:フォントの初期化を行います 6742:フォントの初期化は正常に終了しました 6745:Direct3DDevice9 の解放 2 7096:Direct3D9 DLL の解放 1 7099:DirectInput 関連の終了処理... 完了 7203:ウインドウを閉じようとしています 7211:ウインドウが破棄されようとしています 7214:ソフトを終了する準備が整いました 7346: 7348:Alloc memory dump 7350: Total size:0(0.000kb) Alloc num:0 7352: ========================================================================================= ★私が作ったEXEを実行した時のログは 0:システムの情報を出力します 0: DXライブラリ Ver3.10a 0: 論理プロセッサの数 : 2 0: OS Windows ( Build 9200 ) 100: CPU動作速度:大体2.75GHz 101: MMX命令を使用します 103: SSE命令が使用可能です 104: SSE2命令が使用可能です 106: CPUベンダ:GenuineIntel 113: CPU名:Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz 114:COMの初期化... 成功しました 117:メモリ総量:4096.00MB 空きメモリ領域:4096.00MB 120:タイマーの精度を検査します 122:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 124: パフォーマンスカウンターを使用します タイマー精度 : 3100.138000 KHz 127: ソフトの二重起動検査... 二重起動はされていませんでした 131:ウインドウクラスを登録します... 登録に成功しました 134:フルスクリーンモード用のウインドウを作成します 137:ウインドウの作成に成功しました 138:ウインドウを表示します 154:カーソルを不可視にしました 156:IMEを無効にしました 177:DirectInput関係初期化処理 179: XInput DLL の読み込み中... 成功 185: DirectInput7 の取得中... 成功 194: 引き続き初期化処理... 初期化成功 197: ジョイパッドの初期化... 200: ジョイパッドの初期化は正常に終了しました 201: マウスデバイスの初期化... 初期化成功 205: キーボードデバイスの初期化... 初期化成功 209:DirectInput 関連の初期化は正常に終了しました 211:DirectSound の初期化を行います 212:DirectSound インターフェースの取得を行います.... 成功 217:引き続きインターフェースの初期化処理... 成功 244: DirectSound デバイスを列挙します 247: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 249: モジュール名:{0.0.0.00000000}.{160d93f3-cc02-4f20-884d-55c708fff2a1} ドライバ記述:スピーカー (High Definition Audio デバイス) 250: モジュール名:{0.0.0.00000000}.{1b74ea90-b393-4178-9671-4dc48c9b81e6} ドライバ記述:デジタル オーディオ (S/PDIF) (High Definition Audio デバイス) 252: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 253: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 255: 利用可能サンプリング精度 256: プライマリ 16bit = OK 8bit = OK 258: セカンダリ 16bit = OK 8bit = OK 259: 利用可能チャンネル 261: プライマリ MONO = OK STEREO = OK 262: セカンダリ MONO = OK STEREO = OK 264:DirectSound の初期化は正常に終了しました 267:DirectDraw オブジェクトの取得を行います.... 成功 272:引き続き初期化処理... 初期化に成功しました 290:IDirect3D9Ex オブジェクトを取得します.... 成功 294:Desktop Window Manager を無効にしました 296:IDirect3DDevice9Ex オブジェクトを取得します.... Direct3DDevice9Ex の作成に失敗しました 300:画面モードの変更処理を開始します 640 x 480 16 bit 301: 画面解像度を変更します... 成功しました 889: フォントの初期化を行います 891: フォントの初期化は正常に終了しました 893: 文字コードバッファの初期化を行います... 完了しました 17544: フォントの初期化を行います 17547: フォントの初期化は正常に終了しました 17770: Direct3D9 DLL の解放 1 17772: DirectInput 関連の終了処理... 完了 17848: DirectSound の終了処理は正常に終了しました 17905: ウインドウを閉じようとしています 17933: ウインドウが破棄されようとしています 17940: ソフトを終了する準備が整いました 18100: 18105: Alloc memory dump 18107: Total size:0(0.000kb) Alloc num:0 18108: という結果になってます。 内容量が大きく違いますが、Direct3DDevice9Exに失敗してるのは同じだとか、そう大きく違わないようです。 もらったEXEはOKでソースから作るとNGという事は、コンパイル(またはリンク)に何か原因があるという事ですよね?
Re: フルスクリーンで動作がカクカクする ( No.7 )
名前:管理人 日時:2013/03/25 01:16

> 2:今作ってるプロジェクトファイルを利用してソースだけまるまる上書き(入れ替え)して実行すると、やはりダメでした。 「まるまる上書き」したソースはスレッドのトップでたわしさんが書き込まれたソースでしょうか? > もらったEXEはOKでソースから作るとNGという事は、コンパイル(またはリンク)に何か原因があるという事ですよね? ソースに問題が無いか確認できていないのでお答えできません
Re: フルスクリーンで動作がカクカクする ( No.8 )
名前:たわし 日時:2013/03/25 14:51

「まるまる上書き」は、スレッドのトップで作ったプロジェクトに対して、No.4 (名前:管理人 日時:2013/03/17 03:23)で示していただいたソースを上書きしたという意図でした。 『私の作ったプロジェクトファイル(環境)で、管理人さんの作成したソースをコンパイルしたらどうなるか?』という事を試してみたという事です。 原因がどこにあるかを判断するのは時期尚早でした。 ソース(.cpp)が同じで、結果が異なるという事は、VisualStudioなどの開発環境か、プロジェクトのプロパティに問題があるのでは?と推測してみたのでした。
Re: フルスクリーンで動作がカクカクする ( No.9 )
名前:ロドリゲス 日時:2013/03/27 09:59

確かにそのスペックでしたら充分ですね。 うーん・・・。リカバリしてしまえば恐らくカクカクせずに動く可能性もありますが・・・。 私の環境はVisual C++ 2010です。 Visual StudioではなくVisual C++ 2010単体で試してみたらいかがでしょうか? Visual StudioとDXライブラリの再インストールもやってみる価値はあると思います。 それと.Net Frameworkは最新版でしょうか?
Re: フルスクリーンで動作がカクカクする ( No.10 )
名前:管理人 日時:2013/03/31 19:02

すみません、たわしさんのログで Direct3DDevice9Ex に失敗した後、その後 Direct3DDevice9Ex を再取得していないことを見落としていました 恐らく Direct3DDevice9Ex の取得に失敗してソフトウエアレンダリングモードで 動作した結果、カクカクした動作になっているのだと思います お手数で申し訳ありませんが、こちらの暫定最新バージョンをお試しになってみてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: フルスクリーンで動作がカクカクする ( No.11 )
名前:たわし 日時:2013/04/03 22:44

ロドリゲス さん、お返事ありがとうございます。 DXライブラリの再インストールは行いましたが、他の事の作業の兼ね合いもあって、他は試すことができませんでした。 .NetもWindows8なので特別古いって事も無いと思いますし、いったい何なんでしょうね? と思っていたら、なんとか改善されました。 色々アドバイスいただいてありがとうございました。
Re: フルスクリーンで動作がカクカクする ( No.12 )
名前:たわし(解決) 日時:2013/04/03 22:45

管理人さんありがとうございます。 おかげで現象が改善されました。 よくよく考えてみれば、ソフトウェアレンダリングだと確かにそうなっちゃいますよね。 これで、心置きなく次のステップへ進むことができそうです!

Page: 1 |