# gvr::SwapChain

`#include <gvr.h>`

Convenience C++ wrapper for gvr_swap_chain, which represents a queue of frames.

## Summary

The [GvrApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/gvr-api#classgvr_1_1_gvr_api) object must outlive any [SwapChain](https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain#classgvr_1_1_swap_chain) objects created from it.

### Inheritance

Inherits from: [gvr::WrapperBase\< gvr_swap_chain, gvr_swap_chain_destroy \>](https://developers.google.com/vr/reference/android-ndk/class/gvr/wrapper-base)

| ### Public functions ||
|---|---|
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain#classgvr_1_1_swap_chain_1ad109fd7b3392edcf00971abc3e5ddb67()` | `https://developers.google.com/vr/reference/android-ndk/class/gvr/frame#classgvr_1_1_frame` For more information, see [gvr_swap_chain_acquire_frame()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga0d43a60eedfb0fdcf429186b3aa52636). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain#classgvr_1_1_swap_chain_1a3cccc0209bb0a44f647cb6874fc73080() const ` | `int32_t` For more information, see [gvr_swap_chain_get_buffer_count()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga0dbc6508197953dd7375e4a138a4d0f6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain#classgvr_1_1_swap_chain_1adbb9e1fa3e2a50432c1cd05aab51f1a4(int32_t index) const ` | `https://developers.google.com/vr/reference/android-ndk/struct/gvr-sizei#structgvr__sizei` For more information, see [gvr_swap_chain_get_buffer_size()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1gafe8d1ffdb63232da23d5534179618ac6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain#classgvr_1_1_swap_chain_1a33239d768299a8f7662d9529d973a3ab(int32_t index, https://developers.google.com/vr/reference/android-ndk/struct/gvr-sizei#structgvr__sizei size)` | `void` For more information, see [gvr_swap_chain_resize_buffer()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga711add709bbfef5db1ddf98640c972ee). |

## Public functions

### AcquireFrame

```
Frame AcquireFrame()
```
For more information, see [gvr_swap_chain_acquire_frame()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga0d43a60eedfb0fdcf429186b3aa52636).

Note that if [Frame](https://developers.google.com/vr/reference/android-ndk/class/gvr/frame#classgvr_1_1_frame) acquisition fails, the returned [Frame](https://developers.google.com/vr/reference/android-ndk/class/gvr/frame#classgvr_1_1_frame) may not be valid. The caller should inspect the returned [Frame](https://developers.google.com/vr/reference/android-ndk/class/gvr/frame#classgvr_1_1_frame)'s validity before using, and reschedule frame acquisition upon failure.

### GetBufferCount

```
int32_t GetBufferCount() const 
```
For more information, see [gvr_swap_chain_get_buffer_count()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga0dbc6508197953dd7375e4a138a4d0f6).

### GetBufferSize

```
Sizei GetBufferSize(
  int32_t index
) const 
```
For more information, see [gvr_swap_chain_get_buffer_size()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1gafe8d1ffdb63232da23d5534179618ac6).

### ResizeBuffer

```
void ResizeBuffer(
  int32_t index,
  Sizei size
)
```
For more information, see [gvr_swap_chain_resize_buffer()](https://developers.google.com/vr/reference/android-ndk/group/swap-chain#group__swap__chain_1ga711add709bbfef5db1ddf98640c972ee).