# SyncStrategy

Artifact: [androidx.graphics:graphics-core](https://developer.android.com/jetpack/androidx/releases/graphics) [View Source](https://cs.android.com/search?q=file:androidx/graphics/opengl/FrameBufferRenderer.kt+class:androidx.graphics.opengl.SyncStrategy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/graphics#1.0.0)

*** ** * ** ***


```
interface SyncStrategy
```

<br />

Known direct subclasses [FrontBufferSyncStrategy](https://developer.android.com/reference/kotlin/androidx/graphics/lowlatency/FrontBufferSyncStrategy)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/graphics/lowlatency/FrontBufferSyncStrategy` | `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy` implementation that optimizes for front buffered rendering use cases. |

*** ** * ** ***

A strategy class for deciding how to utilize `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` within `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/FrameBufferRenderer.RenderCallback`. SyncStrategy provides default strategies for usage:

`https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy#ALWAYS()` will always create a `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` to pass into the render callbacks for `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/FrameBufferRenderer`

## Summary

| ### Public companion properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy` | `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy#ALWAYS()` `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy` that will always create a `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` object |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat?` | `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy#createSyncFence(androidx.graphics.opengl.egl.EGLSpec)(eglSpec: https://developer.android.com/reference/kotlin/androidx/graphics/opengl/egl/EGLSpec)` Conditionally generates a `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` based upon implementation. |

## Public companion properties

### ALWAYS

```
val ALWAYS: SyncStrategy
```

`https://developer.android.com/reference/kotlin/androidx/graphics/opengl/SyncStrategy` that will always create a `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` object

## Public functions

### createSyncFence

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/graphics#1.0.0)

```
fun createSyncFence(eglSpec: EGLSpec): SyncFenceCompat?
```

Conditionally generates a `https://developer.android.com/reference/kotlin/androidx/hardware/SyncFenceCompat` based upon implementation.

| Parameters |
|---|---|
| `eglSpec: https://developer.android.com/reference/kotlin/androidx/graphics/opengl/egl/EGLSpec` | an `https://developer.android.com/reference/kotlin/androidx/graphics/opengl/egl/EGLSpec` object to dictate the version of EGL and make EGL calls. |