# Google VR NDK Reference

# Google VR NDK Reference

C and C++ reference pages for the Google VR NDK.

| ## Modules ||
|---|---|
| [Controller API](https://developers.google.com/vr/reference/android-ndk/group/controller) | This is the Controller C API, which allows access to a VR controller. |
| [GVR Beta APIs](https://developers.google.com/vr/reference/android-ndk/group/beta) | These are Beta APIs that are likely to change between releases. |
| [Gesture C API](https://developers.google.com/vr/reference/android-ndk/group/gesture) | The Gesture C API allows clients to recognize touchpad and button gestures from a controller. |
| [Google VR Base C API](https://developers.google.com/vr/reference/android-ndk/group/base) | This is the Google VR C API. |
| [Google VR Types](https://developers.google.com/vr/reference/android-ndk/group/types) | Various types used in the Google VR NDK. |
| [Head Mounted Display](https://developers.google.com/vr/reference/android-ndk/group/h-m-d) | Functions for managing viewer information. |
| [Head tracking](https://developers.google.com/vr/reference/android-ndk/group/headtracking) | Functions for managing head tracking. |
| [Spatial Audio API](https://developers.google.com/vr/reference/android-ndk/group/audio) | This is the GVR Audio C API, a spatial audio rendering engine, optimized for mobile VR. |
| [Surround Renderer API](https://developers.google.com/vr/reference/android-ndk/group/audio-surround) | This is the GVR Binaural Surround Renderer C API which reads in PCM buffers of surround sound as well as ambisonic soundfield content to render binaural stereo. |
| [Swap chains and frames](https://developers.google.com/vr/reference/android-ndk/group/swap-chain) | Functions to create a swap chain, manipulate it and submit frames for lens distortion and presentation on the screen. |
| [Viewports and viewport lists](https://developers.google.com/vr/reference/android-ndk/group/viewport) | Objects to define the mapping between the application's rendering output and the user's field of view. |

| ## Classes ||
|---|---|
| [gvr::AudioApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/audio-api) | This is a convenience C++ wrapper for the Audio C API. |
| [gvr::AudioSurroundApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/audio-surround-api) | This is a convenience C++ wrapper for the Audio Surround C API. |
| [gvr::BufferSpec](https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-spec) | Convenience C++ wrapper for gvr_buffer_spec, an opaque pixel buffer specification. |
| [gvr::BufferViewport](https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport) | Convenience C++ wrapper for the opaque gvr_buffer_viewport type. |
| [gvr::BufferViewportList](https://developers.google.com/vr/reference/android-ndk/class/gvr/buffer-viewport-list) | Convenience C++ wrapper for the opaque gvr_buffer_viewport_list type. |
| [gvr::ControllerApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/controller-api) | This is a convenience C++ wrapper for the Controller C API. |
| [gvr::ControllerState](https://developers.google.com/vr/reference/android-ndk/class/gvr/controller-state) | Convenience C++ wrapper for the opaque gvr_controller_state type. |
| [gvr::Frame](https://developers.google.com/vr/reference/android-ndk/class/gvr/frame) | Convenience C++ wrapper for gvr_frame, which represents a single frame acquired for rendering from the swap chain. |
| [gvr::GestureApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/gesture-api) | This is a convenience C++ wrapper for the Gesture C API. |
| [gvr::GvrApi](https://developers.google.com/vr/reference/android-ndk/class/gvr/gvr-api) | This is a convenience C++ wrapper for the Google VR C API. |
| [gvr::Properties](https://developers.google.com/vr/reference/android-ndk/class/gvr/properties) | Convenience C++ wrapper for gvr_properties. |
| [gvr::SwapChain](https://developers.google.com/vr/reference/android-ndk/class/gvr/swap-chain) | Convenience C++ wrapper for gvr_swap_chain, which represents a queue of frames. |
| [gvr::UserPrefs](https://developers.google.com/vr/reference/android-ndk/class/gvr/user-prefs) | Convenience C++ wrapper for gvr_user_prefs. |
| [gvr::WrapperBase](https://developers.google.com/vr/reference/android-ndk/class/gvr/wrapper-base) | Base class for all C++ wrapper objects. |

| ## Structs ||
|---|---|
| [gvr_clock_time_point](https://developers.google.com/vr/reference/android-ndk/struct/gvr-clock-time-point) | A *monotonic system time* representation. |
| [gvr_event](https://developers.google.com/vr/reference/android-ndk/struct/gvr-event) | Container for various GVR-events to which the client can optionally respond. |
| [gvr_mat4f](https://developers.google.com/vr/reference/android-ndk/struct/gvr-mat4f) | A floating point 4x4 matrix stored in row-major form. |
| [gvr_quatf](https://developers.google.com/vr/reference/android-ndk/struct/gvr-quatf) | A floating point quaternion, in JPL format. |
| [gvr_recenter_event_data](https://developers.google.com/vr/reference/android-ndk/struct/gvr-recenter-event-data) | Event data associated with a GVR_EVENT_RECENTER event, which indicates head tracking recentering. |
| [gvr_rectf](https://developers.google.com/vr/reference/android-ndk/struct/gvr-rectf) | A floating point 2D rect. |
| [gvr_recti](https://developers.google.com/vr/reference/android-ndk/struct/gvr-recti) | An integral 2D rect. Used for window bounds in pixels. |
| [gvr_sizei](https://developers.google.com/vr/reference/android-ndk/struct/gvr-sizei) | An integral 2D size. Used for render target sizes. |
| [gvr_value](https://developers.google.com/vr/reference/android-ndk/struct/gvr-value) | A generic container for various pure value types. |
| [gvr_vec2f](https://developers.google.com/vr/reference/android-ndk/struct/gvr-vec2f) | A floating point 2D vector. |
| [gvr_vec3f](https://developers.google.com/vr/reference/android-ndk/struct/gvr-vec3f) | A floating point 3D vector. |
| [gvr_version_](https://developers.google.com/vr/reference/android-ndk/struct/gvr-version-) | Version information for the Google VR API. |