---
title: MTLFXTemporalScaler
framework: metalfx
role: symbol
role_heading: Protocol
path: metalfx/mtlfxtemporalscaler
---

# MTLFXTemporalScaler

An upscaling effect that generates a higher resolution texture in a render pass by analyzing multiple input textures over time.

## Declaration

```swift
protocol MTLFXTemporalScaler : MTLFXTemporalScalerBase
```

## Overview

Overview The MetalFX temporal scaler increases the size of your input texture to a larger output texture. You can use the scaler to upscale every frame of your app’s scene or rendering in real time. With a scaler, you can draw more complicated scenes in less time by intentionally rendering to a lower resolution to save time before upscaling. Create an MTLFXTemporalScaler instance by following these steps: Create and configure an MTLFXTemporalScalerDescriptor instance. Call the descriptor’s makeTemporalScaler(device:) method. Upscale a rendering by following these steps for every render pass: Set the temporal scaler’s MTLFXTemporalScaler/colorTexture property to the input texture. Set the scaler’s MTLFXTemporalScaler/inputContentWidth and MTLFXTemporalScaler/inputContentHeight properties. Set the scaler’s MTLFXTemporalScaler/outputTexture property to your destination texture. Encode the upscale commands to an MTLCommandBuffer by calling the temporal scaler’s encode(commandBuffer:) method.

## Topics

### Encoding a temporal scaling effect

- [encode(commandBuffer:)](metalfx/mtlfxtemporalscaler/encode(commandbuffer:).md)

## Relationships

### Inherits From

- [MTLFXFrameInterpolatableScaler](metalfx/mtlfxframeinterpolatablescaler.md)
- [MTLFXTemporalScalerBase](metalfx/mtlfxtemporalscalerbase.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Temporal scaling

- [Applying temporal antialiasing and upscaling using MetalFX](metalfx/applying-temporal-antialiasing-and-upscaling-using-metalfx.md)
- [MTLFXTemporalScalerDescriptor](metalfx/mtlfxtemporalscalerdescriptor.md)
