---
title: PGDevice
framework: Paravirtualized Graphics
role: symbol
role_heading: Protocol
platforms: [Mac Catalyst 14.0+, macOS 11.0+]
path: paravirtualizedgraphics/pgdevice
---

# PGDevice

A paravirtualized GPU device object.

## Declaration

```swift
protocol PGDevice : NSObjectProtocol
```

## Topics

### Handling Memory-Mapped I/O

- [mmioRead(atOffset:)](paravirtualizedgraphics/pgdevice/mmioread(atoffset:).md)
- [mmioWrite(atOffset:value:)](paravirtualizedgraphics/pgdevice/mmiowrite(atoffset:value:).md)

### Suspending and Resuming Graphics Processing

- [willSuspend()](paravirtualizedgraphics/pgdevice/willsuspend().md)
- [finishSuspend()](paravirtualizedgraphics/pgdevice/finishsuspend().md)
- [willResume(withSuspendState:error:)](paravirtualizedgraphics/pgdevice/willresume(withsuspendstate:error:).md)
- [didResume()](paravirtualizedgraphics/pgdevice/didresume().md)
- [PGResumeErrorDomain](paravirtualizedgraphics/pgresumeerrordomain.md)
- [PGResumeErrorCode](paravirtualizedgraphics/pgresumeerrorcode.md)

### Managing Displays

- [newDisplay(with:port:serialNum:)](paravirtualizedgraphics/pgdevice/newdisplay(with:port:serialnum:).md)

### Instance Methods

- [pause()](paravirtualizedgraphics/pgdevice/pause().md)
- [reset()](paravirtualizedgraphics/pgdevice/reset().md)
- [stop()](paravirtualizedgraphics/pgdevice/stop().md)
- [unpause()](paravirtualizedgraphics/pgdevice/unpause().md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Devices

- [PGDeviceDescriptor](paravirtualizedgraphics/pgdevicedescriptor.md)
