2013-07-18 88 views

回答

0

一般來說,沒有。 SDL_BlitSurface()覆蓋(目標表面的內容的子集),基本上與對像素數據陣列的分配相同。一個解決方案是重繪整個畫面的每一幀,先用清:

SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, r, g, b)); 

爲了獲得更好的性能,你可以跟蹤哪些屏幕上的區域是「髒」,並需要重新繪製每一幀,並且只重新繪製這些區域。 SDL爲此提供了一些功能(SDL_UpdateRect()SDL_UpdateRects()),但除非渲染速度成爲嚴重問題,否則我不打擾。大多數SDL應用程序似乎能夠以每秒30-50幀的速度執行;除此之外,你會想看看OpenGL。