gpt4 book ai didi

ios - 具有模拟器支持的 Core Image 着色器语言转换为 Metal

转载 作者:行者123 更新时间:2023-12-02 04:43:51 26 4
gpt4 key购买 nike

我的应用程序有一些用核心图像着色器语言编写的核心图像着色器。我像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)

因为我们的应用程序是在构建时将警告视为错误的,所以我必须隐藏或修复此警告。

我可以用 Metal 着色器语言重写着色器,这样我就可以使用 CIColorKernel(functionName: <name>, fromMetalLibraryData: <data>) ,但是模拟器不支持 Metal。因此,如果我这样做,那么我们将无法从模拟器中获取我们需要的所有设备的屏幕截图。我可以用 Metal 重写着色器,并且仅在设备上运行时加载 Metal 着色器,然后回退到模拟器上的当前着色器。然而,这似乎并不理想,因为我们需要维护 2 组函数。这还要求我以某种方式隐藏弃用警告。

那么对于编写可以在模拟器中运行的着色器的非弃用方法有什么建议吗?如果没有,我可能会尝试在 iOS 13 之前消除警告,并希望 sim 能得到更好的支持。我不知道如何 Define CI_SILENCE_GL_DEPRECATION to silence these warnings 。我尝试添加 CI_SILENCE_GL_DEPRECATIONbuild设置。

更新由于是年底,我用我们的 2 张 DTS 门票中的一张向 Apple 询问如何使其静音。他们的回应是使用 #pragma GCC diagnostic ignored "-Wdeprecated-declarations”在 Objective-C 文件中禁用所有已弃用的警告,或提交有关无法消除此警告的错误。 :( 我想现在我只需要将该框架的部署目标保留在 iOS 11 上,并希望我不需要为了某些 future 的功能/错误而升级到 12。主应用程序的部署目标仍然可以是 12不过,目前它不会影响用户。

最佳答案

要消除警告,请添加到构建配置的 GCC_PREPROCESSOR_DEFINITIONS CI_SILENCE_GL_DEPRECATION CI_SILENCE_GL_DEPRECATION

关于ios - 具有模拟器支持的 Core Image 着色器语言转换为 Metal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53748226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com