---
title: MTLDrawable
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtldrawable
---

# MTLDrawable

A displayable resource that can be rendered or written to.

## Declaration

```swift
protocol MTLDrawable : NSObjectProtocol
```

## Mentioned in

Managing your Metal app window in iPadOS Adjusting for GPU memory bandwidth tradeoffs

## Overview

Overview Objects that implement this protocol are connected both to the Metal framework and an underlying display system (such as Core Animation) that’s capable of showing content onscreen. You use drawable objects when you want to render images using Metal and present them onscreen. Don’t implement this protocol yourself; instead, see CAMetalLayer, for a class that can create and manage drawable objects for you.

## Topics

### Identifying the drawable

- [drawableID](metal/mtldrawable/drawableid.md)

### Presenting the drawable

- [present()](metal/mtldrawable/present().md)
- [present(afterMinimumDuration:)](metal/mtldrawable/present(afterminimumduration:).md)
- [present(at:)](metal/mtldrawable/present(at:).md)

### Getting presentation information

- [addPresentedHandler(_:)](metal/mtldrawable/addpresentedhandler(_:).md)
- [presentedTime](metal/mtldrawable/presentedtime.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Render pass outputs

- [MTLDrawablePresentedHandler](metal/mtldrawablepresentedhandler.md)
