<!--
{
  "availability" : [
    "macCatalyst: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreGraphics",
  "identifier" : "/documentation/CoreGraphics/CGDisplayConfigRef",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "Core Graphics"
    ],
    "preciseIdentifier" : "c:@T@CGDisplayConfigRef"
  },
  "title" : "CGDisplayConfigRef"
}
-->

# CGDisplayConfigRef

A reference to a display configuration transaction.

```
typealias CGDisplayConfigRef = OpaquePointer
```

## Discussion

This data type makes it possible to:

- Create a new display configuration transaction using the function [`CGBeginDisplayConfiguration(_:)`](/documentation/CoreGraphics/CGBeginDisplayConfiguration(_:))
- Record a set of configuration changes, each bound to one or more displays
- Apply the changes in a single transaction using the function [`CGCompleteDisplayConfiguration(_:_:)`](/documentation/CoreGraphics/CGCompleteDisplayConfiguration(_:_:)), or discard the changes using the function [`CGCancelDisplayConfiguration(_:)`](/documentation/CoreGraphics/CGCancelDisplayConfiguration(_:))

There are no restrictions on the order in which you accumulate configuration changes in a transaction.

Configuration changes sometimes conflict with each other. For example, a new origin might be rendered invalid by a subsequent configuration change.

If possible, Quartz uses a “best fit” strategy to resolve conflicts between configuration changes. For example, when you change the resolution of a single display in a two-display system, Quartz automatically retiles the displays to prevent separation or overlap of the adjoining edges.

---

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)