GPUImage2在Xcode16 release包出現(xiàn)crash,表現(xiàn)為shader編譯失敗

Link log: ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.

經過排查,是swift中的String 轉為 UnsafePointer<GLchar>? 過程,出現(xiàn)了未知問題。
作者原方法(OpenGLRendering.swift文件中的String擴展):

  func withGLChar(_ operation:(UnsafePointer<GLchar>) -> ()) {
        if let value = self.cString(using:String.Encoding.utf8) {
            operation(UnsafePointer<GLchar>(value))
        } else {
            fatalError("Could not convert this string to UTF8: \(self)")
        }
  }

修改為:

    func withGLChar(_ operation:(UnsafePointer<GLchar>) -> ()) {
        if let value = NSString.init(string: self).utf8String {
            operation(value)
        } else {
            fatalError("Could not convert this string to UTF8: \(self)")
        }
    }

使用NSString 即可,原因未知
參考提交:https://github.com/liuqiaohong0515/GPUImage2/commit/5a3c23a30b54d459488da351c8e6133cfa0baf75

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容