This site has been archived and remains strictly as a historical reference for developers who actively maintain apps built using the legacy Google VR SDK, which was last updated in 2019 and is no longer receiving updates.
  • All developers actively developing experiences for Google Cardboard should use the new open source Cardboard SDKs for iOS, Android NDK, and Unity XR Plugin. These new SDKs offer streamlined APIs, improved device compatibility, and built-in viewer profile QR code scanning.
  • The Daydream View VR headset is no longer available for purchase as of October 15, 2019. Existing apps on supported devices are unaffected for users who previously installed those applications. It is no longer possible to opt-in to Daydream distribution via Google Play.

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.