CAMetalLayer
Соответствует
-
AnyObject -
CAMediaTiming -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
Печатаемый -
CAMediaTiming -
NSCoding -
NSObject
Оператор импорта
Swift
import QuartzCore
Objective C
@import QuartzCore;
Доступность
Доступный в iOS 8.0 и позже.
A CAMetalLayer объект является Базовым Слоем анимации, управляющим пулом Металлических текстур для рендеринга довольного Металл использования. Для использования Металла для рендеринга в приложении используйте этот класс в качестве отступающего уровня для представления путем возврата его из представления layerClass метод класса. Для рендеринга содержания уровня используйте nextDrawable метод для получения текстуры затем используйте его в качестве цели рендеринга в Металлическом конвейере рендеринга. После рендеринга каждого кадра Вы представляете новое содержание для дисплея с presentDrawable: или presentDrawable:atTime: метод буфера команд Вы использовали для рендеринга.
-
deviceСвойствоМеталлическое устройство, ответственное за drawable ресурсы уровня.
Объявление
Swift
var device: MTLDevice!Objective C
@property(readwrite, retain) id< MTLDevice > deviceОбсуждение
Это свойство определяет, который Металл устройства использует для создания
MTLTextureобъекты Вы используете для рендеринга содержания уровня.Значение по умолчанию
nil— необходимо установить устройство для уровня перед рендерингом.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
-
pixelFormatСвойствоФормат пиксельных данных текстур для рендеринга содержания уровня.
Объявление
Swift
var pixelFormat: MTLPixelFormatObjective C
@property(readwrite) MTLPixelFormat pixelFormatОбсуждение
Формат пикселя для Слоя металла должен быть также
MTLPixelFormatBGRA8Unorm(значение по умолчанию) илиMTLPixelFormatBGRA8Unorm_sRGB.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
-
framebufferOnlyСвойствоБулево значение, определяющее, ограничиваются ли текстуры уровня для использования в качестве присоединений кадрового буфера.
Объявление
Swift
var framebufferOnly: BoolObjective C
@property(readwrite) BOOL framebufferOnlyОбсуждение
Если значение
YEStrue(значение по умолчанию), класс CAMetalLayer может выделить свои объекты MTLTexture способами, оптимизированными в целях дисплея. Однако эта опция делает те текстуры неподходящими для выборки и пиксельных операций чтения-записи. Для поддержки выборки и пиксельных операций чтения-записи на текстурах уровня (по стоимости для производительности) установите это значение вNOfalse.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
-
drawableSizeСвойствоРазмер, в пикселях, текстур для рендеринга содержания уровня.
Обсуждение
По умолчанию уровень продает текстуры, измеренные для соответствия его содержания — т.е. значение этого свойства является уровнем
boundsразмер, умноженный наcontentsScaleфактор.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
-
Возвращает drawable объект для рендеринга содержания уровня.
Объявление
Swift
func nextDrawable() -> CAMetalDrawable!Objective C
- (id<CAMetalDrawable>)nextDrawableВозвращаемое значение
drawable объект. Используйте drawable’s
textureсвойство для конфигурирования aMTLRenderPipelineColorAttachmentDescriptorобъект для рендеринга к содержанию уровня.Обсуждение
A
CAMetalLayerобъект поддерживает внутренний пул текстур для отображения содержания уровня, каждый обернутый в aCAMetalDrawableобъект. Используйте этот метод для получения следующей доступной текстуры от пула. Затем, используйте aMTLRenderCommandEncoderвозразите, чтобы представить в текстуре, затем представить ее для дисплея (обычно сpresentDrawable:метод буфера команд). В то время как одно drawable представляется, можно вызватьnextDrawableметод снова, чтобы начать представлять другому. После представления другого drawable, заменяя последнего представленного, уровень может сохранить замененный базовый drawable’sMTLTextureобъект для повторного использования.Вызов этого метода блокирует текущий поток ЦП, пока новый drawable объект не доступен. Существует только маленький набор drawable ресурсов, таким образом, долгое время кадра GPU могло временно исчерпать те ресурсы, вынудив этот вызов блокировать, пока рендеринг GPU не завершен. Для лучших результатов запланируйте Ваш
nextDrawableвызовите уже в возможном относительно другой работы CPU на кадр.Этот метод возвраты
nilесли уровеньpixelFormatили другие свойства недопустимы.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
-
presentsWithTransactionСвойствоБулево значение, определяющее, представляет ли уровень свое содержание с помощью Базовой транзакции Анимации.
Объявление
Swift
var presentsWithTransaction: BoolObjective C
@property(getter=presentsWithTransaction) BOOL presentsWithTransactionОбсуждение
Если это значение
NOfalse(значение по умолчанию), Вы выводите на экран вывод передачи рендеринга асинхронно сpresentDrawable:илиpresentDrawable:atTime:метод буфера команд Вы использовали для рендеринга.Если это значение
YEStrue, уровень выводит на экран свое drawable содержание синхронно, с помощью то, какой бы ни Базовая транзакция Анимации является текущей в это время drawable’spresentметод вызывают. Когда вызвать, Однако, если Вы позволяете Металлу выбиратьpresentметод (при помощиpresentDrawable:метод буфера команд), транзакция, во время которой Вы запланировали представление, могла бы закончиться, прежде чем drawable готово быть представленным. Для предотвращения этой ситуации фиксируйте буфер команд и вызовитеwaitUntilScheduledметод для синхронного ожидания до drawable готов, затем вызовите drawable’spresentметод непосредственно.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 8.0 и позже.
