# gvr::BufferViewport

`#include <gvr.h>`

Convenience C++ wrapper for the opaque gvr_buffer_viewport type.

## Summary

The constructor allocates memory, so when used in tight loops, instances should be reused.

### Inheritance

Inherits from: [gvr::WrapperBase\< gvr_buffer_viewport, gvr_buffer_viewport_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/buffer-viewport#classgvr_1_1_buffer_viewport_1a47aee87551fbfb7e621e9eddfdb1423b() const ` | `int32_t` For more information, see [gvr_buffer_viewport_get_external_surface_id()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga3737c2fd9be20b59a2df4a53ed21a580). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a989405b26efc1a8d9194693e0963a4c3() const ` | `float` For more information, see [gvr_buffer_viewport_get_opacity()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaf7cc0087e067de5510de512ffc1b13a6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1aaa9ba4125c1f71c6fbfdb453955979ff() const ` | `https://developers.google.com/vr/reference/android-ndk/group/types#group__types_1ga3a5bb59dc710bf5a438cde3578032523` For more information, see [gvr_buffer_viewport_get_reprojection()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga2891fa646d091576ba2b9d9b540cc93a). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a3c24dd2c2a1f97f8d6c27cdf8e0fa827() const ` | `int32_t` For more information, see [gvr_buffer_viewport_get_source_buffer_index()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gacedbce1f7d901e46065ea520eff1a2b6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a0ecda3477b7af4a225cfb053a8237b0a() const ` | `https://developers.google.com/vr/reference/android-ndk/struct/gvr-rectf#structgvr__rectf` For more information, see [gvr_buffer_viewport_get_source_fov()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga492c38af0e159bad17e062180b17de62). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a260c51daa9fc82d852258b6e58de3fa7() const ` | `https://developers.google.com/vr/reference/android-ndk/struct/gvr-rectf#structgvr__rectf` For more information, see [gvr_buffer_viewport_get_source_uv()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga57e6ae3c8bcf39a593476e602cd2515f). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a0e4bc463b7c3ac6463b4753d97582d7f() const ` | `https://developers.google.com/vr/reference/android-ndk/group/types#group__types_1ga85307f8900f38a9100d4d201c32d5b0b` For more information, see [gvr_buffer_viewport_get_target_eye()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga01936740e781dd515359c7f4a5ddd8b6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a5bf2b31e2b138108be8dd5a5b86baffa() const ` | `https://developers.google.com/vr/reference/android-ndk/struct/gvr-mat4f#structgvr__mat4f` For more information, see [gvr_buffer_viewport_get_transform()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga70121ead524e88d0ac2615c86e97829c). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a5267c6193b86178b178a41170085a07b(const int32_t external_surface_id)` | `void` For more information, see [gvr_buffer_viewport_set_external_surface_id()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga0291753aff748fdc607988644fdadf63). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1abb3f97e3b1f0fe3137b24d4226bb6c40(float opacity)` | `void` For more information, see [gvr_buffer_viewport_set_opacity()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga3282902214d973e2e02c9fcb83800afe). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a5eb46e2255ba87b0d4f69ae803ac04a0(https://developers.google.com/vr/reference/android-ndk/group/types#group__types_1ga3a5bb59dc710bf5a438cde3578032523 reprojection)` | `void` For more information, see [gvr_buffer_viewport_set_reprojection()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaaf017397f3c52984603b8e1195a384d1). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a1ea14292f6137f1334f19d7ea977c88c(int32_t buffer_index)` | `void` For more information, see [gvr_buffer_viewport_set_source_buffer_index()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga60083cb1f45dd2302dfbf3c24921f2a0). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a6d4ef969799e6ef8f04f99a73d99048b(const https://developers.google.com/vr/reference/android-ndk/struct/gvr-rectf#structgvr__rectf & fov)` | `void` For more information, see [gvr_buffer_viewport_set_source_fov()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaabdd75193d6bfe4a091d3671551d3a79). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1ade083ac500caf8fa37569403a488652e(int32_t layer_index)` | `void` For more information, see [gvr_buffer_viewport_set_source_layer()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga347a66462b513b2e86b70177780c6c81). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1ae1b09c51be91642949bc4b870dc3591c(const https://developers.google.com/vr/reference/android-ndk/struct/gvr-rectf#structgvr__rectf & uv)` | `void` For more information, see [gvr_buffer_viewport_set_source_uv()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga177834a7e65a0e1906471bc1a386e5b6). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1ae14999f296b95dae262c58eab2405408(https://developers.google.com/vr/reference/android-ndk/group/types#group__types_1ga85307f8900f38a9100d4d201c32d5b0b eye)` | `void` For more information, see [gvr_buffer_viewport_set_target_eye()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga5414e6b39b7e29d922f5365cdaeb20cf). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a516542a952e87ce45fca06c85372f7a6(const https://developers.google.com/vr/reference/android-ndk/struct/gvr-mat4f#structgvr__mat4f & transform)` | `void` For more information, see [gvr_buffer_viewport_set_transform()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga8bbe798d6de19eff2f5499f3ab628722). |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1a9b757ce9e8064267c917b2609985c22b(const https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport & other) const ` | `bool` |
| `https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport_1adf1ac98d7dfde59007c8c9ca296c97e6(const https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport#classgvr_1_1_buffer_viewport & other) const ` | `bool` For more information, see [gvr_buffer_viewport_equal()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gadfe006fb9f23bd0b4d1227eb82b68858). |

## Public functions

### GetExternalSurfaceId

```
int32_t GetExternalSurfaceId() const 
```
For more information, see [gvr_buffer_viewport_get_external_surface_id()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga3737c2fd9be20b59a2df4a53ed21a580).

### GetOpacity

```
float GetOpacity() const 
```
For more information, see [gvr_buffer_viewport_get_opacity()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaf7cc0087e067de5510de512ffc1b13a6).

### GetReprojection

```
gvr_reprojection GetReprojection() const 
```
For more information, see [gvr_buffer_viewport_get_reprojection()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga2891fa646d091576ba2b9d9b540cc93a).

### GetSourceBufferIndex

```
int32_t GetSourceBufferIndex() const 
```
For more information, see [gvr_buffer_viewport_get_source_buffer_index()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gacedbce1f7d901e46065ea520eff1a2b6).

### GetSourceFov

```
Rectf GetSourceFov() const 
```
For more information, see [gvr_buffer_viewport_get_source_fov()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga492c38af0e159bad17e062180b17de62).

### GetSourceUv

```
Rectf GetSourceUv() const 
```
For more information, see [gvr_buffer_viewport_get_source_uv()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga57e6ae3c8bcf39a593476e602cd2515f).

### GetTargetEye

```
Eye GetTargetEye() const 
```
For more information, see [gvr_buffer_viewport_get_target_eye()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga01936740e781dd515359c7f4a5ddd8b6).

### GetTransform

```
Mat4f GetTransform() const 
```
For more information, see [gvr_buffer_viewport_get_transform()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga70121ead524e88d0ac2615c86e97829c).

### SetExternalSurfaceId

```
void SetExternalSurfaceId(
  const int32_t external_surface_id
)
```
For more information, see [gvr_buffer_viewport_set_external_surface_id()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga0291753aff748fdc607988644fdadf63).

### SetOpacity

```
void SetOpacity(
  float opacity
)
```
For more information, see [gvr_buffer_viewport_set_opacity()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga3282902214d973e2e02c9fcb83800afe).

### SetReprojection

```
void SetReprojection(
  gvr_reprojection reprojection
)
```
For more information, see [gvr_buffer_viewport_set_reprojection()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaaf017397f3c52984603b8e1195a384d1).

### SetSourceBufferIndex

```
void SetSourceBufferIndex(
  int32_t buffer_index
)
```
For more information, see [gvr_buffer_viewport_set_source_buffer_index()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga60083cb1f45dd2302dfbf3c24921f2a0).

### SetSourceFov

```
void SetSourceFov(
  const Rectf & fov
)
```
For more information, see [gvr_buffer_viewport_set_source_fov()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gaabdd75193d6bfe4a091d3671551d3a79).

### SetSourceLayer

```
void SetSourceLayer(
  int32_t layer_index
)
```
For more information, see [gvr_buffer_viewport_set_source_layer()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga347a66462b513b2e86b70177780c6c81).

### SetSourceUv

```
void SetSourceUv(
  const Rectf & uv
)
```
For more information, see [gvr_buffer_viewport_set_source_uv()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga177834a7e65a0e1906471bc1a386e5b6).

### SetTargetEye

```
void SetTargetEye(
  Eye eye
)
```
For more information, see [gvr_buffer_viewport_set_target_eye()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga5414e6b39b7e29d922f5365cdaeb20cf).

### SetTransform

```
void SetTransform(
  const Mat4f & transform
)
```
For more information, see [gvr_buffer_viewport_set_transform()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1ga8bbe798d6de19eff2f5499f3ab628722).

### operator!=

```
bool operator!=(
  const BufferViewport & other
) const 
```

### operator==

```
bool operator==(
  const BufferViewport & other
) const 
```
For more information, see [gvr_buffer_viewport_equal()](https://developers.google.com/vr/reference/android-ndk/group/viewport#group__viewport_1gadfe006fb9f23bd0b4d1227eb82b68858).