文章索引~SDL硬體加速
概念:
surface:是直接放在記憶體中的,沒有硬體加速.(SDL2)
texture:放在視訊記憶體中,有硬體加速(SDL2)
SDL wiki : https://wiki.libsdl.org/FrontPage
所有版本的下載地址:https://libsdl.org/release/
最新下載地址: https://www.libsdl.org/download-2.0.php
附加工程:https://www.libsdl.org/projects/ : 影象,字型,網路...
SDL網路:
////////SDL教程
Lazy Foo' Productions - SDL 2 tutorials
///////////////////////////////博文
在QT5中搭建SDL2環境以及顯示bmp圖片
SDL2:生成完全透明的紋理(SDL2: Generate fully transparent texture)//////////////////////////////////少壯要努力的部落格
(原)關於sdl在部分機器上做視訊顯示,改變顯示視窗大小會崩潰
PS_1:
Widnows平臺下,如果SDL視窗作為一個子視窗,那麼當使用SDL_DestroyWindow時, 其內部函式會呼叫SDL_HideWindow(window), 這樣會導致視窗消失,解決的辦法是:ShowWindow(SW_SHOWNORMAL);//將想顯示視窗給顯示出來一個奇怪的地方是:如果採用 ShowWindow(
PS_2
VC環境,子視窗硬體加速,當作業系統鎖屏的時候,然後重新登入,有可能會發生硬體重新整理失效。然而奇怪的是Qt環境下沒事!
~ 未找到解決方案。初步懷疑: SDL版本問題? 多執行緒問題?
PS_3: 常見問題統一(視窗大小改變會渲染凍結,SDL_DestoryWindow會卡死,鎖屏後DEVICELOST渲染失敗....)
統一問題解決: 多執行緒問題.
辦法(1):將SDL的有關資源的申請,釋放都放在同一個執行緒裡。
辦法(2):將SDL的有關資源的申請放在一個執行緒,釋放 放在主執行緒。
辦法(3): 某一部分的資源申請或釋放放在一個執行緒,另一部分放在主執行緒。
我有的採用辦法1解決,有的採用辦法2解決,有的採用辦法3解決。(都是不同環境下)