Sokol C/C++ 極簡跨平台繪圖庫

 

Sokol 是由 Andre Weissflog 編寫的一系列極簡的、跨平台的、STB 風格的獨立 C 頭文件庫,比起 WebGPU 或 SDL2 更為輕量一套 SDK。

近期更新

sokol_app.h

  • X11 平台滑鼠鎖定重構 (PR #1602):將 X11 的滑鼠鎖定機制改寫為與 Windows 相同的「延遲鎖定 (deferred lock)」模式。呼叫 sapp_lock_mouse(true/false) 只會更新內部的「請求鎖定」標記,實際鎖定狀態會在每影格 Callback 結束後最多更新一次。

sokol_gfx.h

  • 引進 3D API 模擬庫 (Mocking Libraries):新增 D3D11、OpenGL 與 Metal 的模擬測試庫(由 LLM 維護),並建立針對 3D 後端的測試套件,為未來模糊測試 (Fuzzing) 等情境打下基礎。
  • Metal 後端邊緣 Bug 修復:
    • 記憶體釋放修復:修正 sg_setup 注入的 Metal device 以及 sg_make_buffer / sg_make_image / sg_make_sampler 注入的外部資源未執行內部 retain,導致在停用 ARC(自動引用計數)環境下於 sg_shutdown() 釋放時出錯的問題。
    • 建立 View 失敗處理:修正 sg_make_view() 在 Metal 貼圖 View 建立失敗時缺少錯誤處理的問題,現已加入 Error Log 並記錄為 SG_RESOURCESTATE_FAILED 狀態。
    • Shader 雙重清理修復:修正 sg_make_shader() 與 sg_destroy_shader() 在 Shader function 部分建立失敗時發生的「雙重釋放 (Double Cleanup)」問題。

  • D3D11 / GL 後端:未發現實質 Bug,僅進行少量程式碼整理與重構。


留言