mirror of
https://github.com/DrBeef/Doom3Quest.git
synced 2025-02-17 09:33:29 +00:00
VR HUD Attached to off hand controller
Thanks again to the Fully Possesed Mod for the functionality for this one!
This commit is contained in:
parent
66c7052713
commit
aaa37bbe69
11 changed files with 155 additions and 64 deletions
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.drbeef.doom3quest"
|
package="com.drbeef.doom3quest"
|
||||||
android:versionCode="9"
|
android:versionCode="11"
|
||||||
android:versionName="0.0.15" android:installLocation="auto" >
|
android:versionName="0.0.17" android:installLocation="auto" >
|
||||||
|
|
||||||
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
||||||
<uses-feature android:glEsVersion="0x00030001" android:required="true"/>
|
<uses-feature android:glEsVersion="0x00030001" android:required="true"/>
|
||||||
|
|
|
@ -26,8 +26,6 @@ extern "C" {
|
||||||
#define ALOGV(...)
|
#define ALOGV(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TIC_RATE 60
|
|
||||||
|
|
||||||
float screenYaw;
|
float screenYaw;
|
||||||
|
|
||||||
float radians(float deg);
|
float radians(float deg);
|
||||||
|
|
|
@ -59,6 +59,7 @@ extern bool inMenu;
|
||||||
extern bool inGameGuiActive;
|
extern bool inGameGuiActive;
|
||||||
extern bool objectiveSystemActive;
|
extern bool objectiveSystemActive;
|
||||||
extern bool inCinematic;
|
extern bool inCinematic;
|
||||||
|
const int USERCMD_HZ = 60;
|
||||||
|
|
||||||
|
|
||||||
void HandleInput_Default( int controlscheme, ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovrInputStateTrackedRemote *pDominantTrackedRemoteOld, ovrTracking* pDominantTracking,
|
void HandleInput_Default( int controlscheme, ovrInputStateTrackedRemote *pDominantTrackedRemoteNew, ovrInputStateTrackedRemote *pDominantTrackedRemoteOld, ovrTracking* pDominantTracking,
|
||||||
|
@ -360,6 +361,7 @@ void HandleInput_Default( int controlscheme, ovrInputStateTrackedRemote *pDomina
|
||||||
pVRClientInfo->offhandoffset[2] = pOff->HeadPose.Pose.Position.z - pVRClientInfo->hmdposition[2];
|
pVRClientInfo->offhandoffset[2] = pOff->HeadPose.Pose.Position.z - pVRClientInfo->hmdposition[2];
|
||||||
|
|
||||||
vec3_t rotation = {0};
|
vec3_t rotation = {0};
|
||||||
|
rotation[PITCH] = -45;
|
||||||
QuatToYawPitchRoll(pOff->HeadPose.Pose.Orientation, rotation, pVRClientInfo->offhandangles);
|
QuatToYawPitchRoll(pOff->HeadPose.Pose.Orientation, rotation, pVRClientInfo->offhandangles);
|
||||||
|
|
||||||
if (vr_walkdirection == 0) {
|
if (vr_walkdirection == 0) {
|
||||||
|
@ -375,10 +377,9 @@ void HandleInput_Default( int controlscheme, ovrInputStateTrackedRemote *pDomina
|
||||||
{
|
{
|
||||||
//Adjust positional factor for this sample based on how long the last frame took, it should
|
//Adjust positional factor for this sample based on how long the last frame took, it should
|
||||||
//approximately even out the positional movement on a per frame basis (especially when fps is much lower than 60)
|
//approximately even out the positional movement on a per frame basis (especially when fps is much lower than 60)
|
||||||
//NOTE: it'll never be above ~60fps since we use com_fixedTic of "-1"
|
|
||||||
static float lastSampleTime = 0;
|
static float lastSampleTime = 0;
|
||||||
float sampleTime = Sys_Milliseconds();
|
float sampleTime = Sys_Milliseconds();
|
||||||
float vr_positional_factor = 2400.0f * ((1000.0f / TIC_RATE) / (sampleTime-lastSampleTime));
|
float vr_positional_factor = 2400.0f * ((1000.0f / USERCMD_HZ) / (sampleTime-lastSampleTime));
|
||||||
lastSampleTime = sampleTime;
|
lastSampleTime = sampleTime;
|
||||||
|
|
||||||
//This section corrects for the fact that the controller actually controls direction of movement, but we want to move relative to the direction the
|
//This section corrects for the fact that the controller actually controls direction of movement, but we want to move relative to the direction the
|
||||||
|
|
|
@ -1043,6 +1043,9 @@ idPlayer::idPlayer() {
|
||||||
|
|
||||||
flashlightModelDefHandle = -1;
|
flashlightModelDefHandle = -1;
|
||||||
|
|
||||||
|
hudHandle = -1;
|
||||||
|
memset( &hudEntity, 0, sizeof( hudEntity ) );
|
||||||
|
|
||||||
skin = NULL;
|
skin = NULL;
|
||||||
powerUpSkin = NULL;
|
powerUpSkin = NULL;
|
||||||
baseSkinName = "";
|
baseSkinName = "";
|
||||||
|
@ -1422,6 +1425,12 @@ void idPlayer::Init( void ) {
|
||||||
|
|
||||||
SetupFlashlightHolster();
|
SetupFlashlightHolster();
|
||||||
SetupLaserSight();
|
SetupLaserSight();
|
||||||
|
|
||||||
|
// re-init hud model
|
||||||
|
memset( &hudEntity, 0, sizeof( hudEntity ) );
|
||||||
|
hudEntity.hModel = renderModelManager->FindModel( "/models/mapobjects/hud.lwo" );
|
||||||
|
hudEntity.customShader = declManager->FindMaterial( "vr/hud" );
|
||||||
|
hudEntity.weaponDepthHack = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2103,6 +2112,12 @@ void idPlayer::Restore( idRestoreGame *savefile ) {
|
||||||
SetupFlashlightHolster();
|
SetupFlashlightHolster();
|
||||||
|
|
||||||
SetupLaserSight();
|
SetupLaserSight();
|
||||||
|
|
||||||
|
// re-init hud model
|
||||||
|
memset( &hudEntity, 0, sizeof( hudEntity ) );
|
||||||
|
hudEntity.hModel = renderModelManager->FindModel( "/models/mapobjects/hud.lwo" );
|
||||||
|
hudEntity.customShader = declManager->FindMaterial( "vr/hud" );
|
||||||
|
hudEntity.weaponDepthHack = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void idPlayer::SetupLaserSight()
|
void idPlayer::SetupLaserSight()
|
||||||
|
@ -2688,6 +2703,94 @@ void idPlayer::DrawHUD( idUserInterface *_hud ) {
|
||||||
//cursor->Redraw( gameLocal.realClientTime );
|
//cursor->Redraw( gameLocal.realClientTime );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderSystem->CaptureRenderToImage( "_hudImage" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==============
|
||||||
|
Koz
|
||||||
|
idPlayer::UpdateVrHud
|
||||||
|
==============
|
||||||
|
*/
|
||||||
|
void idPlayer::UpdateVrHud()
|
||||||
|
{
|
||||||
|
static idVec3 hudOrigin;
|
||||||
|
static idMat3 hudAxis;
|
||||||
|
float hudPitch;
|
||||||
|
|
||||||
|
if (pVRClientInfo != nullptr)
|
||||||
|
|
||||||
|
// update the hud model
|
||||||
|
if ( (pVRClientInfo == nullptr) || !pVRClientInfo->visible_hud || gameLocal.inCinematic)
|
||||||
|
{
|
||||||
|
// hide it
|
||||||
|
hudEntity.allowSurfaceInViewID = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hudEntity.allowSurfaceInViewID = entityNumber + 1;
|
||||||
|
|
||||||
|
{
|
||||||
|
hudPitch = 10.0f;
|
||||||
|
|
||||||
|
float yaw;
|
||||||
|
{
|
||||||
|
// CalculateRenderView must have been called first
|
||||||
|
const idVec3 &viewOrigin = firstPersonViewOrigin;
|
||||||
|
const idMat3 &viewAxis = firstPersonViewAxis;
|
||||||
|
|
||||||
|
if (pVRClientInfo)
|
||||||
|
{
|
||||||
|
idAngles angles;
|
||||||
|
float *pAngles = pVRClientInfo->offhandangles;
|
||||||
|
angles.pitch = pVRClientInfo->offhandangles[PITCH];
|
||||||
|
angles.yaw = viewAngles.yaw +
|
||||||
|
(pVRClientInfo->offhandangles[YAW] - pVRClientInfo->hmdorientation[YAW]);
|
||||||
|
angles.roll = pVRClientInfo->offhandangles[ROLL];
|
||||||
|
|
||||||
|
hudAxis = angles.ToMat3();
|
||||||
|
|
||||||
|
idVec3 offpos( -pVRClientInfo->offhandoffset[2],
|
||||||
|
-pVRClientInfo->offhandoffset[0],
|
||||||
|
pVRClientInfo->offhandoffset[1]);
|
||||||
|
|
||||||
|
idAngles a(0, viewAngles.yaw - pVRClientInfo->hmdorientation[YAW], 0);
|
||||||
|
offpos *= a.ToMat3();
|
||||||
|
offpos *= cvarSystem->GetCVarFloat( "vr_worldscale" );
|
||||||
|
|
||||||
|
{
|
||||||
|
hudOrigin = viewOrigin + offpos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetViewPos( hudOrigin, hudAxis );
|
||||||
|
// yaw = viewAngles.yaw;
|
||||||
|
}
|
||||||
|
//hudAxis = idAngles( hudPitch, yaw, 0.0f ).ToMat3();
|
||||||
|
|
||||||
|
//hudOrigin += hudAxis[0] * 24.0f;//vr_hudPosDis.GetFloat();
|
||||||
|
hudOrigin += hudAxis[1] * -8.0f;
|
||||||
|
hudOrigin += hudAxis[2] * 16.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
hudAxis *= 0.7;
|
||||||
|
|
||||||
|
hudEntity.axis = hudAxis;
|
||||||
|
hudEntity.origin = hudOrigin;
|
||||||
|
hudEntity.weaponDepthHack = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( hudHandle == -1 )
|
||||||
|
{
|
||||||
|
hudHandle = gameRenderWorld->AddEntityDef( &hudEntity );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gameRenderWorld->UpdateEntityDef( hudHandle, &hudEntity );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -6367,10 +6470,7 @@ void idPlayer::Think( void ) {
|
||||||
pVRClientInfo->weaponid = -1;
|
pVRClientInfo->weaponid = -1;
|
||||||
}
|
}
|
||||||
cvarSystem->SetCVarBool("vr_weapon_stabilised", pVRClientInfo->weapon_stabilised);
|
cvarSystem->SetCVarBool("vr_weapon_stabilised", pVRClientInfo->weapon_stabilised);
|
||||||
pVRClientInfo->velocitytriggered = (
|
pVRClientInfo->velocitytriggered = currentWeapon == WEAPON_FLASHLIGHT;
|
||||||
currentWeapon == WEAPON_FISTS ||
|
|
||||||
currentWeapon == WEAPON_FLASHLIGHT);
|
|
||||||
|
|
||||||
pVRClientInfo->pistol = currentWeapon == WEAPON_PISTOL;
|
pVRClientInfo->pistol = currentWeapon == WEAPON_PISTOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6511,6 +6611,8 @@ void idPlayer::Think( void ) {
|
||||||
|
|
||||||
UpdateLaserSight();
|
UpdateLaserSight();
|
||||||
|
|
||||||
|
UpdateVrHud();
|
||||||
|
|
||||||
UpdateDeathSkin( false );
|
UpdateDeathSkin( false );
|
||||||
|
|
||||||
if ( gameLocal.isMultiplayer ) {
|
if ( gameLocal.isMultiplayer ) {
|
||||||
|
|
|
@ -237,6 +237,9 @@ public:
|
||||||
renderEntity_t flashlightRenderEntity; // used to present a model to the renderer
|
renderEntity_t flashlightRenderEntity; // used to present a model to the renderer
|
||||||
qhandle_t flashlightModelDefHandle; // handle to static renderer model
|
qhandle_t flashlightModelDefHandle; // handle to static renderer model
|
||||||
|
|
||||||
|
renderEntity_t hudEntity;
|
||||||
|
qhandle_t hudHandle;
|
||||||
|
|
||||||
bool noclip;
|
bool noclip;
|
||||||
bool godmode;
|
bool godmode;
|
||||||
|
|
||||||
|
@ -416,9 +419,9 @@ public:
|
||||||
virtual void UpdateFlashlightHolster();
|
virtual void UpdateFlashlightHolster();
|
||||||
virtual void SetupLaserSight();
|
virtual void SetupLaserSight();
|
||||||
virtual void UpdateLaserSight( );
|
virtual void UpdateLaserSight( );
|
||||||
|
virtual void UpdateVrHud();
|
||||||
|
|
||||||
|
void Kill( bool delayRespawn, bool nodamage );
|
||||||
void Kill( bool delayRespawn, bool nodamage );
|
|
||||||
virtual void Killed( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
|
virtual void Killed( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
|
||||||
void StartFxOnBone(const char *fx, const char *bone);
|
void StartFxOnBone(const char *fx, const char *bone);
|
||||||
|
|
||||||
|
|
|
@ -462,6 +462,8 @@ void idPlayerView::SingleView( idUserInterface *hud, const renderView_t *view )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player->DrawHUD(hud);
|
||||||
|
|
||||||
// place the sound origin for the player
|
// place the sound origin for the player
|
||||||
gameSoundWorld->PlaceListener( view->vieworg, view->viewaxis, player->entityNumber + 1, gameLocal.time, hud ? hud->State().GetString( "location" ) : "Undefined" );
|
gameSoundWorld->PlaceListener( view->vieworg, view->viewaxis, player->entityNumber + 1, gameLocal.time, hud ? hud->State().GetString( "location" ) : "Undefined" );
|
||||||
|
|
||||||
|
@ -501,16 +503,6 @@ void idPlayerView::SingleView( idUserInterface *hud, const renderView_t *view )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vrClientInfo *pVRClientInfo = player->GetVRClientInfo();
|
|
||||||
if (pVRClientInfo != nullptr &&
|
|
||||||
pVRClientInfo->visible_hud) {
|
|
||||||
cvarSystem->SetCVarBool("vr_hud", true);
|
|
||||||
|
|
||||||
player->DrawHUD(hud);
|
|
||||||
|
|
||||||
cvarSystem->SetCVarBool("vr_hud", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// armor impulse feedback
|
// armor impulse feedback
|
||||||
float armorPulse = ( gameLocal.time - player->lastArmorPulse ) / 250.0f;
|
float armorPulse = ( gameLocal.time - player->lastArmorPulse ) / 250.0f;
|
||||||
|
|
||||||
|
|
|
@ -406,6 +406,8 @@ public:
|
||||||
idImage * specular2DTableImage; // 2D intensity texture with our specular function with variable specularity
|
idImage * specular2DTableImage; // 2D intensity texture with our specular function with variable specularity
|
||||||
idImage * borderClampImage; // white inside, black outside
|
idImage * borderClampImage; // white inside, black outside
|
||||||
|
|
||||||
|
idImage* hudImage;
|
||||||
|
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
|
|
||||||
idImage * AllocImage( const char *name );
|
idImage * AllocImage( const char *name );
|
||||||
|
|
|
@ -369,6 +369,18 @@ static void R_RGBA8Image( idImage *image ) {
|
||||||
TF_DEFAULT, false, TR_REPEAT, TD_HIGH_QUALITY );
|
TF_DEFAULT, false, TR_REPEAT, TD_HIGH_QUALITY );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Koz begin
|
||||||
|
// used for Hud and PDA surfaces in VR
|
||||||
|
static void R_VRSurfaceImage( idImage* image )
|
||||||
|
{
|
||||||
|
byte *data = (byte*)malloc(1024 * 1024 * 4);
|
||||||
|
|
||||||
|
memset( data, 0, sizeof( data ) );
|
||||||
|
|
||||||
|
image->GenerateImage( (byte *)data, 1024, 1024,
|
||||||
|
TF_DEFAULT, false, TR_CLAMP, TD_HIGH_QUALITY );
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void R_RGB8Image( idImage *image ) {
|
static void R_RGB8Image( idImage *image ) {
|
||||||
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
||||||
|
@ -1782,6 +1794,9 @@ void idImageManager::Init() {
|
||||||
scratchCubeMapImage = ImageFromFunction("_scratchCubeMap", makeNormalizeVectorCubeMap );
|
scratchCubeMapImage = ImageFromFunction("_scratchCubeMap", makeNormalizeVectorCubeMap );
|
||||||
currentRenderImage = ImageFromFunction("_currentRender", R_RGBA8Image );
|
currentRenderImage = ImageFromFunction("_currentRender", R_RGBA8Image );
|
||||||
|
|
||||||
|
hudImage = ImageFromFunction( "_hudImage", R_VRSurfaceImage ); // R_RGBA8Image );
|
||||||
|
|
||||||
|
|
||||||
cmdSystem->AddCommand( "reloadImages", R_ReloadImages_f, CMD_FL_RENDERER, "reloads images" );
|
cmdSystem->AddCommand( "reloadImages", R_ReloadImages_f, CMD_FL_RENDERER, "reloads images" );
|
||||||
cmdSystem->AddCommand( "listImages", R_ListImages_f, CMD_FL_RENDERER, "lists images" );
|
cmdSystem->AddCommand( "listImages", R_ListImages_f, CMD_FL_RENDERER, "lists images" );
|
||||||
cmdSystem->AddCommand( "combineCubeImages", R_CombineCubeImages_f, CMD_FL_RENDERER, "combines six images for roq compression" );
|
cmdSystem->AddCommand( "combineCubeImages", R_CombineCubeImages_f, CMD_FL_RENDERER, "combines six images for roq compression" );
|
||||||
|
|
|
@ -1197,18 +1197,9 @@ idWindow::Redraw
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum eScalingType {
|
|
||||||
NONE,
|
|
||||||
SCALETO43,
|
|
||||||
VRHUD
|
|
||||||
};
|
|
||||||
|
|
||||||
void idWindow::Redraw(float x, float y) {
|
void idWindow::Redraw(float x, float y) {
|
||||||
idStr str;
|
idStr str;
|
||||||
|
|
||||||
static int recursiveCount = 0;
|
|
||||||
recursiveCount++;
|
|
||||||
|
|
||||||
if (r_skipGuiShaders.GetInteger() == 1 || dc == NULL ) {
|
if (r_skipGuiShaders.GetInteger() == 1 || dc == NULL ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1223,32 +1214,19 @@ void idWindow::Redraw(float x, float y) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
eScalingType scalingType = NONE;
|
|
||||||
|
|
||||||
// DG: allow scaling menus to 4:3
|
// DG: allow scaling menus to 4:3
|
||||||
|
bool fixupFor43 = false;
|
||||||
if ( flags & WIN_DESKTOP ) {
|
if ( flags & WIN_DESKTOP ) {
|
||||||
// only scale desktop windows (will automatically scale its sub-windows)
|
// only scale desktop windows (will automatically scale its sub-windows)
|
||||||
// that EITHER have the scaleto43 flag set OR are fullscreen menus and r_scaleMenusTo43 is 1
|
// that EITHER have the scaleto43 flag set OR are fullscreen menus and r_scaleMenusTo43 is 1
|
||||||
if( (flags & WIN_SCALETO43) ||
|
if( (flags & WIN_SCALETO43) ||
|
||||||
((flags & WIN_MENUGUI) && r_scaleMenusTo43.GetBool()) )
|
((flags & WIN_MENUGUI) && r_scaleMenusTo43.GetBool()) )
|
||||||
{
|
{
|
||||||
scalingType = SCALETO43;
|
fixupFor43 = true;
|
||||||
dc->SetMenuScaleFix(true);
|
dc->SetMenuScaleFix(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scalingType == NONE) {
|
|
||||||
bool scaledHUDForVR = cvarSystem->GetCVarBool("vr_hud");
|
|
||||||
if (scaledHUDForVR) {
|
|
||||||
scalingType = VRHUD;
|
|
||||||
|
|
||||||
//Only set this on the first call
|
|
||||||
if (recursiveCount == 1) {
|
|
||||||
dc->SetMenuScaleForVR(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( flags & WIN_SHOWTIME ) {
|
if ( flags & WIN_SHOWTIME ) {
|
||||||
dc->DrawText(va(" %0.1f seconds\n%s", (float)(time - timeLine) / 1000, gui->State().GetString("name")), 0.35f, 0, dc->colorWhite, idRectangle(100, 0, 80, 80), false);
|
dc->DrawText(va(" %0.1f seconds\n%s", (float)(time - timeLine) / 1000, gui->State().GetString("name")), 0.35f, 0, dc->colorWhite, idRectangle(100, 0, 80, 80), false);
|
||||||
}
|
}
|
||||||
|
@ -1261,14 +1239,7 @@ void idWindow::Redraw(float x, float y) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!visible) {
|
if (!visible) {
|
||||||
if (scalingType == SCALETO43) { // DG: gotta reset that before returning this function
|
if (fixupFor43) { // DG: gotta reset that before returning this function
|
||||||
dc->SetMenuScaleFix(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
recursiveCount--;
|
|
||||||
if (scalingType == VRHUD &&
|
|
||||||
recursiveCount == 0)
|
|
||||||
{
|
|
||||||
dc->SetMenuScaleFix(false);
|
dc->SetMenuScaleFix(false);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -1278,8 +1249,8 @@ void idWindow::Redraw(float x, float y) {
|
||||||
|
|
||||||
SetFont();
|
SetFont();
|
||||||
//if (flags & WIN_DESKTOP) {
|
//if (flags & WIN_DESKTOP) {
|
||||||
// see if this window forces a new aspect ratio
|
// see if this window forces a new aspect ratio
|
||||||
dc->SetSize(forceAspectWidth, forceAspectHeight);
|
dc->SetSize(forceAspectWidth, forceAspectHeight);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//FIXME: go to screen coord tracking
|
//FIXME: go to screen coord tracking
|
||||||
|
@ -1339,14 +1310,7 @@ void idWindow::Redraw(float x, float y) {
|
||||||
dc->EnableClipping(true);
|
dc->EnableClipping(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scalingType == SCALETO43) { // DG: gotta reset that before returning this function
|
if (fixupFor43) { // DG: gotta reset that before returning this function
|
||||||
dc->SetMenuScaleFix(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
recursiveCount--;
|
|
||||||
if (scalingType == VRHUD &&
|
|
||||||
recursiveCount == 0)
|
|
||||||
{
|
|
||||||
dc->SetMenuScaleFix(false);
|
dc->SetMenuScaleFix(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
assets/pak299/materials/vr.mtr
Normal file
14
assets/pak299/materials/vr.mtr
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
vr/hud
|
||||||
|
|
||||||
|
{
|
||||||
|
qer_editorimage textures/zaphod/shotgun_laser.TGA
|
||||||
|
translucent
|
||||||
|
noShadows
|
||||||
|
{
|
||||||
|
blend add
|
||||||
|
map _hudImage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
BIN
assets/pak299/models/mapobjects/hud.lwo
Normal file
BIN
assets/pak299/models/mapobjects/hud.lwo
Normal file
Binary file not shown.
Loading…
Reference in a new issue