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(size
size
: CGSize, pixelFormatformat
: Int32)Objective C
- (instancetype)initWithSize:(CGSize)
size
pixelFormat:(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 и позже.