Ios 如何通过编程获得最大纹理大小(宽度和高度)

Ios 如何通过编程获得最大纹理大小(宽度和高度),ios,swift,textures,metal,metalkit,Ios,Swift,Textures,Metal,Metalkit,如何通过编程获得金属的最大纹理大小(宽度和高度)?使用openGL我可以做到:glGetIntegerv(GL\u MAX\u TEXTURE\u SIZE,…)但是如何使用金属?目前没有用于检索金属设备最大纹理尺寸的API。有关此信息,请咨询,并将其包含在应用程序中 对于运行当前版本iOS/tvOS/iPadOS的A9和更新的GPU,2D纹理的最大大小为16384×16384。正如@warrenm所提到的,通过编程无法获得设备支持的最大纹理大小。但是,以下代码将根据设备类型为您提供硬编码大小

如何通过编程获得金属的最大纹理大小(宽度和高度)?使用openGL我可以做到:
glGetIntegerv(GL\u MAX\u TEXTURE\u SIZE,…)
但是如何使用金属?

目前没有用于检索金属设备最大纹理尺寸的API。有关此信息,请咨询,并将其包含在应用程序中


对于运行当前版本iOS/tvOS/iPadOS的A9和更新的GPU,2D纹理的最大大小为16384×16384。

正如@warrenm所提到的,通过编程无法获得设备支持的最大纹理大小。但是,以下代码将根据设备类型为您提供硬编码大小

int maxTexSize = 4096;

if ([mtldevice supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily4_v1] || [mtldevice supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily3_v1]) {
    maxTexSize = 16384;
else if ([mtldevice supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily2_v2] || [mtldevice supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily1_v2]) {
    maxTexSize = 8192;
} else {
    maxTexSize = 4096;
}

@当然,你为什么说我从不接受答案?因为看了你的个人资料,我发现你最后10个问题都不被接受。