[過去ログ] SDLスレ (987レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
362(6): 名前は開発中のものです。 [sage] 04/02/01 22:25 ID:VsJKdPiS(1) AAS
フルスクリーンにしてSDL_FillRect使うとものすうんごく遅いんですが、
こんなもんなんでしょうか?
SDL_FillRectを使わなければ60fpsくらい出るものが1以下に...
363(1): 名前は開発中のものです。 [sage] 04/02/03 17:19 ID:0RlVpYsz(1) AAS
>>362
あなたの環境でフルスクリーンでSDL_FillRect使って
ものすうんごく遅くなる最小限のサンプルプログラムを
示してくれればみんなテストしてくれると思うよ?
364: 362 [sage] 04/02/04 11:41 ID:URHwb4SZ(1/3) AAS
>>363
長くなるので一部省略します。
if(fullScreen)
screenSrf = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF);
else
screenSrf = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
while(1) {
static int px = 0;
SDL_Rect area = {0, 0, 640/2, 480};
SDL_FillRect(screenSrf, NULL, SDL_MapRGB(screenSrf->format, 255, 255, 255));
if(px > 640 / 2) px = 0;
else px++;
area.x = px;
SDL_FillRect(screenSrf, &area, SDL_MapRGB(screenSrf->format, 0, 0, 0));
SDL_Flip(screenSrf);
waitByFPS();
printf("FPS=%d\n", nowFps);
}
365: 362 [sage] 04/02/04 11:44 ID:URHwb4SZ(2/3) AAS
waitByFPSの中身です。
static void waitByFPS() {
Uint32 nowtime,lefttime;
static Uint32 lasttime=0;
const Uint32 interval=1000/fps;
nowtime = SDL_GetTicks();
lefttime = lasttime+interval-nowtime;
if(lasttime+interval>nowtime) {
SDL_Delay(lefttime);
lasttime=nowtime+lefttime;
nowFps = fps;
} else {
nowFps = 1000 / (nowtime - lasttime);
lasttime=nowtime;
}
}
変数fpsはint型で60、nowFpsには現在のFPSが入っています。
366: 362 [sage] 04/02/04 11:50 ID:URHwb4SZ(3/3) AAS
っと、ここまで貼ったのですが、このプログラムの場合、
フルスクリーンにしたときにFPSが下がるのではなく、
何も写らなくなってしまいます。
問題が発生した元のプログラムも、どうやらSDL_FillRect又はSDL_Flipに
時間がかかっているのではなく、画面が実際に更新されていないだけのようです。
(つまり、nowFpsにはちゃんと60が入っている)
機種固有の問題でしょうか? よろしくお願いします。
367(1): 名前は開発中のものです。 [sage] 04/02/07 11:16 ID:X+ZonyxN(1) AAS
>>362
以下の環境で試してみましたがどの環境でも
フルスクリーン,ウィンドウモードの両方とも
正常に画面は更新されました。
ThinkPad X30, WinXP, cygwin + SDL 1.2.6
自作PC, Win2k, MinGW + SDL 1.2.6
自作PC, Linux2.4.22, SDL 1.2.5
# せめてコンパイル可能なプログラムを…
368: 362 [sage] 04/02/07 20:35 ID:O0CtMFQf(1) AAS
>>367
ありがとうございます。そんなにたくさんの環境で...
やっぱり環境固有の問題みたいですね。
# 途中省略ってのはまずかったみたいですね。
# いや、ソース読むだけで判断するかなと...
# 想像以上に親切で迷惑をかけてしまったようです。スイマセン
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s