Программный поиск максимальных поддерживаемых размеров металлической текстуры - PullRequest
0 голосов
/ 09 июля 2020

Я использую SceneKit для отображения произвольных изображений от пользователя. Однако, если изображение слишком велико, оно превышает максимальный поддерживаемый устройством размер текстуры и дает сбой. В идеале я хотел бы определить, слишком ли велико изображение, и уменьшить его до максимального поддерживаемого разрешения.

Однако я не могу найти способ получить максимальное поддерживаемое разрешение программно.

Apple публикует «Таблицы наборов металлических функций» PDF, в котором указаны значения для различных устройств. Сообщение об ошибке, которое вы получаете, даже сообщает вам максимальное значение для этого устройства:

validateTextureDimensions, line 1227: error 'MTLTextureDescriptor has width (18000) greater than the maximum allowed size of 16384.'

Однако я не могу найти никаких свойств для MTLTextureDescriptor, MTLTexture, MTLDevice и т. Д. это скажет мне ценность в расширенном. Ближайшее, что я видел, - это MTLFeatureSet API, а затем ручная проверка его по таблице поиска значений, перечисленных в PDF.

Этот ответ кажется быть тем, что я ищу, но использует OpenGL ES, который уже несколько лет обесценился.

Есть ли способ программно получить максимальное поддерживаемое разрешение текстуры для текущего устройства с помощью Metal?

...