fslasht (3370) の日記

2004 年 05 月 12 日
午後 09:52

[SDL] SDL_ConvertSurfaceとかしてみたが

STATUS: 故障中

 SDLオフ会で、表示が遅い~と相談したら SDL_ConvertSurface してサーフェイスのフォーマットを合わせないと毎回変換がかかって遅くなるという話でした(FAQだって)。
 SDL_ConvertSurfaceなんてやってかなったよ~。
 
 というわけで、対応してみました。
 が、SDL_HWSURFACEとSDL_SWSURFACEで速度が変わらない。
 640x480x16bpp(全画面fill + 640x204のイメージx2描画 + Flip)で231FPS。
 十分速いんだけど、結果がかわらないというのが気持ち悪い。
 さらにそもそもSDL_ConvertSurfaceやってもやらなくても変わらず(描画するイメージは、24bitカラーなので16bitにコンバートされて速くなりそうなんだけど)
 あと、SDL_Flipだけにしても、333fpsにしかならないので、SDL_Flipで7割以上かかっている状態。思いっきりソフトで処理してそう…

 なんか大変な勘違いをしていに違いない。(V-Sync同期とは違いそうだし)
 このマシンでやっても速いのでよくわからないや、遅いマシンで試してみよう。

● SDL_ConvertSurface してるとこのソース

        m_pSurface = SDL_LoadBMP(pszFilename); // 24bitカラーのbmp

        SDL_Surface* p = SDL_GetVideoSurface();
        SDL_PixelFormat *pFmt = p->format; // formatをみるとSDL_SetVideoModeで指定した16bitカラーとなっている(正しい結果)

        SDL_Surface* pSurTemp = SDL_ConvertSurface( m_pSurface , pFmt , flags );
        SDL_FreeSurface( m_pSurface );
        m_pSurface = pSurTemp;
       

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...