<!--
{
  "availability" : [
    "macOS: 26.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CompositorServices",
  "identifier" : "/documentation/CompositorServices/CompositorLayerConfiguration",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Compositor Services",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:27_CompositorServices_SwiftUI0A18LayerConfigurationP"
  },
  "title" : "CompositorLayerConfiguration"
}
-->

# CompositorLayerConfiguration

An interface for specifying the texture configurations and rendering behaviors to use with your Metal rendering engine.

```
@MainActor @preconcurrency protocol CompositorLayerConfiguration
```

## Overview

If you use a custom configuration for your Metal rendering engine,
adopt this protocol in a custom type and use it to specify
the configuration options you need.
In your custom type, implement the [`makeConfiguration(capabilities:configuration:)`](/documentation/CompositorServices/CompositorLayerConfiguration/makeConfiguration(capabilities:configuration:)) method and use it to modify the default set of rendering options.
When specifying your configuration, validate choices against the actual capabilities of the current device.

For information on how to specify custom configuration options
for your rendering engine, see [Drawing fully immersive content using Metal](/documentation/CompositorServices/drawing-fully-immersive-content-using-metal).

## Topics

### Specifying the custom options

[`func makeConfiguration(capabilities: LayerRenderer.Capabilities, configuration: inout LayerRenderer.Configuration)`](/documentation/CompositorServices/CompositorLayerConfiguration/makeConfiguration(capabilities:configuration:))

Creates and returns a type that contains the rendering options for
Compositor Services to use when configuring a layer.

### Getting the default options

[`static var `default`: DefaultCompositorLayerConfiguration`](/documentation/CompositorServices/CompositorLayerConfiguration/default)

The default configuration options that Compositor Services uses to configure the layer.

## Relationships

### Conforming Types

[`DefaultCompositorLayerConfiguration`](/documentation/CompositorServices/DefaultCompositorLayerConfiguration)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)