Class

MTLTextureDescriptor

An object that you use to configure new Metal texture objects.

Declaration

class MTLTextureDescriptor : NSObject

Overview

To create a new texture, first create a MTLTextureDescriptor object and set its property values. Then, call either the makeTexture(descriptor:) or makeTexture(descriptor:iosurface:plane:) method of a MTLDevice object, or the makeTexture(descriptor:offset:bytesPerRow:) method of a MTLBuffer object.

When you create a texture, Metal copies property values from the descriptor into the new texture. You can reuse a MTLTextureDescriptor object, modifying its property values as needed, to create more MTLTexture objects, without affecting any textures you already created.

Topics

Specifying Texture Attributes

var textureType: MTLTextureType

The dimension and arrangement of texture image data.

var pixelFormat: MTLPixelFormat

The size and bit layout of all pixels in the texture.

var width: Int

The width of the texture image for the base level mipmap, in pixels.

var height: Int

The height of the texture image for the base level mipmap, in pixels.

var depth: Int

The depth of the texture image for the base level mipmap, in pixels.

var mipmapLevelCount: Int

The number of mipmap levels for this texture.

var sampleCount: Int

The number of samples in each fragment.

var arrayLength: Int

The number of array elements for this texture.

var resourceOptions: MTLResourceOptions

The behavior of a new memory allocation.

var cpuCacheMode: MTLCPUCacheMode

The CPU cache mode used for the CPU mapping of the texture.

var storageMode: MTLStorageMode

The location and access permissions of the texture.

var hazardTrackingMode: MTLHazardTrackingMode

The texture's hazard tracking mode.

Beta
var allowGPUOptimizedContents: Bool

A Boolean value indicating whether the GPU is allowed to adjust the texture's contents to improve GPU performance.

var usage: MTLTextureUsage

Options that determine how you can use the texture.

var swizzle: MTLTextureSwizzleChannels

The pattern you want the GPU to apply to pixels when you read or sample pixels from the texture.

Beta
struct MTLTextureSwizzleChannels

A pattern that modifies the data read or sampled from a texture by rearranging or duplicating the elements of a vector.

Beta
enum MTLTextureSwizzle

A set of options to choose from when creating a texture swizzle pattern.

Beta

Relationships

Inherits From

See Also

Working with Textures

Creating and Sampling Textures

Load image data into a texture and apply it to a quadrangle.

Understanding Color-Renderable Pixel Format Sizes

Know the size limits of pixel formats used by color render targets in iOS and tvOS GPUs.

Optimizing Texture Data

Optimize a texture’s data to improve GPU or CPU access.

protocol MTLTexture

A resource that holds formatted image data.

class MTKTextureLoader

An object that decodes common image formats into Metal textures for use in your app.

class MTLSharedTextureHandle

A texture handle that can be shared across process address space boundaries.

enum MTLPixelFormat

The data formats that describe the organization and characteristics of individual pixels in a texture.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software