---
title: "distortionShader(_:maxSampleOffset:)"
framework: swiftui
role: symbol
role_heading: Type Method
path: "swiftui/graphicscontext/filter/distortionshader(_:maxsampleoffset:)"
---

# distortionShader(_:maxSampleOffset:)

Returns a filter that applies shader as a geometric distortion effect on the location of each pixel.

## Declaration

```swift
static func distortionShader(_ shader: Shader, maxSampleOffset: CGSize) -> GraphicsContext.Filter
```

## Parameters

- `shader`: The shader to apply as a distortion effect.
- `maxSampleOffset`: The maximum distance in each axis between the returned source pixel position and the destination pixel position, for all source pixels.

## Return Value

Return Value A new filter that applies the shader as a distortion effect.

## Discussion

Discussion For a shader function to act as a distortion effect it must have a function signature matching: [[ stitchable ]] float2 name(float2 position, args...) where position is the user-space coordinates of the destination pixel applied to the shader. args... should be compatible with the uniform arguments bound to shader. The function should return the user-space coordinates of the corresponding source pixel.

## See Also

### Using a custom Metal shader

- [colorShader(_:)](swiftui/graphicscontext/filter/colorshader(_:).md)
- [layerShader(_:maxSampleOffset:)](swiftui/graphicscontext/filter/layershader(_:maxsampleoffset:).md)
