place keyboard in front of viewer at comfortable angle

This commit is contained in:
amwatson 2024-02-09 21:06:09 -06:00
parent 09a1c55ce0
commit b0d07255b7
3 changed files with 9 additions and 12 deletions

View file

@ -183,17 +183,13 @@ XrVector2f GetDensityScaleForSize(const int32_t texWidth,
scaleFactor;
}
XrPosef CreatePanelFromWorld(const XrVector3f& position)
{
return XrPosef{XrMath::Quatf::Identity(), position};
}
} // anonymous namespace
UILayer::UILayer(const std::string& className, const XrVector3f&& position,
JNIEnv* env, jobject activityObject, const XrSession& session)
const XrQuaternionf&& orientation, JNIEnv* env,
jobject activityObject, const XrSession& session)
: mSession(session)
, mPanelFromWorld(CreatePanelFromWorld(position))
, mPanelFromWorld(XrPosef{XrMath::Quatf::Identity(), position})
, mEnv(env)
, mActivityObject(activityObject)
@ -287,7 +283,6 @@ int32_t UILayer::Init(const std::string& className,
BAIL_ON_COND(mSendClickToUIMethodID == nullptr,
"could not find sendClickToUI()", -6);
return 0;
}

View file

@ -15,7 +15,8 @@ public:
* @param session a valid XrSession
*/
UILayer(const std::string& className, const XrVector3f&& position,
JNIEnv* jni, jobject activityObject, const XrSession& session);
const XrQuaternionf&& orientation, JNIEnv* jni,
jobject activityObject, const XrSession& session);
~UILayer();
/** Called on resume. Sets the surface in the native rendering library.

View file

@ -282,8 +282,9 @@ public:
mKeyboardLayer = std::make_unique<UILayer>(
"org/citra/citra_emu/vr/ui/VrKeyboardLayer",
XrVector3f{0, 0.0f, -1.5f}, jni, mActivityObject,
gOpenXr->mSession);
XrVector3f{0, -0.4f, -0.5f},
XrMath::Quatf::FromEuler(0.0f, -MATH_FLOAT_PI / 4.0f, 0.0f), jni,
mActivityObject, gOpenXr->mSession);
//////////////////////////////////////////////////
// Intialize JNI methods
@ -1059,7 +1060,7 @@ private:
}
mIsKeyboardActive = shouldShowKeyboard;
ALOGI("Received SHOW_KEYBOARD message");
ALOGD("Received SHOW_KEYBOARD message");
break;
}