2020-09-06 11:40:32 +00:00
|
|
|
#include "vr_base.h"
|
2022-02-02 23:31:59 +00:00
|
|
|
#include "../VrApi/Include/VrApi.h"
|
|
|
|
#include "../VrApi/Include/VrApi_Helpers.h"
|
2022-01-29 15:45:18 +00:00
|
|
|
#include "../VrApi/Include/VrApi_Types.h"
|
|
|
|
#include "../qcommon/q_shared.h"
|
|
|
|
#include "../qcommon/qcommon.h"
|
|
|
|
#include "../client/client.h"
|
2020-09-06 11:40:32 +00:00
|
|
|
|
2022-01-29 15:45:18 +00:00
|
|
|
//#if __ANDROID__
|
2020-09-06 11:40:32 +00:00
|
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Wstrict-prototypes"
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
|
|
|
|
#include <EGL/egl.h>
|
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
|
|
static engine_t vr_engine;
|
|
|
|
|
2022-01-30 23:36:14 +00:00
|
|
|
cvar_t *vr_worldscale = NULL;
|
|
|
|
|
2020-09-06 11:40:32 +00:00
|
|
|
engine_t* VR_Init( ovrJava java )
|
|
|
|
{
|
|
|
|
ovrInitParms initParams;
|
|
|
|
ovrResult initResult;
|
|
|
|
|
|
|
|
memset(&vr_engine, 0, sizeof(vr_engine));
|
|
|
|
|
|
|
|
initParams = vrapi_DefaultInitParms(&java);
|
|
|
|
initResult = vrapi_Initialize(&initParams);
|
|
|
|
assert(initResult == VRAPI_INITIALIZE_SUCCESS);
|
2022-01-29 15:45:18 +00:00
|
|
|
|
|
|
|
vr_engine.java = java;
|
2020-09-06 11:40:32 +00:00
|
|
|
|
|
|
|
return &vr_engine;
|
|
|
|
}
|
|
|
|
|
2022-01-30 23:36:14 +00:00
|
|
|
void VR_InitCvars( void )
|
|
|
|
{
|
|
|
|
vr_worldscale = Cvar_Get ("vr_worldscale", "32.0", CVAR_ARCHIVE);
|
2022-01-31 23:32:27 +00:00
|
|
|
|
|
|
|
// Values are: scale,right,up,forward,pitch,yaw,roll
|
2022-02-01 23:35:05 +00:00
|
|
|
// VALUES PROVIDED BY SkillFur - Thank-you!
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_1", "1,-4.0,7,-10,-20,-15,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_2", "0.8,-3.0,5.5,0,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_3", "0.7,-2.5,5.5,0,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_4", "0.75,-4.0,6.5,-4,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_5", "0.8,-3.8,6,7.5,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_6", "0.8,-3.3,6,7,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_7", "0.8,-3.3,6,0,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_8", "0.8,-3.5,6,1.5,0,0,0", CVAR_ARCHIVE);
|
|
|
|
Cvar_Get ("vr_weapon_adjustment_9", "0.8,-5.5,6,0,0,0,0", CVAR_ARCHIVE);
|
|
|
|
|
2022-01-30 23:36:14 +00:00
|
|
|
}
|
|
|
|
|
2020-09-06 11:40:32 +00:00
|
|
|
void VR_Destroy( engine_t* engine )
|
|
|
|
{
|
|
|
|
if (engine == &vr_engine) {
|
|
|
|
vrapi_Shutdown();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void VR_EnterVR( engine_t* engine, ovrJava java ) {
|
|
|
|
if (!engine->ovr) {
|
|
|
|
ovrModeParms modeParams = vrapi_DefaultModeParms(&java);
|
|
|
|
modeParams.Display = (size_t)eglGetCurrentDisplay();
|
|
|
|
modeParams.WindowSurface = (size_t)eglGetCurrentSurface(EGL_DRAW);
|
|
|
|
modeParams.ShareContext = (size_t)eglGetCurrentContext();
|
|
|
|
|
|
|
|
engine->ovr = vrapi_EnterVrMode(&modeParams);
|
|
|
|
engine->frameIndex = 0;
|
|
|
|
|
2022-01-29 15:45:18 +00:00
|
|
|
vrapi_SetTrackingSpace(engine->ovr, VRAPI_TRACKING_SPACE_LOCAL_FLOOR);
|
2020-09-06 11:40:32 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void VR_LeaveVR( engine_t* engine ) {
|
|
|
|
if (engine->ovr) {
|
|
|
|
vrapi_LeaveVrMode(engine->ovr);
|
|
|
|
engine->ovr = NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
engine_t* VR_GetEngine( void ) {
|
|
|
|
return &vr_engine;
|
|
|
|
}
|
2022-01-29 15:45:18 +00:00
|
|
|
|
|
|
|
bool VR_useScreenLayer( void )
|
|
|
|
{
|
2022-02-01 23:35:05 +00:00
|
|
|
int keyCatcher = Key_GetCatcher( );
|
2022-02-02 23:31:59 +00:00
|
|
|
return (bool)( clc.state != CA_ACTIVE ||
|
|
|
|
//( cl.snap.ps.stats[STAT_HEALTH] <= 0 ) ||
|
2022-02-01 23:35:05 +00:00
|
|
|
( keyCatcher & (KEYCATCH_UI | KEYCATCH_CONSOLE) ));
|
2022-01-29 15:45:18 +00:00
|
|
|
}
|
|
|
|
//#endif
|