| 1093 | } |
| 1094 | |
| 1095 | void OverlayController::mainEventLoop() |
| 1096 | { |
| 1097 | if ( !vr::VRSystem() ) |
| 1098 | return; |
| 1099 | |
| 1100 | m_actions.UpdateStates(); |
| 1101 | |
| 1102 | processInputBindings(); |
| 1103 | |
| 1104 | vr::VREvent_t vrEvent; |
| 1105 | bool chaperoneDataAlreadyUpdated = false; |
| 1106 | while ( pollNextEvent( m_ulOverlayHandle, &vrEvent ) ) |
| 1107 | { |
| 1108 | switch ( vrEvent.eventType ) |
| 1109 | { |
| 1110 | case vr::VREvent_MouseMove: |
| 1111 | { |
| 1112 | QPoint ptNewMouse = getMousePositionForEvent( vrEvent.data.mouse ); |
| 1113 | if ( ptNewMouse != m_ptLastMouse ) |
| 1114 | { |
| 1115 | QMouseEvent mouseEvent( QEvent::MouseMove, |
| 1116 | ptNewMouse, |
| 1117 | m_window.mapToGlobal( ptNewMouse ), |
| 1118 | Qt::NoButton, |
| 1119 | m_lastMouseButtons, |
| 1120 | nullptr ); |
| 1121 | m_ptLastMouse = ptNewMouse; |
| 1122 | QCoreApplication::sendEvent( &m_window, &mouseEvent ); |
| 1123 | OnRenderRequest(); |
| 1124 | } |
| 1125 | } |
| 1126 | break; |
| 1127 | |
| 1128 | case vr::VREvent_MouseButtonDown: |
| 1129 | { |
| 1130 | QPoint ptNewMouse = getMousePositionForEvent( vrEvent.data.mouse ); |
| 1131 | Qt::MouseButton button |
| 1132 | = vrEvent.data.mouse.button == vr::VRMouseButton_Right |
| 1133 | ? Qt::RightButton |
| 1134 | : Qt::LeftButton; |
| 1135 | m_lastMouseButtons |= button; |
| 1136 | QMouseEvent mouseEvent( QEvent::MouseButtonPress, |
| 1137 | ptNewMouse, |
| 1138 | m_window.mapToGlobal( ptNewMouse ), |
| 1139 | button, |
| 1140 | m_lastMouseButtons, |
| 1141 | nullptr ); |
| 1142 | QCoreApplication::sendEvent( &m_window, &mouseEvent ); |
| 1143 | } |
| 1144 | break; |
| 1145 | |
| 1146 | case vr::VREvent_MouseButtonUp: |
| 1147 | { |
| 1148 | QPoint ptNewMouse = getMousePositionForEvent( vrEvent.data.mouse ); |
| 1149 | Qt::MouseButton button |
| 1150 | = vrEvent.data.mouse.button == vr::VRMouseButton_Right |
| 1151 | ? Qt::RightButton |
| 1152 | : Qt::LeftButton; |
nothing calls this directly
no test coverage detected