jam*_*one 3 core-image ios swift metal
我的应用程序有一些用核心图像着色器语言编写的核心图像着色器。我像加载它们一样CIColorKernel(source: <kernel string here>)。我刚刚将应用程序的部署目标从 iOS 11.0 提高到 12.0。现在我收到以下警告。
\'init(source:)\' was deprecated in iOS 12.0: Core Image Kernel Language API deprecated. (Define CI_SILENCE_GL_DEPRECATION to silence these warnings)\nRun Code Online (Sandbox Code Playgroud)\n\n因为我们的应用程序是在将警告视为错误的情况下构建的,所以我必须隐藏或修复此警告。
\n\n我可以用 Metal 着色器语言重写着色器,这样我就可以使用CIColorKernel(functionName: <name>, fromMetalLibraryData: <data>),但是模拟器不支持 Metal。因此,如果我这样做,那么我们将无法从模拟器中获取我们需要的所有设备的屏幕截图。我可以用金属重写着色器,并且仅在设备上运行时加载金属着色器,然后回退到模拟器上的当前着色器。然而,这似乎并不理想,因为我们需要维护 2 组函数。这还要求我以某种方式隐藏弃用警告。
那么,有什么关于编写可以在模拟器中运行的着色器的未弃用方法的建议吗?如果没有,我可能会尝试在 iOS 13 之前消除警告,并希望 sim 能得到更好的支持。我不知道该怎么做Define CI_SILENCE_GL_DEPRECATION to silence these warnings。我尝试过添加CI_SILENCE_GL_DEPRECATION构建设置。
更新\n因为是年底,我用我们的 2 张 DTS 门票中的一张询问 Apple 如何使其静音。他们的回应是在 Objective-C 文件中使用#pragma GCC diagnostic ignored "-Wdeprecated-declarations\xe2\x80\x9d来禁用所有已弃用的警告,或者提交一个有关无法消除此警告的错误。:( 我想现在我只需要将该框架的部署目标保留在 iOS 11 上,并希望我不需要为了某些未来的功能/错误而升级到 12。主应用程序\不过,其部署目标仍然可以是 12,因此目前不会影响用户。
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |