1
我已經使用SDL來顯示圖像:C++ SDL如何撤消BlitSurface
SDL_BlitSurface(sprite, NULL, screen, NULL);
我的問題是:是否有可能從窗口中刪除圖像?
我已經使用SDL來顯示圖像:C++ SDL如何撤消BlitSurface
SDL_BlitSurface(sprite, NULL, screen, NULL);
我的問題是:是否有可能從窗口中刪除圖像?
一般來說,沒有。 SDL_BlitSurface()
覆蓋(目標表面的內容的子集),基本上與對像素數據陣列的分配相同。一個解決方案是重繪整個畫面的每一幀,先用清:
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, r, g, b));
爲了獲得更好的性能,你可以跟蹤哪些屏幕上的區域是「髒」,並需要重新繪製每一幀,並且只重新繪製這些區域。 SDL爲此提供了一些功能(SDL_UpdateRect()
和SDL_UpdateRects()
),但除非渲染速度成爲嚴重問題,否則我不打擾。大多數SDL應用程序似乎能夠以每秒30-50幀的速度執行;除此之外,你會想看看OpenGL。