/* automatically generated by rust-bindgen */

pub type uintptr_t = ::std::os::raw::c_ulonglong;
pub type va_list = *mut ::std::os::raw::c_char;
pub type size_t = ::std::os::raw::c_ulonglong;
pub type ptrdiff_t = ::std::os::raw::c_longlong;
pub type intptr_t = ::std::os::raw::c_longlong;
pub type wchar_t = ::std::os::raw::c_ushort;
pub type int8_t = ::std::os::raw::c_char;
pub type int16_t = ::std::os::raw::c_short;
pub type int32_t = ::std::os::raw::c_int;
pub type int64_t = ::std::os::raw::c_longlong;
pub type uint8_t = ::std::os::raw::c_uchar;
pub type uint16_t = ::std::os::raw::c_ushort;
pub type uint32_t = ::std::os::raw::c_uint;
pub type uint64_t = ::std::os::raw::c_ulonglong;
pub type int_least8_t = ::std::os::raw::c_char;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_longlong;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulonglong;
pub type int_fast8_t = ::std::os::raw::c_char;
pub type int_fast16_t = ::std::os::raw::c_int;
pub type int_fast32_t = ::std::os::raw::c_int;
pub type int_fast64_t = ::std::os::raw::c_longlong;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_uint;
pub type uint_fast32_t = ::std::os::raw::c_uint;
pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
pub type intmax_t = ::std::os::raw::c_longlong;
pub type uintmax_t = ::std::os::raw::c_ulonglong;
pub type ovrResult = int32_t;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrSuccessType_ {
    ovrSuccess = 0,
    ovrSuccess_NotVisible = 1000,
    ovrSuccess_HMDFirmwareMismatch = 4100,
    ovrSuccess_TrackerFirmwareMismatch = 4101,
    ovrSuccess_ControllerFirmwareMismatch = 4104,
    ovrSuccess_TrackerDriverNotFound = 4105,
}
pub type ovrSuccessType = Enum_ovrSuccessType_;
#[derive(Clone, Copy, Debug)]
#[repr(i32)]
pub enum Enum_ovrErrorType_ {
    ovrError_MemoryAllocationFailure = -1000,
    ovrError_SocketCreationFailure = -1001,
    ovrError_InvalidSession = -1002,
    ovrError_Timeout = -1003,
    ovrError_NotInitialized = -1004,
    ovrError_InvalidParameter = -1005,
    ovrError_ServiceError = -1006,
    ovrError_NoHmd = -1007,
    ovrError_Unsupported = -1009,
    ovrError_DeviceUnavailable = -1010,
    ovrError_InvalidHeadsetOrientation = -1011,
    ovrError_ClientSkippedDestroy = -1012,
    ovrError_ClientSkippedShutdown = -1013,
    ovrError_AudioReservedBegin = -2000,
    ovrError_AudioDeviceNotFound = -2001,
    ovrError_AudioComError = -2002,
    ovrError_AudioReservedEnd = -2999,
    ovrError_Initialize = -3000,
    ovrError_LibLoad = -3001,
    ovrError_LibVersion = -3002,
    ovrError_ServiceConnection = -3003,
    ovrError_ServiceVersion = -3004,
    ovrError_IncompatibleOS = -3005,
    ovrError_DisplayInit = -3006,
    ovrError_ServerStart = -3007,
    ovrError_Reinitialization = -3008,
    ovrError_MismatchedAdapters = -3009,
    ovrError_LeakingResources = -3010,
    ovrError_ClientVersion = -3011,
    ovrError_OutOfDateOS = -3012,
    ovrError_OutOfDateGfxDriver = -3013,
    ovrError_IncompatibleGPU = -3014,
    ovrError_NoValidVRDisplaySystem = -3015,
    ovrError_Obsolete = -3016,
    ovrError_DisabledOrDefaultAdapter = -3017,
    ovrError_HybridGraphicsNotSupported = -3018,
    ovrError_DisplayManagerInit = -3019,
    ovrError_TrackerDriverInit = -3020,
    ovrError_InvalidBundleAdjustment = -4000,
    ovrError_USBBandwidth = -4001,
    ovrError_USBEnumeratedSpeed = -4002,
    ovrError_ImageSensorCommError = -4003,
    ovrError_GeneralTrackerFailure = -4004,
    ovrError_ExcessiveFrameTruncation = -4005,
    ovrError_ExcessiveFrameSkipping = -4006,
    ovrError_SyncDisconnected = -4007,
    ovrError_TrackerMemoryReadFailure = -4008,
    ovrError_TrackerMemoryWriteFailure = -4009,
    ovrError_TrackerFrameTimeout = -4010,
    ovrError_TrackerTruncatedFrame = -4011,
    ovrError_TrackerDriverFailure = -4012,
    ovrError_TrackerNRFFailure = -4013,
    ovrError_HardwareGone = -4014,
    ovrError_NordicEnabledNoSync = -4015,
    ovrError_NordicSyncNoFrames = -4016,
    ovrError_CatastrophicFailure = -4017,
    ovrError_HMDFirmwareMismatch = -4100,
    ovrError_TrackerFirmwareMismatch = -4101,
    ovrError_BootloaderDeviceDetected = -4102,
    ovrError_TrackerCalibrationError = -4103,
    ovrError_ControllerFirmwareMismatch = -4104,
    ovrError_IMUTooManyLostSamples = -4200,
    ovrError_IMURateError = -4201,
    ovrError_FeatureReportFailure = -4202,
    ovrError_Incomplete = -5000,
    ovrError_Abandoned = -5001,
    ovrError_DisplayLost = -6000,
    ovrError_TextureSwapChainFull = -6001,
    ovrError_TextureSwapChainInvalid = -6002,
    ovrError_RuntimeException = -7000,
    ovrError_MetricsUnknownApp = -90000,
    ovrError_MetricsDuplicateApp = -90001,
    ovrError_MetricsNoEvents = -90002,
    ovrError_MetricsRuntime = -90003,
    ovrError_MetricsFile = -90004,
    ovrError_MetricsNoClientInfo = -90005,
    ovrError_MetricsNoAppMetaData = -90006,
    ovrError_MetricsNoApp = -90007,
    ovrError_MetricsOafFailure = -90008,
    ovrError_MetricsSessionAlreadyActive = -90009,
    ovrError_MetricsSessionNotActive = -90010,
}
pub type ovrErrorType = Enum_ovrErrorType_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrErrorInfo_ {
    pub Result: ovrResult,
    pub ErrorString: [::std::os::raw::c_char; 512usize],
}
impl ::std::clone::Clone for Struct_ovrErrorInfo_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrErrorInfo_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrErrorInfo = Struct_ovrErrorInfo_;
pub type ovrBool = ::std::os::raw::c_char;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrVector2i_ {
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
}
impl ::std::clone::Clone for Struct_ovrVector2i_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrVector2i_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrVector2i = Struct_ovrVector2i_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrSizei_ {
    pub w: ::std::os::raw::c_int,
    pub h: ::std::os::raw::c_int,
}
impl ::std::clone::Clone for Struct_ovrSizei_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrSizei_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrSizei = Struct_ovrSizei_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrRecti_ {
    pub Pos: ovrVector2i,
    pub Size: ovrSizei,
}
impl ::std::clone::Clone for Struct_ovrRecti_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrRecti_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrRecti = Struct_ovrRecti_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrQuatf_ {
    pub x: ::std::os::raw::c_float,
    pub y: ::std::os::raw::c_float,
    pub z: ::std::os::raw::c_float,
    pub w: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrQuatf_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrQuatf_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrQuatf = Struct_ovrQuatf_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrVector2f_ {
    pub x: ::std::os::raw::c_float,
    pub y: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrVector2f_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrVector2f_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrVector2f = Struct_ovrVector2f_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrVector3f_ {
    pub x: ::std::os::raw::c_float,
    pub y: ::std::os::raw::c_float,
    pub z: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrVector3f_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrVector3f_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrVector3f = Struct_ovrVector3f_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrMatrix4f_ {
    pub M: [[::std::os::raw::c_float; 4usize]; 4usize],
}
impl ::std::clone::Clone for Struct_ovrMatrix4f_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrMatrix4f_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrMatrix4f = Struct_ovrMatrix4f_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrPosef_ {
    pub Orientation: ovrQuatf,
    pub Position: ovrVector3f,
}
impl ::std::clone::Clone for Struct_ovrPosef_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrPosef_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrPosef = Struct_ovrPosef_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrPoseStatef_ {
    pub ThePose: ovrPosef,
    pub AngularVelocity: ovrVector3f,
    pub LinearVelocity: ovrVector3f,
    pub AngularAcceleration: ovrVector3f,
    pub LinearAcceleration: ovrVector3f,
    pub pad0: [::std::os::raw::c_char; 4usize],
    pub TimeInSeconds: ::std::os::raw::c_double,
}
impl ::std::clone::Clone for Struct_ovrPoseStatef_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrPoseStatef_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrPoseStatef = Struct_ovrPoseStatef_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrFovPort_ {
    pub UpTan: ::std::os::raw::c_float,
    pub DownTan: ::std::os::raw::c_float,
    pub LeftTan: ::std::os::raw::c_float,
    pub RightTan: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrFovPort_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrFovPort_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrFovPort = Struct_ovrFovPort_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrHmdType_ {
    ovrHmd_None = 0,
    ovrHmd_DK1 = 3,
    ovrHmd_DKHD = 4,
    ovrHmd_DK2 = 6,
    ovrHmd_CB = 8,
    ovrHmd_Other = 9,
    ovrHmd_E3_2015 = 10,
    ovrHmd_ES06 = 11,
    ovrHmd_ES09 = 12,
    ovrHmd_ES11 = 13,
    ovrHmd_CV1 = 14,
    ovrHmd_EnumSize = 2147483647,
}
pub type ovrHmdType = Enum_ovrHmdType_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrHmdCaps_ {
    ovrHmdCap_DebugDevice = 16,
    ovrHmdCap_EnumSize = 2147483647,
}
pub type ovrHmdCaps = Enum_ovrHmdCaps_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTrackingCaps_ {
    ovrTrackingCap_Orientation = 16,
    ovrTrackingCap_MagYawCorrection = 32,
    ovrTrackingCap_Position = 64,
    ovrTrackingCap_EnumSize = 2147483647,
}
pub type ovrTrackingCaps = Enum_ovrTrackingCaps_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrEyeType_ {
    ovrEye_Left = 0,
    ovrEye_Right = 1,
    ovrEye_Count = 2,
    ovrEye_EnumSize = 2147483647,
}
pub type ovrEyeType = Enum_ovrEyeType_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTrackingOrigin_ {
    ovrTrackingOrigin_EyeLevel = 0,
    ovrTrackingOrigin_FloorLevel = 1,
    ovrTrackingOrigin_Count = 2,
    ovrTrackingOrigin_EnumSize = 2147483647,
}
pub type ovrTrackingOrigin = Enum_ovrTrackingOrigin_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrGraphicsLuid_ {
    pub Reserved: [::std::os::raw::c_char; 8usize],
}
impl ::std::clone::Clone for Struct_ovrGraphicsLuid_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrGraphicsLuid_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrGraphicsLuid = Struct_ovrGraphicsLuid_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrHmdDesc_ {
    pub Type: ovrHmdType,
    pub pad0: [::std::os::raw::c_char; 4usize],
    pub ProductName: [::std::os::raw::c_char; 64usize],
    pub Manufacturer: [::std::os::raw::c_char; 64usize],
    pub VendorId: ::std::os::raw::c_short,
    pub ProductId: ::std::os::raw::c_short,
    pub SerialNumber: [::std::os::raw::c_char; 24usize],
    pub FirmwareMajor: ::std::os::raw::c_short,
    pub FirmwareMinor: ::std::os::raw::c_short,
    pub AvailableHmdCaps: ::std::os::raw::c_uint,
    pub DefaultHmdCaps: ::std::os::raw::c_uint,
    pub AvailableTrackingCaps: ::std::os::raw::c_uint,
    pub DefaultTrackingCaps: ::std::os::raw::c_uint,
    pub DefaultEyeFov: [ovrFovPort; 2usize],
    pub MaxEyeFov: [ovrFovPort; 2usize],
    pub Resolution: ovrSizei,
    pub DisplayRefreshRate: ::std::os::raw::c_float,
    pub pad1: [::std::os::raw::c_char; 4usize],
}
impl ::std::clone::Clone for Struct_ovrHmdDesc_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrHmdDesc_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrHmdDesc = Struct_ovrHmdDesc_;
pub enum Struct_ovrHmdStruct { }
pub type ovrSession = *mut Struct_ovrHmdStruct;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrStatusBits_ {
    ovrStatus_OrientationTracked = 1,
    ovrStatus_PositionTracked = 2,
    ovrStatus_EnumSize = 2147483647,
}
pub type ovrStatusBits = Enum_ovrStatusBits_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrTrackerDesc_ {
    pub FrustumHFovInRadians: ::std::os::raw::c_float,
    pub FrustumVFovInRadians: ::std::os::raw::c_float,
    pub FrustumNearZInMeters: ::std::os::raw::c_float,
    pub FrustumFarZInMeters: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrTrackerDesc_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrTrackerDesc_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrTrackerDesc = Struct_ovrTrackerDesc_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTrackerFlags_ {
    ovrTracker_Connected = 32,
    ovrTracker_PoseTracked = 4,
}
pub type ovrTrackerFlags = Enum_ovrTrackerFlags_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__ovrTrackerPose {
    pub TrackerFlags: ::std::os::raw::c_uint,
    pub Pose: ovrPosef,
    pub LeveledPose: ovrPosef,
    pub pad0: [::std::os::raw::c_char; 4usize],
}
impl ::std::clone::Clone for Struct__ovrTrackerPose {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct__ovrTrackerPose {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrTrackerPose = Struct__ovrTrackerPose;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrTrackingState_ {
    pub HeadPose: ovrPoseStatef,
    pub StatusFlags: ::std::os::raw::c_uint,
    pub HandPoses: [ovrPoseStatef; 2usize],
    pub HandStatusFlags: [::std::os::raw::c_uint; 2usize],
    pub CalibratedOrigin: ovrPosef,
}
impl ::std::clone::Clone for Struct_ovrTrackingState_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrTrackingState_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrTrackingState = Struct_ovrTrackingState_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrEyeRenderDesc_ {
    pub Eye: ovrEyeType,
    pub Fov: ovrFovPort,
    pub DistortedViewport: ovrRecti,
    pub PixelsPerTanAngleAtCenter: ovrVector2f,
    pub HmdToEyeOffset: ovrVector3f,
}
impl ::std::clone::Clone for Struct_ovrEyeRenderDesc_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrEyeRenderDesc_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrEyeRenderDesc = Struct_ovrEyeRenderDesc_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrTimewarpProjectionDesc_ {
    pub Projection22: ::std::os::raw::c_float,
    pub Projection23: ::std::os::raw::c_float,
    pub Projection32: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrTimewarpProjectionDesc_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrTimewarpProjectionDesc_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrTimewarpProjectionDesc = Struct_ovrTimewarpProjectionDesc_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrViewScaleDesc_ {
    pub HmdToEyeOffset: [ovrVector3f; 2usize],
    pub HmdSpaceToWorldScaleInMeters: ::std::os::raw::c_float,
}
impl ::std::clone::Clone for Struct_ovrViewScaleDesc_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrViewScaleDesc_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrViewScaleDesc = Struct_ovrViewScaleDesc_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTextureType_ {
    ovrTexture_2D = 0,
    ovrTexture_2D_External = 1,
    ovrTexture_Cube = 2,
    ovrTexture_Count = 3,
    ovrTexture_EnumSize = 2147483647,
}
pub type ovrTextureType = Enum_ovrTextureType_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTextureBindFlags_ {
    ovrTextureBind_None = 0,
    ovrTextureBind_DX_RenderTarget = 1,
    ovrTextureBind_DX_UnorderedAccess = 2,
    ovrTextureBind_DX_DepthStencil = 4,
    ovrTextureBind_EnumSize = 2147483647,
}
pub type ovrTextureBindFlags = Enum_ovrTextureBindFlags_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTextureFormat_ {
    OVR_FORMAT_UNKNOWN = 0,
    OVR_FORMAT_B5G6R5_UNORM = 1,
    OVR_FORMAT_B5G5R5A1_UNORM = 2,
    OVR_FORMAT_B4G4R4A4_UNORM = 3,
    OVR_FORMAT_R8G8B8A8_UNORM = 4,
    OVR_FORMAT_R8G8B8A8_UNORM_SRGB = 5,
    OVR_FORMAT_B8G8R8A8_UNORM = 6,
    OVR_FORMAT_B8G8R8A8_UNORM_SRGB = 7,
    OVR_FORMAT_B8G8R8X8_UNORM = 8,
    OVR_FORMAT_B8G8R8X8_UNORM_SRGB = 9,
    OVR_FORMAT_R16G16B16A16_FLOAT = 10,
    OVR_FORMAT_D16_UNORM = 11,
    OVR_FORMAT_D24_UNORM_S8_UINT = 12,
    OVR_FORMAT_D32_FLOAT = 13,
    OVR_FORMAT_D32_FLOAT_S8X24_UINT = 14,
    OVR_FORMAT_ENUMSIZE = 2147483647,
}
pub type ovrTextureFormat = Enum_ovrTextureFormat_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTextureMiscFlags_ {
    ovrTextureMisc_None = 0,
    ovrTextureMisc_DX_Typeless = 1,
    ovrTextureMisc_AllowGenerateMips = 2,
    ovrTextureMisc_EnumSize = 2147483647,
}
pub type ovrTextureFlags = Enum_ovrTextureMiscFlags_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed1 {
    pub Type: ovrTextureType,
    pub Format: ovrTextureFormat,
    pub ArraySize: ::std::os::raw::c_int,
    pub Width: ::std::os::raw::c_int,
    pub Height: ::std::os::raw::c_int,
    pub MipLevels: ::std::os::raw::c_int,
    pub SampleCount: ::std::os::raw::c_int,
    pub StaticImage: ovrBool,
    pub MiscFlags: ::std::os::raw::c_uint,
    pub BindFlags: ::std::os::raw::c_uint,
}
impl ::std::clone::Clone for Struct_Unnamed1 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed1 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrTextureSwapChainDesc = Struct_Unnamed1;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed2 {
    pub Format: ovrTextureFormat,
    pub Width: ::std::os::raw::c_int,
    pub Height: ::std::os::raw::c_int,
    pub MiscFlags: ::std::os::raw::c_uint,
}
impl ::std::clone::Clone for Struct_Unnamed2 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed2 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrMirrorTextureDesc = Struct_Unnamed2;
pub enum Struct_ovrTextureSwapChainData { }
pub type ovrTextureSwapChain = *mut Struct_ovrTextureSwapChainData;
pub enum Struct_ovrMirrorTextureData { }
pub type ovrMirrorTexture = *mut Struct_ovrMirrorTextureData;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrButton_ {
    ovrButton_A = 1,
    ovrButton_B = 2,
    ovrButton_RThumb = 4,
    ovrButton_RShoulder = 8,
    ovrButton_RMask = 15,
    ovrButton_X = 256,
    ovrButton_Y = 512,
    ovrButton_LThumb = 1024,
    ovrButton_LShoulder = 2048,
    ovrButton_LMask = 3840,
    ovrButton_Up = 65536,
    ovrButton_Down = 131072,
    ovrButton_Left = 262144,
    ovrButton_Right = 524288,
    ovrButton_Enter = 1048576,
    ovrButton_Back = 2097152,
    ovrButton_VolUp = 4194304,
    ovrButton_VolDown = 8388608,
    ovrButton_Home = 16777216,
    ovrButton_Private = 29360128,
    ovrButton_EnumSize = 2147483647,
}
pub type ovrButton = Enum_ovrButton_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrTouch_ {
    ovrTouch_A = 1,
    ovrTouch_B = 2,
    ovrTouch_RThumb = 4,
    ovrTouch_RIndexTrigger = 16,
    ovrTouch_RButtonMask = 23,
    ovrTouch_X = 256,
    ovrTouch_Y = 512,
    ovrTouch_LThumb = 1024,
    ovrTouch_LIndexTrigger = 4096,
    ovrTouch_LButtonMask = 5888,
    ovrTouch_RIndexPointing = 32,
    ovrTouch_RThumbUp = 64,
    ovrTouch_RPoseMask = 96,
    ovrTouch_LIndexPointing = 8192,
    ovrTouch_LThumbUp = 16384,
    ovrTouch_LPoseMask = 24576,
    ovrTouch_EnumSize = 2147483647,
}
pub type ovrTouch = Enum_ovrTouch_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrControllerType_ {
    ovrControllerType_None = 0,
    ovrControllerType_LTouch = 1,
    ovrControllerType_RTouch = 2,
    ovrControllerType_Touch = 3,
    ovrControllerType_Remote = 4,
    ovrControllerType_XBox = 16,
    ovrControllerType_Active = 255,
    ovrControllerType_EnumSize = 2147483647,
}
pub type ovrControllerType = Enum_ovrControllerType_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrHandType_ {
    ovrHand_Left = 0,
    ovrHand_Right = 1,
    ovrHand_Count = 2,
    ovrHand_EnumSize = 2147483647,
}
pub type ovrHandType = Enum_ovrHandType_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrInputState_ {
    pub TimeInSeconds: ::std::os::raw::c_double,
    pub Buttons: ::std::os::raw::c_uint,
    pub Touches: ::std::os::raw::c_uint,
    pub IndexTrigger: [::std::os::raw::c_float; 2usize],
    pub HandTrigger: [::std::os::raw::c_float; 2usize],
    pub Thumbstick: [ovrVector2f; 2usize],
    pub ControllerType: ovrControllerType,
}
impl ::std::clone::Clone for Struct_ovrInputState_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrInputState_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrInputState = Struct_ovrInputState_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrInitFlags_ {
    ovrInit_Debug = 1,
    ovrInit_RequestVersion = 4,
    ovrinit_WritableBits = 16777215,
    ovrInit_EnumSize = 2147483647,
}
pub type ovrInitFlags = Enum_ovrInitFlags_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrLogLevel_ {
    ovrLogLevel_Debug = 0,
    ovrLogLevel_Info = 1,
    ovrLogLevel_Error = 2,
    ovrLogLevel_EnumSize = 2147483647,
}
pub type ovrLogLevel = Enum_ovrLogLevel_;
pub type ovrLogCallback =
    ::std::option::Option<unsafe extern "C" fn(userData: uintptr_t,
                                               level: ::std::os::raw::c_int,
                                               message:
                                                   *const ::std::os::raw::c_char)>;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrInitParams_ {
    pub Flags: uint32_t,
    pub RequestedMinorVersion: uint32_t,
    pub LogCallback: ovrLogCallback,
    pub UserData: uintptr_t,
    pub ConnectionTimeoutMS: uint32_t,
    pub pad0: [::std::os::raw::c_char; 4usize],
}
impl ::std::clone::Clone for Struct_ovrInitParams_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrInitParams_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrInitParams = Struct_ovrInitParams_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrSessionStatus_ {
    pub IsVisible: ovrBool,
    pub HmdPresent: ovrBool,
    pub HmdMounted: ovrBool,
    pub DisplayLost: ovrBool,
    pub ShouldQuit: ovrBool,
    pub ShouldRecenter: ovrBool,
}
impl ::std::clone::Clone for Struct_ovrSessionStatus_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrSessionStatus_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrSessionStatus = Struct_ovrSessionStatus_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_Unnamed3 { ovrMaxLayerCount = 16, }
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrLayerType_ {
    ovrLayerType_Disabled = 0,
    ovrLayerType_EyeFov = 1,
    ovrLayerType_Quad = 3,
    ovrLayerType_EyeMatrix = 5,
    ovrLayerType_EnumSize = 2147483647,
}
pub type ovrLayerType = Enum_ovrLayerType_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrLayerFlags_ {
    ovrLayerFlag_HighQuality = 1,
    ovrLayerFlag_TextureOriginAtBottomLeft = 2,
    ovrLayerFlag_HeadLocked = 4,
}
pub type ovrLayerFlags = Enum_ovrLayerFlags_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrLayerHeader_ {
    pub Type: ovrLayerType,
    pub Flags: ::std::os::raw::c_uint,
}
impl ::std::clone::Clone for Struct_ovrLayerHeader_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrLayerHeader_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrLayerHeader = Struct_ovrLayerHeader_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrLayerEyeFov_ {
    pub Header: ovrLayerHeader,
    pub ColorTexture: [ovrTextureSwapChain; 2usize],
    pub Viewport: [ovrRecti; 2usize],
    pub Fov: [ovrFovPort; 2usize],
    pub RenderPose: [ovrPosef; 2usize],
    pub SensorSampleTime: ::std::os::raw::c_double,
}
impl ::std::clone::Clone for Struct_ovrLayerEyeFov_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrLayerEyeFov_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrLayerEyeFov = Struct_ovrLayerEyeFov_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrLayerEyeMatrix_ {
    pub Header: ovrLayerHeader,
    pub ColorTexture: [ovrTextureSwapChain; 2usize],
    pub Viewport: [ovrRecti; 2usize],
    pub RenderPose: [ovrPosef; 2usize],
    pub Matrix: [ovrMatrix4f; 2usize],
    pub SensorSampleTime: ::std::os::raw::c_double,
}
impl ::std::clone::Clone for Struct_ovrLayerEyeMatrix_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrLayerEyeMatrix_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrLayerEyeMatrix = Struct_ovrLayerEyeMatrix_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrLayerQuad_ {
    pub Header: ovrLayerHeader,
    pub ColorTexture: ovrTextureSwapChain,
    pub Viewport: ovrRecti,
    pub QuadPoseCenter: ovrPosef,
    pub QuadSize: ovrVector2f,
}
impl ::std::clone::Clone for Struct_ovrLayerQuad_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrLayerQuad_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrLayerQuad = Struct_ovrLayerQuad_;
#[repr(C)]
#[derive(Copy)]
pub struct Union_ovrLayer_Union_ {
    pub _bindgen_data_: [u64; 19usize],
}
impl Union_ovrLayer_Union_ {
    pub unsafe fn Header(&mut self) -> *mut ovrLayerHeader {
        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
        ::std::mem::transmute(raw.offset(0))
    }
    pub unsafe fn EyeFov(&mut self) -> *mut ovrLayerEyeFov {
        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
        ::std::mem::transmute(raw.offset(0))
    }
    pub unsafe fn Quad(&mut self) -> *mut ovrLayerQuad {
        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
        ::std::mem::transmute(raw.offset(0))
    }
}
impl ::std::clone::Clone for Union_ovrLayer_Union_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Union_ovrLayer_Union_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrLayer_Union = Union_ovrLayer_Union_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrPerfHudMode_ {
    ovrPerfHud_Off = 0,
    ovrPerfHud_PerfSummary = 1,
    ovrPerfHud_LatencyTiming = 2,
    ovrPerfHud_AppRenderTiming = 3,
    ovrPerfHud_CompRenderTiming = 4,
    ovrPerfHud_VersionInfo = 5,
    ovrPerfHud_Count = 6,
    ovrPerfHud_EnumSize = 2147483647,
}
pub type ovrPerfHudMode = Enum_ovrPerfHudMode_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrLayerHudMode_ {
    ovrLayerHud_Off = 0,
    ovrLayerHud_Info = 1,
    ovrLayerHud_EnumSize = 2147483647,
}
pub type ovrLayerHudMode = Enum_ovrLayerHudMode_;
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrDebugHudStereoMode_ {
    ovrDebugHudStereo_Off = 0,
    ovrDebugHudStereo_Quad = 1,
    ovrDebugHudStereo_QuadWithCrosshair = 2,
    ovrDebugHudStereo_CrosshairAtInfinity = 3,
    ovrDebugHudStereo_Count = 4,
    ovrDebugHudStereo_EnumSize = 2147483647,
}
pub type ovrDebugHudStereoMode = Enum_ovrDebugHudStereoMode_;
pub type compileTimeAssert0 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert1 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert2 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert3 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert4 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert5 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert6 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert7 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert8 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert9 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert10 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert11 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert12 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert13 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert14 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert15 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert16 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert17 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert18 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert19 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert20 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert21 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert22 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert23 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert24 = [::std::os::raw::c_char; 1usize];
pub type compileTimeAssert25 = [::std::os::raw::c_char; 1usize];
#[derive(Clone, Copy)]
#[repr(i32)]
pub enum Enum_ovrProjectionModifier_ {
    ovrProjection_None = 0,
    ovrProjection_LeftHanded = 1,
    ovrProjection_FarLessThanNear = 2,
    ovrProjection_FarClipAtInfinity = 4,
    ovrProjection_ClipRangeOpenGL = 8,
}
pub type ovrProjectionModifier = Enum_ovrProjectionModifier_;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_ovrDetectResult_ {
    pub IsOculusServiceRunning: ovrBool,
    pub IsOculusHMDConnected: ovrBool,
    pub pad0: [::std::os::raw::c_char; 6usize],
}
impl ::std::clone::Clone for Struct_ovrDetectResult_ {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_ovrDetectResult_ {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type ovrDetectResult = Struct_ovrDetectResult_;
pub type compileTimeAssert26 = [::std::os::raw::c_char; 1usize];
extern "C" {
    pub static mut __security_cookie: uintptr_t;
}
extern "C" {
    pub fn __va_start(arg1: *mut va_list, ...);
    pub fn __security_init_cookie();
    pub fn __security_check_cookie(_StackCookie: uintptr_t);
    pub fn __report_gsfailure(_StackCookie: uintptr_t);
    pub fn ovr_Initialize(params: *const ovrInitParams) -> ovrResult;
    pub fn ovr_Shutdown();
    pub fn ovr_GetLastErrorInfo(errorInfo: *mut ovrErrorInfo);
    pub fn ovr_GetVersionString() -> *const ::std::os::raw::c_char;
    pub fn ovr_TraceMessage(level: ::std::os::raw::c_int,
                            message: *const ::std::os::raw::c_char)
     -> ::std::os::raw::c_int;
    pub fn ovr_GetHmdDesc(session: ovrSession) -> ovrHmdDesc;
    pub fn ovr_GetTrackerCount(session: ovrSession) -> ::std::os::raw::c_uint;
    pub fn ovr_GetTrackerDesc(session: ovrSession,
                              trackerDescIndex: ::std::os::raw::c_uint)
     -> ovrTrackerDesc;
    pub fn ovr_Create(pSession: *mut ovrSession, pLuid: *mut ovrGraphicsLuid)
     -> ovrResult;
    pub fn ovr_Destroy(session: ovrSession);
    pub fn ovr_GetSessionStatus(session: ovrSession,
                                sessionStatus: *mut ovrSessionStatus)
     -> ovrResult;
    pub fn ovr_SetTrackingOriginType(session: ovrSession,
                                     origin: ovrTrackingOrigin) -> ovrResult;
    pub fn ovr_GetTrackingOriginType(session: ovrSession)
     -> ovrTrackingOrigin;
    pub fn ovr_RecenterTrackingOrigin(session: ovrSession) -> ovrResult;
    pub fn ovr_ClearShouldRecenterFlag(session: ovrSession);
    pub fn ovr_GetTrackingState(session: ovrSession,
                                absTime: ::std::os::raw::c_double,
                                latencyMarker: ovrBool) -> ovrTrackingState;
    pub fn ovr_GetTrackerPose(session: ovrSession,
                              trackerPoseIndex: ::std::os::raw::c_uint)
     -> ovrTrackerPose;
    pub fn ovr_GetInputState(session: ovrSession,
                             controllerType: ovrControllerType,
                             inputState: *mut ovrInputState) -> ovrResult;
    pub fn ovr_GetConnectedControllerTypes(session: ovrSession)
     -> ::std::os::raw::c_uint;
    pub fn ovr_SetControllerVibration(session: ovrSession,
                                      controllerType: ovrControllerType,
                                      frequency: ::std::os::raw::c_float,
                                      amplitude: ::std::os::raw::c_float)
     -> ovrResult;
    pub fn ovr_GetTextureSwapChainLength(session: ovrSession,
                                         chain: ovrTextureSwapChain,
                                         out_Length:
                                             *mut ::std::os::raw::c_int)
     -> ovrResult;
    pub fn ovr_GetTextureSwapChainCurrentIndex(session: ovrSession,
                                               chain: ovrTextureSwapChain,
                                               out_Index:
                                                   *mut ::std::os::raw::c_int)
     -> ovrResult;
    pub fn ovr_GetTextureSwapChainDesc(session: ovrSession,
                                       chain: ovrTextureSwapChain,
                                       out_Desc: *mut ovrTextureSwapChainDesc)
     -> ovrResult;
    pub fn ovr_CommitTextureSwapChain(session: ovrSession,
                                      chain: ovrTextureSwapChain)
     -> ovrResult;
    pub fn ovr_DestroyTextureSwapChain(session: ovrSession,
                                       chain: ovrTextureSwapChain);
    pub fn ovr_DestroyMirrorTexture(session: ovrSession,
                                    mirrorTexture: ovrMirrorTexture);
    pub fn ovr_GetFovTextureSize(session: ovrSession, eye: ovrEyeType,
                                 fov: ovrFovPort,
                                 pixelsPerDisplayPixel:
                                     ::std::os::raw::c_float) -> ovrSizei;
    pub fn ovr_GetRenderDesc(session: ovrSession, eyeType: ovrEyeType,
                             fov: ovrFovPort) -> ovrEyeRenderDesc;
    pub fn ovr_SubmitFrame(session: ovrSession,
                           frameIndex: ::std::os::raw::c_longlong,
                           viewScaleDesc: *const ovrViewScaleDesc,
                           layerPtrList: *const *const ovrLayerHeader,
                           layerCount: ::std::os::raw::c_uint) -> ovrResult;
    pub fn ovr_GetPredictedDisplayTime(session: ovrSession,
                                       frameIndex: ::std::os::raw::c_longlong)
     -> ::std::os::raw::c_double;
    pub fn ovr_GetTimeInSeconds() -> ::std::os::raw::c_double;
    pub fn ovr_GetBool(session: ovrSession,
                       propertyName: *const ::std::os::raw::c_char,
                       defaultVal: ovrBool) -> ovrBool;
    pub fn ovr_SetBool(session: ovrSession,
                       propertyName: *const ::std::os::raw::c_char,
                       value: ovrBool) -> ovrBool;
    pub fn ovr_GetInt(session: ovrSession,
                      propertyName: *const ::std::os::raw::c_char,
                      defaultVal: ::std::os::raw::c_int)
     -> ::std::os::raw::c_int;
    pub fn ovr_SetInt(session: ovrSession,
                      propertyName: *const ::std::os::raw::c_char,
                      value: ::std::os::raw::c_int) -> ovrBool;
    pub fn ovr_GetFloat(session: ovrSession,
                        propertyName: *const ::std::os::raw::c_char,
                        defaultVal: ::std::os::raw::c_float)
     -> ::std::os::raw::c_float;
    pub fn ovr_SetFloat(session: ovrSession,
                        propertyName: *const ::std::os::raw::c_char,
                        value: ::std::os::raw::c_float) -> ovrBool;
    pub fn ovr_GetFloatArray(session: ovrSession,
                             propertyName: *const ::std::os::raw::c_char,
                             values: *mut ::std::os::raw::c_float,
                             valuesCapacity: ::std::os::raw::c_uint)
     -> ::std::os::raw::c_uint;
    pub fn ovr_SetFloatArray(session: ovrSession,
                             propertyName: *const ::std::os::raw::c_char,
                             values: *const ::std::os::raw::c_float,
                             valuesSize: ::std::os::raw::c_uint) -> ovrBool;
    pub fn ovr_GetString(session: ovrSession,
                         propertyName: *const ::std::os::raw::c_char,
                         defaultVal: *const ::std::os::raw::c_char)
     -> *const ::std::os::raw::c_char;
    pub fn ovr_SetString(session: ovrSession,
                         propertyName: *const ::std::os::raw::c_char,
                         value: *const ::std::os::raw::c_char) -> ovrBool;
    pub fn ovr_Detect(timeoutMilliseconds: ::std::os::raw::c_int)
     -> ovrDetectResult;
    pub fn ovrMatrix4f_Projection(fov: ovrFovPort,
                                  znear: ::std::os::raw::c_float,
                                  zfar: ::std::os::raw::c_float,
                                  projectionModFlags: ::std::os::raw::c_uint)
     -> ovrMatrix4f;
    pub fn ovrTimewarpProjectionDesc_FromProjection(projection: ovrMatrix4f,
                                                    projectionModFlags:
                                                        ::std::os::raw::c_uint)
     -> ovrTimewarpProjectionDesc;
    pub fn ovrMatrix4f_OrthoSubProjection(projection: ovrMatrix4f,
                                          orthoScale: ovrVector2f,
                                          orthoDistance:
                                              ::std::os::raw::c_float,
                                          HmdToEyeOffsetX:
                                              ::std::os::raw::c_float)
     -> ovrMatrix4f;
    pub fn ovr_CalcEyePoses(headPose: ovrPosef,
                            HmdToEyeOffset: *mut ovrVector3f,
                            outEyePoses: *mut ovrPosef);
    pub fn ovr_GetEyePoses(session: ovrSession,
                           frameIndex: ::std::os::raw::c_longlong,
                           latencyMarker: ovrBool,
                           HmdToEyeOffset: *mut ovrVector3f,
                           outEyePoses: *mut ovrPosef,
                           outSensorSampleTime:
                               *mut ::std::os::raw::c_double);
    pub fn ovrPosef_FlipHandedness(inPose: *const ovrPosef,
                                   outPose: *mut ovrPosef);
}
