OpenXR - Support for multiple projection matrices in the scene
This commit is contained in:
parent
059520331c
commit
017f263d04
2 changed files with 4 additions and 9 deletions
|
@ -68,15 +68,10 @@ void VR_TweakMirroring(float* projMatrix) {
|
|||
}
|
||||
|
||||
void VR_TweakProjection(float* src, float* dst, VRMatrix matrix) {
|
||||
memcpy(dst, src, 16 * sizeof(float));
|
||||
ovrMatrix4f hmdProjection = VR_GetMatrix(matrix);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
if ((hmdProjection.M[i][j] > 0) != (src[i * 4 + j] > 0)) {
|
||||
hmdProjection.M[i][j] *= -1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
memcpy(dst, hmdProjection.M, 16 * sizeof(float));
|
||||
dst[0] = (dst[0] > 0 ? 1.0f : -1.0f) * hmdProjection.M[0][0];
|
||||
dst[5] = (dst[5] > 0 ? 1.0f : -1.0f) * hmdProjection.M[1][1];
|
||||
}
|
||||
|
||||
void VR_TweakView(float* view, float* projMatrix, VRMatrix matrix) {
|
||||
|
|
|
@ -1117,7 +1117,7 @@ void GameSettingsScreen::CreateViews() {
|
|||
vrSettings->Add(new CheckBox(&g_Config.bEnableVR, vr->T("Enable virtual reality")));
|
||||
CheckBox *vr6DoF = vrSettings->Add(new CheckBox(&g_Config.bEnable6DoF, vr->T("Enable 6 degrees of freedom movement")));
|
||||
vr6DoF->SetEnabledPtr(&g_Config.bEnableVR);
|
||||
PopupSliderChoice *vrFieldOfView = vrSettings->Add(new PopupSliderChoice(&g_Config.iFieldOfViewPercentage, 50, 150, vr->T("Field of view scale", "Headset's field of view scale"), 10, screenManager(), vr->T("% of native FoV")));
|
||||
PopupSliderChoice *vrFieldOfView = vrSettings->Add(new PopupSliderChoice(&g_Config.iFieldOfViewPercentage, 100, 150, vr->T("Field of view scale", "Headset's field of view scale"), 10, screenManager(), vr->T("% of native FoV")));
|
||||
vrFieldOfView->SetEnabledPtr(&g_Config.bEnableVR);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue