# Google VR Types

# Google VR Types

Various types used in the Google VR NDK.

## Summary

| ### Enumerations ||
|---|---|
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga06fc87d81c62e9abb8790b6e5713c55b{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga06fc87d81c62e9abb8790b6e5713c55ba20c28d3192cb67868d7c8f6b5f688ece = (1U << 0), https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga06fc87d81c62e9abb8790b6e5713c55bae421395c7beb617530c6a50cbe284122 = (1U << 1), https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga06fc87d81c62e9abb8790b6e5713c55ba81d7b187daf993506fbe44b387314faa = (1U << 2) }` | enumFlags indicating the current status of the tracker. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gadf764cbdea00d65edcd07bb9953ad2b7{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7ae243a1fac759eea18a6a538888705c4c = 1 << 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7ae67e98ca539a53de251a21135bad2d27 = 1 << 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a70bd1790f3df5a7c7aca2a90de66c717 = 1 << 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a5a1b8056f44970cf2d64bb28ab1fe306 = 1 << 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a13e81704c7ae59551e77dee5d5e04822 = 1 << 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a01d2766e27015680e496f2cd6dbc49ce = 1 << 5, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a8d4208fc3041d8b41b3a52c4906f077e = 1 << 6, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7a0825fa7ad04d6949e3377f3913eccc32 = 1 << 7, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadf764cbdea00d65edcd07bb9953ad2b7ab0618281b33721ac752aa49c9c221b28 = 1 << 8 }` | enumController API options (bit flags). |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga99fb83031ce9923c84392b4e92f956b5{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga99fb83031ce9923c84392b4e92f956b5aa38c901c0ceb1d9c69488d78b2bce587 = -1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga99fb83031ce9923c84392b4e92f956b5ad32d2a069c002f7d82ecf536d1466738 = -1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga99fb83031ce9923c84392b4e92f956b5ab502e35b708b8ed51578cd8249de89f8 = -1 }` | enum |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga97eb4ac3be58678a987c1ba9a5c52802` | enumTypes of gaze behaviors used for arm model. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga6f7b4981dd2d8f6d4dda118d0b2bd7f5{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga6f7b4981dd2d8f6d4dda118d0b2bd7f5a14d994f2b3cf23d7eb8289d5ad33bce7 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga6f7b4981dd2d8f6d4dda118d0b2bd7f5a579f6a38c6f94472cc7235d547886bb3 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga6f7b4981dd2d8f6d4dda118d0b2bd7f5ae8dfbf12d6938db32e8e1b3865bcc70d = 2 }` | enumDistance rolloff models used for distance attenuation. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gae7e544e03435556a97f99d7a23d4bf82{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a986701b92fa2134a6e7d9a97e79c7df3 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82ac97ceb58f80a5e4a8bc85beabf407749 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82ae8ffba2a9a5c2e6667f761207501eded = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a403af7bcea40b1a73811db1845ceda47 = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a72dd4968470d4f01adfbcaa277e40c23 = 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a14c7e2e090af04363455992605e49841 = 5, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82abbe5c3edbb137bc8ca76355f695e425c = 6, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a2ff8d74c58a99a214104fc02154fe6bc = 7, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a691d228dc68f8849e2a61132358183e2 = 8, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a845c47375bec50ceee922438d2894983 = 9, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a3b3b149e34114cbd8de385c00d889282 = 10, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82ac768f93f692b7eacf9fc81a3c8f7fc7b = 11, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a41a855faf5a9ca1cf3dbba936eb94ae1 = 12, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a2ef180ba7ef72dd7cd6031363ca73278 = 13, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a26d59464b6abc31fd22666913536a5d3 = 14, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82aeea3007a6d851dd61f6b41df3b1ce4d9 = 15, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a57f5ef96a0baa8a452824e61d7bca2a2 = 16, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a9a23502a70b002e44c4f34b33eb7a621 = 17, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a00677cd172c5399fc3736bf56deab045 = 18, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a9b5d870d72ea7ba8fbb272fe847fdc61 = 19, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82ae2931d72d81c40c6d4abbe651ce73d86 = 20, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a2b10f3900e2cc0e0345198d3404afdc7 = 21, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggae7e544e03435556a97f99d7a23d4bf82a61bd1723f172796031697134a397ed5b = 22 }` | enumRoom surface material names, used to set room properties. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga81435bed7e3235488fd7137c6fddc23c{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga81435bed7e3235488fd7137c6fddc23ca4b394ac1c88a64c1d4f5c54ce4c975f1 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga81435bed7e3235488fd7137c6fddc23ca65808d1bfac3a3b206d0fd3b02880dc8 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga81435bed7e3235488fd7137c6fddc23caea7bce704083eb1373b2da56efa1853f = 2 }` | enumRendering modes define CPU load / rendering quality balances. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gab85687cb403c1ee4b589bb29d5b0dfa0` | enumSupported surround sound formats. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga747712201709f746e836233b3a7f5f6f{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga747712201709f746e836233b3a7f5f6fafddb98ecaf07c36619922a1eb513ec4f = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga747712201709f746e836233b3a7f5f6fad62acb9fe313ffe7324b88fe8afc85b0 = 1 }` | enumValid color formats for swap chain buffers. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gaae9868cb18a642676cc9ca2364adee8d{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8da45b4dff7b4840da3bc12015aa8af9c8a = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8da51c3a35c1100dc2e6714b4e4f1d61191 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8daeaa14f88510c859e7872f58813eeb4d3 = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8da1bff2f759cecd09d110fc647162b2914 = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8da56b0731abec22811c65dbae0eef4700f = 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8dae45fa9bec2af6f987ab26a7f150ecef0 = 5, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaae9868cb18a642676cc9ca2364adee8da1c87e5649f9201cc844d8fd12a45658e = 6 }` | enumConstants that represent the status of the controller API. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga5fa47795f01fd630034592fe562669ce{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga5fa47795f01fd630034592fe562669cea3295ca9b1aaa40d729ca9581531a39aa = 6 }` | enumController battery states. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga25a81f172e4de5c794b8f3ddb6194f41{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga25a81f172e4de5c794b8f3ddb6194f41ac66e45515e8354134762a6ac4c881cd2 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga25a81f172e4de5c794b8f3ddb6194f41acd655fa9730edfeb073b900986af61c8 = 9 }` | enumController buttons. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gaedb36d874b0add14801d22bdf2b64e9f{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaedb36d874b0add14801d22bdf2b64e9fa8681ae882c485cd0e54b908d051b5014 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaedb36d874b0add14801d22bdf2b64e9fafebb6688fb99f6ea26f3a6f6d3e86896 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaedb36d874b0add14801d22bdf2b64e9fa1ee9ed4288a4da9ff794d67254f7bd12 = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaedb36d874b0add14801d22bdf2b64e9fab333fa95b08582d534d7774a7d94601a = 3 }` | enumConstants that represent the state of the controller. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gaf7efb706db0bfd4f97b5797b6bae5686` | enum |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga31d3dccb5f5ab55ccd3ec23f2125647c{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647ca1c0239eea590407a1000ba13ee5e5e70 = 255, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647caa9e8f795958abf7a5f7cec12e860f6b4 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647cac6cdf376da438678b393d18685db3839 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647caf85571e82908f5312d9687a81c7ef423 = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647caea10f373c7a8880685e716a8913a695d = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647ca521822e3f0ef1c10c707a83fbec34962 = 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga31d3dccb5f5ab55ccd3ec23f2125647caba9888601144897bc568028e0c7bfc86 = 5 }` | enum |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gab6f56d27fe86b45573e1f2a6f18d0bf5{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab6f56d27fe86b45573e1f2a6f18d0bf5a1ea674b01fc462825f0660342c7ccf07 = 1000000, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab6f56d27fe86b45573e1f2a6f18d0bf5aec0de3f98357a2fbde4f5119cf29a7d0 = 1000001 }` | enumConstants that represent GVR error codes. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gab3a225cf2d0157c22ce7311f434c1471{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab3a225cf2d0157c22ce7311f434c1471ad7d9162391150386140fe862273fc602 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab3a225cf2d0157c22ce7311f434c1471abfffa1e49f69f9b30ae4d410e5626c8c = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab3a225cf2d0157c22ce7311f434c1471a0d1237727e30537f383228c8e8e6ab9a = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab3a225cf2d0157c22ce7311f434c1471a4877d58da0bb22e6d8e319d65f995160 = 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggab3a225cf2d0157c22ce7311f434c1471ac4daa83c0fc62de431e89709d68f3ad6 = 5 }` | enumThe type of [gvr_event](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-event#structgvr__event). |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga85307f8900f38a9100d4d201c32d5b0b` | enumAn enum for the left and right eye. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga4cb33052bfcc9fe8163f3cc9a2e60cfc{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga4cb33052bfcc9fe8163f3cc9a2e60cfca3cb36f174645ede79fcc26cd0b145e05 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga4cb33052bfcc9fe8163f3cc9a2e60cfcacacd7af944423fadd3bb003ecc144301 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga4cb33052bfcc9fe8163f3cc9a2e60cfca6015dac2cd312fd2f1c8a265fb79c6c1 = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga4cb33052bfcc9fe8163f3cc9a2e60cfca55d46e4c83214cc8d7fa4d617cd8d949 = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga4cb33052bfcc9fe8163f3cc9a2e60cfca2509fe54b8cf0f450a18e60bbd41f5be = 4 }` | enumTypes of VR-specific features which may or may not be supported on the underlying platform. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gacefdb71f869a8d035d5121c5e577a8ee{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eeaf122be9c66efcfd073de59422f94e804 = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eeae6bedefb40b0d6e5176eb2a2129cf26e = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eead015b067ab4df747c14c32963f16cbaa = 3, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eea5960cbc5abf52c9dce1489bc4e139a14 = 4, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eea2927a7e448e73ecc2482ba21240102c4 = 5, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggacefdb71f869a8d035d5121c5e577a8eea7ed8b153e0c31f48a84d9a66ca185ee4 = 6 }` | enumProperty types exposed by the [gvr_properties_get()](https://developers.google.com/vr/reference/ios-ndk/group/base#group__base_1gac0b0e3b9f9c47123cd8e41990315b3e1) API. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gaf01268588b50df3b25517f20558e2006{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaf01268588b50df3b25517f20558e2006a2b70abce1d164c04f12cceee706d78ba = 1, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaf01268588b50df3b25517f20558e2006ad56db10af86ec14d60246bd442b99806 = 2, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggaf01268588b50df3b25517f20558e2006a44a8d6d813403110dc192c56b96d047c = 3 }` | enumThe type of a recentering associated with a GVR_EVENT_RECENTER event. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga3a5bb59dc710bf5a438cde3578032523{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga3a5bb59dc710bf5a438cde3578032523aba56a446103677f13182e48106163ec0 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gga3a5bb59dc710bf5a438cde3578032523a9e34a58bdc16dde61c8435cf833b0e5c = 1 }` | enumTypes of asynchronous reprojection. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gadb6f0e699139de822ed4dc55083c6617{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggadb6f0e699139de822ed4dc55083c6617a4350737ea57e7c4dd2ab3d0029e47ad8 = 1 }` | enumSafety region types exposed from the GVR_PROPERTY_SAFETY_REGION property. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga280a9811ff4093762e1a09b735a9de55` | enumValue types for the contents of a [gvr_value](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-value#structgvr__value) object instance. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1gac838227d4c585b3e8e04fc6d1afbe4b7{ https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggac838227d4c585b3e8e04fc6d1afbe4b7a1cbdcc94f5157e0aee8d660ab1a1bdb5 = 0, https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ggac838227d4c585b3e8e04fc6d1afbe4b7ac102d997be073b23cb187306d6400f7d = 1 }` | enumThe type of VR viewer. |

| ### Typedefs ||
|---|---|
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga716ac593f0ba3df28c82f24b9341e317` | typedef `int32_t` Sound object and sound field identifier. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga23df772969ac0cc13f77fffdec5c18ea` | typedef `struct gvr_context_` Primary context for invoking Google VR APIs. |
| `https://developers.google.com/vr/reference/ios-ndk/group/types#group__types_1ga664bc01eedba2dbba782dadaf43623f2` | typedef `struct gvr_user_prefs_` |

## Enumerations

### Anonymous Enum 0

```
 Anonymous Enum 0
```
Flags indicating the current status of the tracker.

See also GVR_PROPERTY_TRACKING_STATUS.

| Properties ||
|---|---|
| `GVR_TRACKING_STATUS_FLAG_HAS_6DOF` | The tracker pose is derived from 6DoF sensors and has a translational component. |
| `GVR_TRACKING_STATUS_FLAG_INITIALIZING` | The tracker is still initializing, so the pose may not be accurate. |
| `GVR_TRACKING_STATUS_FLAG_INVALID` | The tracker is in an invalid (potentially paused) state, or no valid tracker exists. |

### Anonymous Enum 1

```
 Anonymous Enum 1
```
Controller API options (bit flags).

| Properties ||
|---|---|
| `GVR_CONTROLLER_ENABLE_ACCEL` | Indicates that controller accelerometer data should be reported. |
| `GVR_CONTROLLER_ENABLE_ARM_MODEL` | Indicates that elbow model should be enabled if the system doesn't provide real position data. |
| `GVR_CONTROLLER_ENABLE_BATTERY` | Indicates that controller battery data should be reported. |
| `GVR_CONTROLLER_ENABLE_GESTURES` | Indicates that controller gestures should be reported. |
| `GVR_CONTROLLER_ENABLE_GYRO` | Indicates that controller gyroscope data should be reported. |
| `GVR_CONTROLLER_ENABLE_ORIENTATION` | Indicates that controller orientation data should be reported. |
| `GVR_CONTROLLER_ENABLE_POSE_PREDICTION` | Indicates that controller pose prediction should be enabled. |
| `GVR_CONTROLLER_ENABLE_POSITION` | Indicates that system should provide real position data if available. |
| `GVR_CONTROLLER_ENABLE_TOUCH` | Indicates that controller touchpad data should be reported. |

### Anonymous Enum 2

```
 Anonymous Enum 2
```

| Properties ||
|---|---|
| `GVR_AUDIO_INVALID_SOURCE_ID` | Invalid source id that can be used to initialize source id variables during construction. |
| `GVR_BUFFER_INDEX_EXTERNAL_SURFACE` | Special index for a source buffer that has the same contents as the external surface attached to the given viewport. Pass this to [gvr_buffer_viewport_set_source_buffer_index()](https://developers.google.com/vr/reference/ios-ndk/group/viewport#group__viewport_1ga60083cb1f45dd2302dfbf3c24921f2a0) to use the external surface as the buffer contents. |
| `GVR_EXTERNAL_SURFACE_ID_NONE` | Constant that represents a nonexistent external surface. Pass to [gvr_buffer_viewport_set_external_surface_id()](https://developers.google.com/vr/reference/ios-ndk/group/viewport#group__viewport_1ga0291753aff748fdc607988644fdadf63) to disable sampling from an external surface. |

### gvr_arm_model_behavior

```
 gvr_arm_model_behavior
```
Types of gaze behaviors used for arm model.

### gvr_audio_distance_rolloff_type

```
 gvr_audio_distance_rolloff_type
```
Distance rolloff models used for distance attenuation.

| Properties ||
|---|---|
| `GVR_AUDIO_ROLLOFF_LINEAR` | Linear distance rolloff model. |
| `GVR_AUDIO_ROLLOFF_LOGARITHMIC` | Logarithmic distance rolloff model. |
| `GVR_AUDIO_ROLLOFF_NONE` | No distance attenuation will be applied. |

### gvr_audio_material_type

```
 gvr_audio_material_type
```
Room surface material names, used to set room properties.

| Properties ||
|---|---|
| `GVR_AUDIO_MATERIAL_ACOUSTIC_CEILING_TILES` | Acoustic ceiling tiles, absorbs most frequencies. |
| `GVR_AUDIO_MATERIAL_BRICK_BARE` | Bare brick, relatively reflective. |
| `GVR_AUDIO_MATERIAL_BRICK_PAINTED` | Painted brick. |
| `GVR_AUDIO_MATERIAL_CONCRETE_BLOCK_COARSE` | Coarse surface concrete block. |
| `GVR_AUDIO_MATERIAL_CONCRETE_BLOCK_PAINTED` | Painted concrete block. |
| `GVR_AUDIO_MATERIAL_CURTAIN_HEAVY` | Heavy curtains. |
| `GVR_AUDIO_MATERIAL_FIBER_GLASS_INSULATION` | Fiber glass insulation. |
| `GVR_AUDIO_MATERIAL_GLASS_THICK` | Thick glass. |
| `GVR_AUDIO_MATERIAL_GLASS_THIN` | Thin glass. |
| `GVR_AUDIO_MATERIAL_GRASS` | Grass. |
| `GVR_AUDIO_MATERIAL_LINOLEUM_ON_CONCRETE` | Linoleum on concrete. |
| `GVR_AUDIO_MATERIAL_MARBLE` | Marble. |
| `GVR_AUDIO_MATERIAL_METAL` | Galvanized sheet metal. |
| `GVR_AUDIO_MATERIAL_PARQUET_ON_CONCRETE` | Wooden parquet on concrete. |
| `GVR_AUDIO_MATERIAL_PLASTER_ROUGH` | Rough plaster surface. |
| `GVR_AUDIO_MATERIAL_PLASTER_SMOOTH` | Smooth plaster surface. |
| `GVR_AUDIO_MATERIAL_PLYWOOD_PANEL` | Plywood panel. |
| `GVR_AUDIO_MATERIAL_POLISHED_CONCRETE_OR_TILE` | Polished concrete OR tile surface. |
| `GVR_AUDIO_MATERIAL_SHEET_ROCK` | Sheet rock. |
| `GVR_AUDIO_MATERIAL_TRANSPARENT` | Acoustically transparent material, reflects no sound. |
| `GVR_AUDIO_MATERIAL_WATER_OR_ICE_SURFACE` | Surface of water or ice. |
| `GVR_AUDIO_MATERIAL_WOOD_CEILING` | Wooden ceiling. |
| `GVR_AUDIO_MATERIAL_WOOD_PANEL` | Wood paneling. |

### gvr_audio_rendering_mode

```
 gvr_audio_rendering_mode
```
Rendering modes define CPU load / rendering quality balances.

| Properties ||
|---|---|
| `GVR_AUDIO_RENDERING_BINAURAL_HIGH_QUALITY` | HRTF-based rendering over a virtual array of 16 loudspeakers arranged in an approximate equidistribution about the around the listener's head. |
| `GVR_AUDIO_RENDERING_BINAURAL_LOW_QUALITY` | HRTF-based rendering over a virtual array of 8 loudspeakers arranged in a cube configuration around the listener's head. |
| `GVR_AUDIO_RENDERING_STEREO_PANNING` | Stereo panning of all Sound Objects. This disables HRTF-based rendering. |

### gvr_audio_surround_format_type

```
 gvr_audio_surround_format_type
```
Supported surround sound formats.

### gvr_color_format_type

```
 gvr_color_format_type
```
Valid color formats for swap chain buffers.

| Properties ||
|---|---|
| `GVR_COLOR_FORMAT_RGBA_8888` | Equivalent to GL_RGBA8. Pixel values are expected to be premultiplied with alpha. |
| `GVR_COLOR_FORMAT_RGB_565` | Equivalent to GL_RGB565. |

### gvr_controller_api_status

```
 gvr_controller_api_status
```
Constants that represent the status of the controller API.

| Properties ||
|---|---|
| `GVR_CONTROLLER_API_CLIENT_OBSOLETE` | The underlying VR service is too new, is incompatible with current client. |
| `GVR_CONTROLLER_API_MALFUNCTION` | The underlying VR service is malfunctioning. Try again later. |
| `GVR_CONTROLLER_API_NOT_AUTHORIZED` | This app was not authorized to use the service (e.g., missing permissions, the app is blacklisted by the underlying service, etc). |
| `GVR_CONTROLLER_API_OK` | API is happy and healthy. This doesn't mean the controller itself is connected, it just means that the underlying service is working properly. |
| `GVR_CONTROLLER_API_SERVICE_OBSOLETE` | The underlying VR service is too old, needs upgrade. |
| `GVR_CONTROLLER_API_UNAVAILABLE` | The underlying VR service is not present. |
| `GVR_CONTROLLER_API_UNSUPPORTED` | Any other status represents a permanent failure that requires external action to fix: API failed because this device does not support controllers (API is too low, or other required feature not present). |

### gvr_controller_battery_level

```
 gvr_controller_battery_level
```
Controller battery states.

| Properties ||
|---|---|
| `GVR_CONTROLLER_BATTERY_LEVEL_COUNT` | Note: there are 5 distinct levels, but there are 6 due to the inclusion of an UNKNOWN state before any battery information is collected, etc. |

### gvr_controller_button

```
 gvr_controller_button
```
Controller buttons.

| Properties ||
|---|---|
| `GVR_CONTROLLER_BUTTON_CLICK` | Touchpad Click. |
| `GVR_CONTROLLER_BUTTON_COUNT` | Note: there are 8 buttons on the controller, but the state arrays have this many elements due to the inclusion of a dummy "none" button. |

### gvr_controller_connection_state

```
 gvr_controller_connection_state
```
Constants that represent the state of the controller.

| Properties ||
|---|---|
| `GVR_CONTROLLER_CONNECTED` | Controller is connected. |
| `GVR_CONTROLLER_CONNECTING` | Controller is connecting. |
| `GVR_CONTROLLER_DISCONNECTED` | Controller is disconnected. |
| `GVR_CONTROLLER_SCANNING` | Controller is scanning. |

### gvr_controller_handedness

```
 gvr_controller_handedness
```

### gvr_depth_stencil_format_type

```
 gvr_depth_stencil_format_type
```

| Properties ||
|---|---|
| `GVR_DEPTH_STENCIL_FORMAT_DEPTH_16` | Equivalent to GL_DEPTH_COMPONENT16. |
| `GVR_DEPTH_STENCIL_FORMAT_DEPTH_24` | Equivalent to GL_DEPTH_COMPONENT24. |
| `GVR_DEPTH_STENCIL_FORMAT_DEPTH_24_STENCIL_8` | Equivlaent to GL_DEPTH24_STENCIL8. |
| `GVR_DEPTH_STENCIL_FORMAT_DEPTH_32_F` | Equivalent to GL_DEPTH_COMPONENT32F. |
| `GVR_DEPTH_STENCIL_FORMAT_DEPTH_32_F_STENCIL_8` | Equivalent to GL_DEPTH_32F_STENCIL8. |
| `GVR_DEPTH_STENCIL_FORMAT_NONE` | No depth or stencil buffer. |
| `GVR_DEPTH_STENCIL_FORMAT_STENCIL_8` | Equivalent to GL_STENCIL8. |

### gvr_error

```
 gvr_error
```
Constants that represent GVR error codes.

| Properties ||
|---|---|
| `GVR_ERROR_NO_EVENT_AVAILABLE` | Error code indicating that no events are currently available. See also [gvr_poll_event()](https://developers.google.com/vr/reference/ios-ndk/group/base#group__base_1ga646c351335c25b694eb3a3981734a882) |
| `GVR_ERROR_NO_PROPERTY_AVAILABLE` | Error code indicating that the given property is not available. See also [gvr_properties_get()](https://developers.google.com/vr/reference/ios-ndk/group/base#group__base_1gac0b0e3b9f9c47123cd8e41990315b3e1). |

### gvr_event_type

```
 gvr_event_type
```
The type of [gvr_event](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-event#structgvr__event).

| Properties ||
|---|---|
| `GVR_EVENT_HEAD_TRACKING_PAUSED` | Notification that head tracking was paused. Event data type: none |
| `GVR_EVENT_HEAD_TRACKING_RESUMED` | Notification that head tracking was resumed (or started for the first time). Before this event is sent, head tracking will always return the identity pose. This event is usually preceded in the same frame by a GVR_EVENT_RECENTER of recenter_type GVR_RECENTER_EVENT_RESTART. Event data type: none |
| `GVR_EVENT_RECENTER` | Notification that head tracking has been recentered. (Note that controller recentering is signaled separately through gvr_controller_state_get_recentered().) Event data type: [gvr_recenter_event_data](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-recenter-event-data#structgvr__recenter__event__data) |
| `GVR_EVENT_SAFETY_REGION_ENTER` | Notification that the user has re-entered the safety region, as defined by the gvr_safety_region_type. Event data type: none |
| `GVR_EVENT_SAFETY_REGION_EXIT` | Notification that the user has exited the safety region, as defined by the gvr_safety_region_type. Event data type: none |

### gvr_eye

```
 gvr_eye
```
An enum for the left and right eye.

### gvr_feature

```
 gvr_feature
```
Types of VR-specific features which may or may not be supported on the underlying platform.

| Properties ||
|---|---|
| `GVR_FEATURE_ASYNC_REPROJECTION` | Asynchronous reprojection warps the app's rendered frame using the most recent head pose just before pushing the frame to the display. |
| `GVR_FEATURE_EXTERNAL_SURFACE` | Support for external surface creation and compositing. Note that this feature may be supported only under certain configurations, e.g., when async reprojection is explicitly enabled. |
| `GVR_FEATURE_HARDWARE_BUFFERS` | Indicates that buffers which are part of a frame are backed by Android AHardwareBuffer objects. When this feature is available, the function gvr_frame_get_hardware_buffer can be called to get the AHardwareBuffer pointer. Hardware buffers are only supported on Android O and later, on a best-effort basis. Future versions of GVR and/or Android may also cease to support hardware buffers if the underlying implementation no longer supports this rendering path. |
| `GVR_FEATURE_HEAD_POSE_6DOF` | Support for providing head poses with 6 degrees-of-freedom (orientation and position). |
| `GVR_FEATURE_MULTIVIEW` | Support for framebuffers suitable for rendering with the GL_OVR_multiview2 and GL_OVR_multiview_multisampled_render_to_texture extensions. |

### gvr_property_type

```
 gvr_property_type
```
Property types exposed by the [gvr_properties_get()](https://developers.google.com/vr/reference/ios-ndk/group/base#group__base_1gac0b0e3b9f9c47123cd8e41990315b3e1) API.

| Properties ||
|---|---|
| `GVR_PROPERTY_RECENTER_TRANSFORM` | The current transform that maps from headset's "sensor" space to the recentered "start" space. Apps can optionally undo or extend this transform to perform custom recentering logic with the SDK-provided poses, but the SDK assumes poses supplied during frame submission are in start space. This transform matches the one reported in the most recent [gvr_recenter_event_data](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-recenter-event-data#structgvr__recenter__event__data). Type: [gvr_mat4f](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-mat4f#structgvr__mat4f) |
| `GVR_PROPERTY_SAFETY_CYLINDER_ENTER_RADIUS` | Distance from safety cylinder axis at which the user's state transitions from outside to inside, generating a GVR_EVENT_SAFETY_REGION_ENTER event. This value is guaranteed to be less than GVR_PROPERTY_SAFETY_CYLINDER_EXIT_RADIUS. Type: float |
| `GVR_PROPERTY_SAFETY_CYLINDER_EXIT_RADIUS` | Distance from safety cylinder axis at which the user's state transitions from inside to outside, generating a GVR_EVENT_SAFETY_REGION_EXIT event. This value is guaranteed to be greater than GVR_PROPERTY_SAFETY_CYLINDER_ENTER_RADIUS. Type: float |
| `GVR_PROPERTY_SAFETY_REGION` | The type of safety region, if any, currently employed by the headset's tracker. Type: int (gvr_safety_region_type) |
| `GVR_PROPERTY_TRACKING_FLOOR_HEIGHT` | The height of the floor, if available, relative to the current start space origin. In general, for tracking systems with an eye level origin, this value will be negative. Type: float |
| `GVR_PROPERTY_TRACKING_STATUS` | The current status of the head tracker, if available. Type: gvr_flags |

### gvr_recenter_event_type

```
 gvr_recenter_event_type
```
The type of a recentering associated with a GVR_EVENT_RECENTER event.

| Properties ||
|---|---|
| `GVR_RECENTER_EVENT_ALIGNED` | A recenter event triggered by the controller (e.g. long-press on Home button or connecting controller as part of donning UX). |
| `GVR_RECENTER_EVENT_DON` | A recenter event triggered by proximity sensor detecting the user has put put the headset on (a.k.a. donned the headset). |
| `GVR_RECENTER_EVENT_RESTART` | Recentering state received from the platform upon starting or resuming the application. This event is usually precedes a GVR_EVENT_HEAD_TRACKING_RESUMED event in the same frame. |

### gvr_reprojection

```
 gvr_reprojection
```
Types of asynchronous reprojection.

| Properties ||
|---|---|
| `GVR_REPROJECTION_FULL` | Reproject in all dimensions. |
| `GVR_REPROJECTION_NONE` | Do not reproject. |

### gvr_safety_region_type

```
 gvr_safety_region_type
```
Safety region types exposed from the GVR_PROPERTY_SAFETY_REGION property.

| Properties ||
|---|---|
| `GVR_SAFETY_REGION_CYLINDER` | A safety region defined by a vertically-oriented cylinder, extending infinitely along the Y axis, and centered at the start space origin. Extents can be queried with the GVR_PROPERTY_SAFETY_CYLINDER_INNER_RADIUS and GVR_PROPERTY_SAFETY_CYLINDER_OUTER_RADIUS property keys. |

### gvr_value_type

```
 gvr_value_type
```
Value types for the contents of a [gvr_value](https://developers.google.com/vr/reference/ios-ndk/struct/gvr-value#structgvr__value) object instance.

### gvr_viewer_type

```
 gvr_viewer_type
```
The type of VR viewer.

| Properties ||
|---|---|
| `GVR_VIEWER_TYPE_CARDBOARD` | A Cardboard-compatible viewer. A typical Cardboard viewer supports a simple touchscreen-based trigger input mechanism. On most platforms, this is the default viewer type if no viewer has been explicitly paired. |
| `GVR_VIEWER_TYPE_DAYDREAM` | A Daydream-compatible viewer. A typical Daydream viewer supports 3DOF controller input (as defined in gvr_controller.h), and is intended only for Daydream-ready platforms. It does *not* support touchscreen-based input unless Cardboard emulation is explicitly enabled. |

## Typedefs

### gvr_audio_source_id

```
int32_t gvr_audio_source_id
```
Sound object and sound field identifier.

### gvr_context

```
struct gvr_context_ gvr_context
```
Primary context for invoking Google VR APIs.

### gvr_user_prefs

```
struct gvr_user_prefs_ gvr_user_prefs
```