---
title: ImmersivePreviewRenderer
framework: Immersive Media Support
role: symbol
role_heading: Class
platforms: [macOS 27.0+, visionOS 27.0+]
path: immersivemediasupport/immersivepreviewrenderer
---

# ImmersivePreviewRenderer

An object that renders an immersive video frame into a texture and exposes the command buffer for presentation.

## Declaration

```swift
@MainActor class ImmersivePreviewRenderer
```

## Overview

Overview ImmersivePreviewRenderer provides a high-level interface for rendering immersive video content with support for stereoscopic rendering, presentation commands, and venue-specific camera models. It manages the rendering pipeline including geometry setup, texture management, and frame processing. The renderer supports two rendering modes: Create a renderer with a venue descriptor that defines the camera models and rendering geometry: let venueDescriptor = try VenueDescriptor(aimeFileURL: aimeURL) let renderer = ImmersivePreviewRenderer(venueDescriptor: venueDescriptor) On macOS, render frames directly to a texture: await renderer.process(     frame,     for: .left,     rotation: currentRotation,     fieldOfView: 90,     presentationDescriptor: descriptor,     renderTexture: drawable.texture ) On visionOS, integrate with CompositorServices for immersive rendering: await renderer.process(     frame,     presentationDescriptor: descriptor,     drawable: drawable ) Finally, present and commit command buffer: if let commandBuffer = renderer.commandBuffer {     commandBuffer.present(drawable)     commandBuffer.commit() }

## Topics

### Initializers

- [init(device:venueDescriptor:depthPixelFormat:colorPixelFormat:)](immersivemediasupport/immersivepreviewrenderer/init(device:venuedescriptor:depthpixelformat:colorpixelformat:).md)

### Instance Properties

- [commandBuffer](immersivemediasupport/immersivepreviewrenderer/commandbuffer.md)
- [venueDescriptor](immersivemediasupport/immersivepreviewrenderer/venuedescriptor.md)

### Instance Methods

- [process(_:for:rotation:fieldOfView:presentationDescriptor:renderTexture:)](immersivemediasupport/immersivepreviewrenderer/process(_:for:rotation:fieldofview:presentationdescriptor:rendertexture:).md)
- [process(_:presentationDescriptor:drawable:)](immersivemediasupport/immersivepreviewrenderer/process(_:presentationdescriptor:drawable:).md)

### Enumerations

- [ImmersivePreviewRenderer.Eye](immersivemediasupport/immersivepreviewrenderer/eye.md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Preview

- [ImmersiveMediaPreviewMessagingProtocol](immersivemediasupport/immersivemediapreviewmessagingprotocol.md)
- [ImmersiveMediaRemotePreviewSender](immersivemediasupport/immersivemediaremotepreviewsender.md)
- [ImmersiveMediaRemotePreviewReceiver](immersivemediasupport/immersivemediaremotepreviewreceiver.md)
