---
title: MTLTextureType
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtltexturetype
---

# MTLTextureType

The dimension of each image, including whether multiple images are arranged into an array or a cube.

## Declaration

```swift
enum MTLTextureType
```

## Overview

Overview For a MTLTextureTypeCube texture, the property values describe one slice, which is any one of its six sides. For example, mipmapLevelCount is the number of mipmap levels for one slice, not the total sum of mipmap levels in six slices. By definition, the width and height of a cube texture are the same value. Each slice of a cube texture maps to a side with a specific orientation.  |   |   |   |   |   |   |

## Topics

### Specifying the texture type

- [MTLTextureType.type1D](metal/mtltexturetype/type1d.md)
- [MTLTextureType.type1DArray](metal/mtltexturetype/type1darray.md)
- [MTLTextureType.type2D](metal/mtltexturetype/type2d.md)
- [MTLTextureType.type2DArray](metal/mtltexturetype/type2darray.md)
- [MTLTextureType.type2DMultisample](metal/mtltexturetype/type2dmultisample.md)
- [MTLTextureType.typeCube](metal/mtltexturetype/typecube.md)
- [MTLTextureType.typeCubeArray](metal/mtltexturetype/typecubearray.md)
- [MTLTextureType.type3D](metal/mtltexturetype/type3d.md)
- [MTLTextureType.type2DMultisampleArray](metal/mtltexturetype/type2dmultisamplearray.md)
- [MTLTextureType.typeTextureBuffer](metal/mtltexturetype/typetexturebuffer.md)

### Initializers

- [init(rawValue:)](metal/mtltexturetype/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Querying texture attributes

- [textureType](metal/mtltexture/texturetype.md)
- [pixelFormat](metal/mtltexture/pixelformat.md)
- [width](metal/mtltexture/width.md)
- [height](metal/mtltexture/height.md)
- [depth](metal/mtltexture/depth.md)
- [mipmapLevelCount](metal/mtltexture/mipmaplevelcount.md)
- [arrayLength](metal/mtltexture/arraylength.md)
- [sampleCount](metal/mtltexture/samplecount.md)
- [isFramebufferOnly](metal/mtltexture/isframebufferonly.md)
- [usage](metal/mtltexture/usage.md)
- [allowGPUOptimizedContents](metal/mtltexture/allowgpuoptimizedcontents.md)
- [isShareable](metal/mtltexture/isshareable.md)
- [swizzle](metal/mtltexture/swizzle.md)
- [MTLTextureUsage](metal/mtltextureusage.md)
