<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptionRenderer/Scene",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptionRendererScene"
  },
  "title" : "AVCaptionRenderer.Scene"
}
-->

# AVCaptionRenderer.Scene

An object that holds a time range and an associated state which indicates when the renderer draws output.

```
class Scene
```

## Overview

To render a scene, the object considers state like the existence of captions and regions, their temporal overlaps, and whether captions use animation effects. Your app can request time ranges where visual differences exist and use these time ranges to optimize drawing performance, like drawing once per scene. Alternatively, it can ignore scenes, and instead call [`render(in:for:)`](/documentation/AVFoundation/AVCaptionRenderer/render(in:for:)) repeatedly, but this may have additional performance impact.

## Topics

### Inspecting the scene

[`timeRange`](/documentation/AVFoundation/AVCaptionRenderer/Scene/timeRange)

The time range during which the system doesn’t modify the scene.

[`hasActiveCaptions`](/documentation/AVFoundation/AVCaptionRenderer/Scene/hasActiveCaptions)

A Boolean value that indicates whether the scene contains one or more active captions.

[`needsPeriodicRefresh`](/documentation/AVFoundation/AVCaptionRenderer/Scene/needsPeriodicRefresh)

A Boolean value that indicates whether the scene requires redrawing while your app progresses through the content.



---

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)