SKMutableTexture
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
Печатаемый -
Reflectable -
NSCoding -
NSCopying -
NSObject
Оператор импорта
Swift
import SpriteKit
Objective C
@import SpriteKit;
Доступность
Доступный в iOS 8.0 и позже.
SKMutableTexture объект является текстурой Набора Sprite, содержание которой может быть динамично обновлено.
Обычно, текстуры Набора Sprite (SKTexture объекты), статичны, означая, что когда-то создаваемый, не может быть изменено их содержание. Это важно, потому что статическим изображением можно более эффективно управлять в аппаратном обеспечении машинной графики. Однако иногда необходимо быть в состоянии обновить содержание текстуры динамично. В этом случае необходимо использовать непостоянную текстуру. Поскольку существует потеря производительности для обновления содержания текстуры, рассмотрите другие опции сначала. Например, можно представить текстуру в аппаратных средствах с помощью textureFromNode: метод и дерево узла.
Для использования этого класса создайте непостоянную текстуру с помощью или одного из ее методов создания или тех из ее суперкласса. Затем когда необходимо будет обновить непостоянное содержание объекта текстуры, вызовите modifyPixelDataWithBlock: метод. Ваш блок вызывают с расположением текстуры в памяти. Ваш блок должен обновить эту текстуру и затем возвратиться.
-
Создает пустую текстуру с определенным размером.
Объявление
Objective C
+ (instancetype)mutableTextureWithSize:(CGSize)sizeПараметры
sizeРазмер текстуры, в пикселях.
Возвращаемое значение
Пустая непостоянная текстура.
Обсуждение
Необходимо вызвать
modifyPixelDataWithBlock:метод, по крайней мере, однажды использующий эту текстуру.Оператор импорта
Objective C
@import SpriteKit;Доступность
Доступный в iOS 8.0 и позже.
-
Инициализирует пустую текстуру с определенным размером и форматом.
Объявление
Swift
init(sizesize: CGSize, pixelFormatformat: Int32)Objective C
- (instancetype)initWithSize:(CGSize)sizepixelFormat:(int)formatПараметры
sizeРазмер текстуры, в пикселях.
formatБазовый код Формата видео. Поддерживаются три кода:
kCVPixelFormatType_32RGBA,kCVPixelFormatType_64RGBAHalf, иkCVPixelFormatType_128RGBAFloatдля байта, полуплавания и компонентов плавающих соответственно.Возвращаемое значение
Пустая непостоянная текстура.
Обсуждение
Необходимо вызвать
modifyPixelDataWithBlock:метод, по крайней мере, однажды использующий эту текстуру.Оператор импорта
Objective C
@import SpriteKit;Swift
import SpriteKitДоступность
Доступный в iOS 8.0 и позже.
-
Инициализирует пустую текстуру с определенным размером.
Параметры
sizeРазмер текстуры, в пикселях.
Возвращаемое значение
Пустая непостоянная текстура.
Обсуждение
Необходимо вызвать
modifyPixelDataWithBlock:метод, по крайней мере, однажды использующий эту текстуру.Оператор импорта
Objective C
@import SpriteKit;Swift
import SpriteKitДоступность
Доступный в iOS 8.0 и позже.
-
Изменяет содержание непостоянной текстуры.
Объявление
Swift
func modifyPixelDataWithBlock(_block: (UnsafeMutablePointer<Void>, Int) -> Void)Objective C
- (void)modifyPixelDataWithBlock:(void (^)(void *pixelData, size_t lengthInBytes))blockПараметры
blockБлок, который вызовут, когда может быть безопасно изменена текстура. Блок берет следующие параметры:
pixelDataУказатель на запуск текущих данных текстуры.
lengthInBytesДлина данных текстуры в байтах.
Обсуждение
Содержание текстуры может быть изменено только в определенные времена, когда аппаратное обеспечение машинной графики разрешает его. Когда этот метод вызовут, он планирует новую фоновую задачу для обновления текстуры и затем возвращается. Когда текстура может быть изменена, Ваш блок вызывают. Ваш блок вызывают на произвольной очереди. Ваш блок должен изменить содержание текстуры и затем возвратиться.
Байты текстуры, как предполагается, сохранены как плотно упакованные 32 бит/пкс, 8bpc (целое без знака) пиксельные данные RGBA. Компоненты цвета, которые Вы обеспечиваете, должны были быть уже умножены на альфа-значение.
Оператор импорта
Objective C
@import SpriteKit;Swift
import SpriteKitДоступность
Доступный в iOS 8.0 и позже.
