November 6, 2019 update:
  • There's a new open source Cardboard SDK that offers a streamlined API, improved device compatibility, and built-in viewer profile QR code scanning. We recommend that all developers actively building for Google Cardboard migrate to the new Cardboard SDK: iOS, Android NDK, Unity XR Plugin (SDK)
October 15, 2019 update:
  • The Daydream View VR headset is no longer available for purchase. However, you can continue to use the existing Google VR SDK to update and distribute your apps to the Google Play Store, and make them available to users in the Daydream app.

Google VR NDK Reference

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


Controller API This is the Controller C API, which allows access to a VR controller.
GVR Beta APIs These are Beta APIs that are likely to change between releases.
Gesture C API The Gesture C API allows clients to recognize touchpad and button gestures from a controller.
Google VR Base C API This is the Google VR C API.
Google VR Types Various types used in the Google VR NDK.
Head Mounted Display Functions for managing viewer information.
Head tracking Functions for managing head tracking.
Spatial Audio API This is the GVR Audio C API, a spatial audio rendering engine, optimized for mobile VR.
Surround Renderer API 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 Functions to create a swap chain, manipulate it and submit frames for lens distortion and presentation on the screen.
Viewports and viewport lists Objects to define the mapping between the application's rendering output and the user's field of view.


gvr::AudioApi This is a convenience C++ wrapper for the Audio C API.
gvr::AudioSurroundApi This is a convenience C++ wrapper for the Audio Surround C API.
gvr::BufferSpec Convenience C++ wrapper for gvr_buffer_spec, an opaque pixel buffer specification.
gvr::BufferViewport Convenience C++ wrapper for the opaque gvr_buffer_viewport type.
gvr::BufferViewportList Convenience C++ wrapper for the opaque gvr_buffer_viewport_list type.
gvr::ControllerApi This is a convenience C++ wrapper for the Controller C API.
gvr::ControllerState Convenience C++ wrapper for the opaque gvr_controller_state type.
gvr::Frame Convenience C++ wrapper for gvr_frame, which represents a single frame acquired for rendering from the swap chain.
gvr::GestureApi This is a convenience C++ wrapper for the Gesture C API.
gvr::GvrApi This is a convenience C++ wrapper for the Google VR C API.
gvr::Properties Convenience C++ wrapper for gvr_properties.
gvr::SwapChain Convenience C++ wrapper for gvr_swap_chain, which represents a queue of frames.
gvr::UserPrefs Convenience C++ wrapper for gvr_user_prefs.
gvr::WrapperBase Base class for all C++ wrapper objects.


gvr_clock_time_point A monotonic system time representation.
gvr_event Container for various GVR-events to which the client can optionally respond.
gvr_mat4f A floating point 4x4 matrix stored in row-major form.
gvr_quatf A floating point quaternion, in JPL format.
gvr_recenter_event_data Event data associated with a GVR_EVENT_RECENTER event, which indicates head tracking recentering.
gvr_rectf A floating point 2D rect.
gvr_recti An integral 2D rect. Used for window bounds in pixels.
gvr_sizei An integral 2D size. Used for render target sizes.
gvr_value A generic container for various pure value types.
gvr_vec2f A floating point 2D vector.
gvr_vec3f A floating point 3D vector.
gvr_version_ Version information for the Google VR API.