---
title: "CanvasOp.Save"
description: "Represents a save/restore group (corresponding to RemoteComposeWriter.save and RemoteComposeWriter.restore)."
type: "class"
lastmod: "2026-07-19T07:47:45.854747Z"
---
## API Reference

> Source set: Android

```kotlin
class Save(val parent: Save? = null, val children: MutableList<CanvasOp> = ArrayList()) :
        CanvasOp()
```

Represents a save/restore group (corresponding to [RemoteComposeWriter.save](/jetpack-compose/androidx.compose.remote/remote-creation-compose/classes/CanvasOp.Save) and
`RemoteComposeWriter.restore`).

## Properties

### hasDrawCalls

> Source set: Android

```kotlin
var hasDrawCalls = false
```

Indicates whether this scope or any of its descendants contain actual drawing calls. Used
during the elision pass to discard empty scopes.

### elisionMode

> Source set: Android

```kotlin
var elisionMode = ElisionMode.PRESERVE
```

The elision strategy decided for this scope during the elision pass.

### spanOp

> Source set: Android

```kotlin
var spanOp: CanvasOperationBuffer.SpanOp?
```

## Functions

### getRootSaveNode

```kotlin
fun getRootSaveNode(): Save
```
