我與SDL_SetVideoMode忽略標誌和SDL_Flip緩慢
SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(800, 600, 32, SDL_SWSURFACE|SDL_DOUBLEBUF);
,然後初始化調用,在一個循環中,調用之間睡覺,只是
SDL_LockSurface(screen);
// Will eventually twiddle pixels here...but not yet
SDL_UnlockSurface(screen);
SDL_Flip(screen);
該調用翻轉需要時間長短不一,但是大約需要10毫秒,這是很不容易的。
因此,這讓我想知道是否導致了從視頻內存到系統內存的拷貝等問題,我應該創建不同的表面。但是,另外,screen->flags
總是等於SDL_ASYNCBLIT
,並且不管其他位如何設置,無論我傳遞給SDL_SetVideoMode
的標誌如何。所以我無論如何都無法做出任何其他類型的表面。
我是否應該創建另一個離屏表面,渲染到該位置,然後將其傳送到屏幕?我究竟做錯了什麼?
編輯:刪除SDL_Lock和SDL_Unlock對沒有任何東西來加快速度。 SDL_Flip速度很慢。
某處,一隻狗叫了一聲。 – Grumdrig 2012-04-29 15:57:07