| 416 | } |
| 417 | |
| 418 | void InputManager::OculusTouch::UpdateHaptics(XrSession session, XrDuration displayPeriod) |
| 419 | { |
| 420 | for (int i = 0; i < ovrHand_Count; i++) |
| 421 | { |
| 422 | float amplitude = m_HapticsBuffer[i].GetSample(); |
| 423 | if (amplitude > 0.0f) |
| 424 | { |
| 425 | XrHapticActionInfo info = XR_TYPE(HAPTIC_ACTION_INFO); |
| 426 | info.action = m_Vibration; |
| 427 | info.subactionPath = s_SubActionPaths[i]; |
| 428 | XrHapticVibration vibration = XR_TYPE(HAPTIC_VIBRATION); |
| 429 | vibration.frequency = XR_FREQUENCY_UNSPECIFIED; |
| 430 | vibration.amplitude = amplitude; |
| 431 | vibration.duration = displayPeriod; |
| 432 | XrResult rs = xrApplyHapticFeedback(session, &info, (XrHapticBaseHeader*)&vibration); |
| 433 | assert(XR_SUCCEEDED(rs)); |
| 434 | } |
| 435 | } |
| 436 | } |
| 437 | |
| 438 | XrPath InputManager::OculusTouch::GetSuggestedBindings(std::vector<XrActionSuggestedBinding>& outBindings) const |
| 439 | { |
no test coverage detected