2
我有一個線程執行以下操作:SDL:在多線程程序中安全嗎?
- 初始化SDL
- 存儲的指針SDL_Surface
- 進入一個循環,等待任何鼠標事件,並對其進行處理
在另一個線程中有以下功能:
- 獲取p ointer到SDL_Surface
- 難道一個SDL_LockSurface
- 操縱像素
- 難道一個SDL_UnlockSurface
- 調用SDL_Flip表面
我已經在文檔中讀取一般SDL lib中的函數調用都應該在來自同一個線程。這是否包括直接更改SDL_Surface?如何使用表面的鎖定和解鎖功能?我認爲這些鎖定和解鎖對旨在用於多線程情況。
SDL_Flip函數怎麼樣?如果這需要從初始化SDL的SDL線程中調用,那麼我可以簡單地發信號通知用戶事件並在另一個線程中處理它。
SDL_LockSurface()和SDL_UnlockSurface在大多數平臺上都是不合適的。我現在記不起來了,但我認爲他們只需要GDI或DirectX。無論如何,它們對於同步線程絕對無用。 – ninjalj 2010-10-06 21:47:12