[過去ログ]
SDLスレ (987レス)
SDLスレ http://echo.5ch.net/test/read.cgi/gamedev/1005469181/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
808: 名前は開発中のものです。 [] 2005/07/05(火) 04:30:00 ID:zWniNiIr 640*480*32(bpp)の画像を1枚表示するだけで60FPS前後なんですが描画が遅いのは何が原因なんでしょう? それともこれが限界ですか? 初期化は SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ANYFORMAT); こんな感じでSDL_FillRect()せずにSDL_BlitSurface()してからSDL_Flip()。 環境は Pentium4 2.4G GeForce4 ti4400 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/808
809: 808 [sage] 2005/07/05(火) 04:38:10 ID:zWniNiIr 補足です。 ウィンドウモードでリフレッシュレートは85Hzです。 画像を描画させなければ130FPSほどでますがFlipだけで130FPSってのはちょっと遅いですよね? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/809
811: 名前は開発中のものです。 [sage] 2005/07/05(火) 14:08:42 ID:1ZePfTMa >>808 せめて実行可能なコードを出せよ… SDL_Flipだけで130FPSってのは遅すぎるのでどこかが間違っていると思われ とりあえず SDL_SetVideoMode()の戻り値のSDL_SurfaceとBlitしている画像 のSDL_Surfaceのflagsやformatをチェックして期待通りかどうかチェックしれ http://echo.5ch.net/test/read.cgi/gamedev/1005469181/811
813: 808 [sage] 2005/07/05(火) 14:53:21 ID:zWniNiIr >>811 >せめて実行可能なコードを出せよ… あいすまんかった。 int main(int argc, char* argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ANYFORMAT); SDL_Surface* temp = SDL_LoadBMP("test.bmp"); SDL_Surface* surface = SDL_ConvertSurface(temp, screen->format, SDL_HWSURFACE); while (1) { SDL_BlitSurface(surface, NULL, screen, NULL); SDL_Flip(screen); SDL_Event event; while (SDL_PollEvent(&event)) if (event.type == SDL_QUIT) return 0; char buf[64]; sprintf(buf, "%d fps", CalcFPS()); SDL_WM_SetCaption(buf, NULL); } return 0; } http://echo.5ch.net/test/read.cgi/gamedev/1005469181/813
814: 808 [sage] 2005/07/05(火) 14:53:54 ID:zWniNiIr >>813 の続き int CalcFPS() { static Uint32 count, fps; static Uint32 btime; if (++count == 60) { Uint32 time = SDL_GetTicks(); fps = 1000 / (float(time - btime) / 60); btime = time; count = 0; } return fps; } http://echo.5ch.net/test/read.cgi/gamedev/1005469181/814
815: 808 [sage] 2005/07/05(火) 14:57:52 ID:zWniNiIr 普通にDirectX(draw)でハードウェアサーフェイス作ると500FPSとか軽くでるので ハードウェアやドライバがおかしいとも思えないし何ででしょうね。 皆さん上のコードでFPSいくつ位でます? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/815
816: 808 [sage] 2005/07/05(火) 15:07:12 ID:zWniNiIr >>811 >のSDL_Surfaceのflagsやformatをチェックして期待通りかどうかチェックしれ SDL_Surface.format_versionってのがscreenでは2、surfaceでは4になっている以外は同じです。 これが原因ですかね…? んー。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/816
817: 811 [sage] 2005/07/05(火) 18:34:24 ID:1ZePfTMa >>808 実行してみた.SDL_Flip()のみにして300fpsくらい出た… CPU : PentiumM 1.1GHz Video : i855GM (VRAM は Main Memory) の 16bpp とりあえず毎フレームSDL_WM_SetCaption()するのは無駄なんで CalcFPS()内のifの中に持って言ったら 400FPSくらいになった… http://echo.5ch.net/test/read.cgi/gamedev/1005469181/817
819: 808 [sage] 2005/07/05(火) 21:16:11 ID:zWniNiIr >>811, 818 テストありがとう。超ありがとう。 でもお気楽にハードウェアデバイスが使えると思ったんだが何やら環境依存でそうでもないみたいですね。 DirectXより環境に依存するなんて使う気無くしました。 他のクロスプラトフォームライブラリ探します。 レスありがとう。それに関しては感謝してます。 ありがとう。さようなら。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/819
821: 808 [sage] 2005/07/05(火) 21:55:55 ID:zWniNiIr >>820 SDLを馬鹿にしているつもりはないよ。 それどころかSDLは初期化が簡単(ハードウェアを利用するライブラリとしては)なので初心者/入門者には最適だと思います。 また、さくっと作りたい場合は。 ただ、本家で掲載しているコードをほぼそのまんまの形で利用した場合、最低限バックバッファにコンパチブルな オフスクリーンサーフェイスのフォーマットを選択してくれてもいいように思いました。 Simple directmedia layerのsimpleってなんでしょう? >しょーもないコード書いて勝手にSDLを悪者にするのだけはやめれ 否定するなら根拠をまず述べるのが筋ってもんです。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/821
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s