mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 08:14:48 +02:00
Working on positioning of the keyboard
This commit is contained in:
parent
c2aa9e7f61
commit
79c68b2ecb
2 changed files with 20 additions and 1 deletions
|
@ -102,6 +102,7 @@ static vr::IVROverlay* _overlay { nullptr };
|
|||
static QObject* _focusObject { nullptr };
|
||||
static QString _existingText;
|
||||
static Qt::InputMethodHints _currentHints;
|
||||
extern vr::TrackedDevicePose_t _trackedDevicePose[vr::k_unMaxTrackedDeviceCount];
|
||||
|
||||
void showOpenVrKeyboard(bool show = true) {
|
||||
if (_overlay) {
|
||||
|
@ -121,7 +122,15 @@ void showOpenVrKeyboard(bool show = true) {
|
|||
lineMode = vr::k_EGamepadTextInputLineModeMultipleLines;
|
||||
}
|
||||
_existingText = query.value(Qt::ImSurroundingText).toString();
|
||||
_overlay->ShowKeyboard(inputMode, lineMode, "Keyboard", 1024, _existingText.toLocal8Bit().toStdString().c_str(), false, (uint64_t)(void*)_focusObject);
|
||||
|
||||
auto showKeyboardResult = _overlay->ShowKeyboard(inputMode, lineMode, "Keyboard", 1024,
|
||||
_existingText.toLocal8Bit().toStdString().c_str(), false, 0);
|
||||
|
||||
mat4 headPose = toGlm(_trackedDevicePose[0].mDeviceToAbsoluteTracking);
|
||||
mat4 keyboardTransform = glm::translate(headPose, vec3(0, -0.5, -1));
|
||||
keyboardTransform = keyboardTransform * glm::rotate(mat4(), 3.14159f / 4.0f, vec3(-1, 0, 0));
|
||||
auto keyboardTransformVr = toOpenVr(keyboardTransform);
|
||||
_overlay->SetKeyboardTransformAbsolute(vr::ETrackingUniverseOrigin::TrackingUniverseStanding, &keyboardTransformVr);
|
||||
} else {
|
||||
_focusObject = nullptr;
|
||||
_overlay->HideKeyboard();
|
||||
|
|
|
@ -44,3 +44,13 @@ inline mat4 toGlm(const vr::HmdMatrix34_t& m) {
|
|||
m.m[0][3], m.m[1][3], m.m[2][3], 1.0f);
|
||||
return result;
|
||||
}
|
||||
|
||||
inline vr::HmdMatrix34_t toOpenVr(const mat4& m) {
|
||||
vr::HmdMatrix34_t result;
|
||||
for (uint8_t i = 0; i < 3; ++i) {
|
||||
for (uint8_t j = 0; j < 4; ++j) {
|
||||
result.m[i][j] = m[j][i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue