Add super sampling configuration and 120hz refresh rate

This commit is contained in:
Petr Bartos 2022-09-29 17:38:20 +02:00
parent b11fc0fb29
commit 96b1071b50
6 changed files with 164 additions and 28 deletions

View file

@ -249,10 +249,12 @@ GRAPHICS OPTIONS MENU
#define ID_PLAYERSHADOW 109 #define ID_PLAYERSHADOW 109
#define ID_GAMMA 110 #define ID_GAMMA 110
#define ID_HIGHQUALITYSKY 111 #define ID_HIGHQUALITYSKY 111
#define ID_SUPERSAMPLING 112
#define NUM_REFRESHRATE 4 #define NUM_REFRESHRATE 5
#define NUM_SHADOWS 3 #define NUM_SHADOWS 3
#define NUM_RAILGUN 2 #define NUM_RAILGUN 2
#define NUM_SUPERSAMPLING 5
typedef struct { typedef struct {
menuframework_s menu; menuframework_s menu;
@ -276,6 +278,7 @@ typedef struct {
menulist_s playershadow; menulist_s playershadow;
menuslider_s gamma; menuslider_s gamma;
menuradiobutton_s highqualitysky; menuradiobutton_s highqualitysky;
menulist_s supersampling;
menubitmap_s apply; menubitmap_s apply;
menubitmap_s back; menubitmap_s back;
@ -292,6 +295,7 @@ typedef struct
int playershadow; int playershadow;
float gamma; float gamma;
int highqualitysky; int highqualitysky;
float supersampling;
} InitialVideoOptions_s; } InitialVideoOptions_s;
static InitialVideoOptions_s s_ivo; static InitialVideoOptions_s s_ivo;
@ -313,6 +317,7 @@ static void GraphicsOptions_GetInitialVideo( void )
s_ivo.playershadow = s_graphicsoptions.playershadow.curvalue; s_ivo.playershadow = s_graphicsoptions.playershadow.curvalue;
s_ivo.gamma = s_graphicsoptions.gamma.curvalue; s_ivo.gamma = s_graphicsoptions.gamma.curvalue;
s_ivo.highqualitysky = s_graphicsoptions.highqualitysky.curvalue; s_ivo.highqualitysky = s_graphicsoptions.highqualitysky.curvalue;
s_ivo.supersampling = s_graphicsoptions.supersampling.curvalue;
} }
/* /*
@ -401,6 +406,9 @@ static void GraphicsOptions_Event( void* ptr, int event ) {
case 3: case 3:
refresh = 90; refresh = 90;
break; break;
case 4:
refresh = 120;
break;
} }
trap_Cvar_SetValue("vr_refreshrate", refresh); trap_Cvar_SetValue("vr_refreshrate", refresh);
} }
@ -452,6 +460,29 @@ static void GraphicsOptions_Event( void* ptr, int event ) {
trap_Cvar_SetValue( "r_fastsky", !s_graphicsoptions.highqualitysky.curvalue ); trap_Cvar_SetValue( "r_fastsky", !s_graphicsoptions.highqualitysky.curvalue );
break; break;
case ID_SUPERSAMPLING: {
float supersampling;
switch (s_graphicsoptions.supersampling.curvalue) {
case 0:
supersampling = 0.8;
break;
case 1:
supersampling = 0.9;
break;
case 2:
supersampling = 1.0;
break;
case 3:
supersampling = 1.1;
break;
case 4:
supersampling = 1.2;
break;
}
trap_Cvar_SetValue("vr_superSampling", supersampling);
}
break;
case ID_DRIVERINFO: case ID_DRIVERINFO:
UI_DriverInfo_Menu(); UI_DriverInfo_Menu();
break; break;
@ -542,6 +573,12 @@ static void GraphicsOptions_SetMenuItems( void )
case 90: case 90:
s_graphicsoptions.refreshrate.curvalue = 3; s_graphicsoptions.refreshrate.curvalue = 3;
break; break;
case 120:
s_graphicsoptions.refreshrate.curvalue = 4;
break;
default:
s_graphicsoptions.refreshrate.curvalue = 1;
break;
} }
switch ( (int) trap_Cvar_VariableValue( "cg_shadows" ) ) switch ( (int) trap_Cvar_VariableValue( "cg_shadows" ) )
@ -570,6 +607,21 @@ static void GraphicsOptions_SetMenuItems( void )
break; break;
} }
float superSampling = trap_Cvar_VariableValue( "vr_superSampling" );
if (superSampling == 0.8f) {
s_graphicsoptions.supersampling.curvalue = 0;
} else if (superSampling == 0.9f) {
s_graphicsoptions.supersampling.curvalue = 1;
} else if (superSampling == 1.0f) {
s_graphicsoptions.supersampling.curvalue = 2;
} else if (superSampling == 1.1f) {
s_graphicsoptions.supersampling.curvalue = 3;
} else if (superSampling == 1.2f) {
s_graphicsoptions.supersampling.curvalue = 4;
} else {
s_graphicsoptions.supersampling.curvalue = 3;
}
s_graphicsoptions.lighting.curvalue = trap_Cvar_VariableValue( "r_vertexLight" ) != 0; s_graphicsoptions.lighting.curvalue = trap_Cvar_VariableValue( "r_vertexLight" ) != 0;
s_graphicsoptions.railgun.curvalue = trap_Cvar_VariableValue( "cg_oldRail" ); s_graphicsoptions.railgun.curvalue = trap_Cvar_VariableValue( "cg_oldRail" );
s_graphicsoptions.gamma.curvalue = trap_Cvar_VariableValue( "r_gamma" ); s_graphicsoptions.gamma.curvalue = trap_Cvar_VariableValue( "r_gamma" );
@ -602,9 +654,10 @@ void GraphicsOptions_MenuInit( void )
static const char *s_refreshrate[] = static const char *s_refreshrate[] =
{ {
"60", "60",
"72 (Recommended)", "72",
"80", "80",
"90", "90",
"120",
NULL NULL
}; };
@ -623,6 +676,16 @@ void GraphicsOptions_MenuInit( void )
NULL NULL
}; };
static const char *s_supersampling[] =
{
"0.8",
"0.9",
"1.0",
"1.1",
"1.2",
NULL
};
int y; int y;
// zero set all our globals // zero set all our globals
@ -687,7 +750,7 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.network.style = UI_RIGHT; s_graphicsoptions.network.style = UI_RIGHT;
s_graphicsoptions.network.color = color_red; s_graphicsoptions.network.color = color_red;
y = 254 - 5 * (BIGCHAR_HEIGHT + 2); y = 254 - 6 * (BIGCHAR_HEIGHT + 2);
// references "vr_refreshrate" // references "vr_refreshrate"
s_graphicsoptions.refreshrate.generic.type = MTYPE_SPINCONTROL; s_graphicsoptions.refreshrate.generic.type = MTYPE_SPINCONTROL;
@ -701,6 +764,18 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.refreshrate.numitems = NUM_REFRESHRATE; s_graphicsoptions.refreshrate.numitems = NUM_REFRESHRATE;
y += BIGCHAR_HEIGHT+2; y += BIGCHAR_HEIGHT+2;
// references "vr_superSampling"
s_graphicsoptions.supersampling.generic.type = MTYPE_SPINCONTROL;
s_graphicsoptions.supersampling.generic.name = "Supersampling:";
s_graphicsoptions.supersampling.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_graphicsoptions.supersampling.generic.x = 400;
s_graphicsoptions.supersampling.generic.y = y;
s_graphicsoptions.supersampling.itemnames = s_supersampling;
s_graphicsoptions.supersampling.generic.callback = GraphicsOptions_Event;
s_graphicsoptions.supersampling.generic.id = ID_SUPERSAMPLING;
s_graphicsoptions.supersampling.numitems = NUM_SUPERSAMPLING;
y += BIGCHAR_HEIGHT+2;
// references "r_gamma" // references "r_gamma"
s_graphicsoptions.gamma.generic.type = MTYPE_SLIDER; s_graphicsoptions.gamma.generic.type = MTYPE_SLIDER;
s_graphicsoptions.gamma.generic.name = "Brightness:"; s_graphicsoptions.gamma.generic.name = "Brightness:";
@ -828,6 +903,7 @@ void GraphicsOptions_MenuInit( void )
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.network ); Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.network );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.refreshrate ); Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.refreshrate );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.supersampling );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.railgun ); Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.railgun );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.gamma ); Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.gamma );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.lighting ); Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.lighting );

View file

@ -35,6 +35,7 @@ cvar_t *vr_weaponPitch = NULL;
cvar_t *vr_twoHandedWeapons = NULL; cvar_t *vr_twoHandedWeapons = NULL;
cvar_t *vr_showItemInHand = NULL; cvar_t *vr_showItemInHand = NULL;
cvar_t *vr_refreshrate = NULL; cvar_t *vr_refreshrate = NULL;
cvar_t *vr_superSampling = NULL;
cvar_t *vr_weaponScope = NULL; cvar_t *vr_weaponScope = NULL;
cvar_t *vr_rollWhenHit = NULL; cvar_t *vr_rollWhenHit = NULL;
cvar_t *vr_hudYOffset = NULL; cvar_t *vr_hudYOffset = NULL;
@ -154,6 +155,7 @@ void VR_InitCvars( void )
vr_twoHandedWeapons = Cvar_Get ("vr_twoHandedWeapons", "1", CVAR_ARCHIVE); vr_twoHandedWeapons = Cvar_Get ("vr_twoHandedWeapons", "1", CVAR_ARCHIVE);
vr_showItemInHand = Cvar_Get ("vr_showItemInHand", "1", CVAR_ARCHIVE); vr_showItemInHand = Cvar_Get ("vr_showItemInHand", "1", CVAR_ARCHIVE);
vr_refreshrate = Cvar_Get ("vr_refreshrate", "72", CVAR_ARCHIVE); vr_refreshrate = Cvar_Get ("vr_refreshrate", "72", CVAR_ARCHIVE);
vr_superSampling = Cvar_Get ("vr_superSampling", "1.1", CVAR_ARCHIVE);
vr_weaponScope = Cvar_Get ("vr_weaponScope", "1", CVAR_ARCHIVE); vr_weaponScope = Cvar_Get ("vr_weaponScope", "1", CVAR_ARCHIVE);
vr_rollWhenHit = Cvar_Get ("vr_rollWhenHit", "0", CVAR_ARCHIVE); vr_rollWhenHit = Cvar_Get ("vr_rollWhenHit", "0", CVAR_ARCHIVE);
vr_hudYOffset = Cvar_Get ("vr_hudYOffset", "0", CVAR_ARCHIVE); vr_hudYOffset = Cvar_Get ("vr_hudYOffset", "0", CVAR_ARCHIVE);

View file

@ -65,6 +65,7 @@ typedef struct {
qboolean menuLeftHanded; qboolean menuLeftHanded;
float recenterYaw; float recenterYaw;
float superSampling;
} vr_clientinfo_t; } vr_clientinfo_t;
#endif //vr_clientinfo_h #endif //vr_clientinfo_h

View file

@ -19,11 +19,14 @@
#include <GLES3/gl32.h> #include <GLES3/gl32.h>
#endif #endif
#define DEFAULT_SUPER_SAMPLING 1.1f
extern vr_clientinfo_t vr; extern vr_clientinfo_t vr;
extern cvar_t *vr_heightAdjust; extern cvar_t *vr_heightAdjust;
XrView* projections; XrView* projections;
GLboolean stageSupported = GL_FALSE; GLboolean stageSupported = GL_FALSE;
qboolean fullscreenMode = qfalse;
void VR_UpdateStageBounds(ovrApp* pappState) { void VR_UpdateStageBounds(ovrApp* pappState) {
XrExtent2Df stageBounds = {}; XrExtent2Df stageBounds = {};
@ -77,7 +80,22 @@ void VR_GetResolution(engine_t* engine, int *pWidth, int *pHeight)
{ {
static int width = 0; static int width = 0;
static int height = 0; static int height = 0;
float superSampling = 0.0f;
float configuredSuperSampling = Cvar_VariableValue("vr_superSampling");
if (vr.superSampling == 0.0f || configuredSuperSampling != vr.superSampling) {
vr.superSampling = configuredSuperSampling;
if (vr.superSampling != 0.0f) {
Cbuf_AddText( "vid_restart\n" );
}
}
if (vr.superSampling == 0.0f) {
superSampling = DEFAULT_SUPER_SAMPLING;
} else {
superSampling = vr.superSampling;
}
if (engine) if (engine)
{ {
// Enumerate the viewport configurations. // Enumerate the viewport configurations.
@ -151,8 +169,8 @@ void VR_GetResolution(engine_t* engine, int *pWidth, int *pHeight)
free(viewportConfigurationTypes); free(viewportConfigurationTypes);
*pWidth = width = engine->appState.ViewConfigurationView[0].recommendedImageRectWidth; *pWidth = width = engine->appState.ViewConfigurationView[0].recommendedImageRectWidth * superSampling;
*pHeight = height = engine->appState.ViewConfigurationView[0].recommendedImageRectHeight; *pHeight = height = engine->appState.ViewConfigurationView[0].recommendedImageRectHeight * superSampling;
} }
else else
{ {
@ -294,8 +312,8 @@ void VR_InitRenderer( engine_t* engine ) {
ovrRenderer_Create( ovrRenderer_Create(
engine->appState.Session, engine->appState.Session,
&engine->appState.Renderer, &engine->appState.Renderer,
engine->appState.ViewConfigurationView[0].recommendedImageRectWidth, eyeW,
engine->appState.ViewConfigurationView[0].recommendedImageRectHeight); eyeH);
} }
void VR_DestroyRenderer( engine_t* engine ) void VR_DestroyRenderer( engine_t* engine )
@ -460,6 +478,11 @@ void VR_DrawFrame( engine_t* engine ) {
if (!VR_useScreenLayer() && !(cl.snap.ps.pm_flags & PMF_FOLLOW && vr.follow_mode == VRFM_FIRSTPERSON)) { if (!VR_useScreenLayer() && !(cl.snap.ps.pm_flags & PMF_FOLLOW && vr.follow_mode == VRFM_FIRSTPERSON)) {
vr.menuYaw = vr.hmdorientation[YAW]; vr.menuYaw = vr.hmdorientation[YAW];
if (fullscreenMode) {
VR_ReInitRenderer();
fullscreenMode = qfalse;
}
for (int eye = 0; eye < ovrMaxNumEyes; eye++) { for (int eye = 0; eye < ovrMaxNumEyes; eye++) {
ovrFramebuffer* frameBuffer = &engine->appState.Renderer.FrameBuffer; ovrFramebuffer* frameBuffer = &engine->appState.Renderer.FrameBuffer;
@ -488,6 +511,8 @@ void VR_DrawFrame( engine_t* engine ) {
engine->appState.Layers[engine->appState.LayerCount++].Projection = projection_layer; engine->appState.Layers[engine->appState.LayerCount++].Projection = projection_layer;
} else { } else {
fullscreenMode = qtrue;
// Build the cylinder layer // Build the cylinder layer
int width = engine->appState.Renderer.FrameBuffer.ColorSwapChain.Width; int width = engine->appState.Renderer.FrameBuffer.ColorSwapChain.Width;
int height = engine->appState.Renderer.FrameBuffer.ColorSwapChain.Height; int height = engine->appState.Renderer.FrameBuffer.ColorSwapChain.Height;

View file

@ -184,7 +184,7 @@ itemDef {
type ITEM_TYPE_MULTI type ITEM_TYPE_MULTI
text "Refresh Rate:" text "Refresh Rate:"
cvar "vr_refreshrate" cvar "vr_refreshrate"
cvarFloatList { "60" 60 "72 (Recommended)" 72 "80" 80 "90" 90 } cvarFloatList { "60" 60 "72" 72 "80" 80 "90" 90 "120" 120 }
rect 0 50 306 20 rect 0 50 306 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
@ -194,13 +194,29 @@ itemDef {
visible 0 visible 0
} }
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_MULTI
text "Supersampling:"
cvar "vr_superSampling"
cvarFloatList { "0.8" 0.8 "0.9" 0.9 "1.0" 1.0 "1.1" 1.1 "1.2" 1.2 }
rect 0 70 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
textscale .25
forecolor 1 1 1 1
visible 0
}
itemDef { itemDef {
name graphics name graphics
group grpSystem group grpSystem
type ITEM_TYPE_SLIDER type ITEM_TYPE_SLIDER
text "Brightness:" text "Brightness:"
cvarfloat "r_gamma" 0.05 0.6 1.0 cvarfloat "r_gamma" 0.05 0.6 1.0
rect 0 70 256 20 rect 0 90 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -216,7 +232,7 @@ itemDef {
text "Railgun Effect:" text "Railgun Effect:"
cvar "cg_oldRail" cvar "cg_oldRail"
cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 } cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 }
rect 0 90 256 20 rect 0 110 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -232,7 +248,7 @@ itemDef {
text "Lighting:" text "Lighting:"
cvar "r_vertexlight" cvar "r_vertexlight"
cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 } cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 }
rect 0 110 256 20 rect 0 130 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -249,7 +265,7 @@ itemDef {
text "Opponent Shadows:" text "Opponent Shadows:"
cvar "cg_shadows" cvar "cg_shadows"
cvarFloatList { "None" 0 "Low" 1 "High" 3 } cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 0 130 306 20 rect 0 150 306 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -265,7 +281,7 @@ itemDef {
text "Player Shadow:" text "Player Shadow:"
cvar "cg_playerShadow" cvar "cg_playerShadow"
cvarFloatList { "None" 0 "Low" 1 "High" 3 } cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 0 150 306 20 rect 0 170 306 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -281,7 +297,7 @@ itemDef {
text "Geometric Detail:" text "Geometric Detail:"
cvar "r_lodbias" cvar "r_lodbias"
cvarFloatList { "High" -1 "Medium" 1 "Low" 2 } cvarFloatList { "High" -1 "Medium" 1 "Low" 2 }
rect 0 170 256 20 rect 0 190 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -298,7 +314,7 @@ itemDef {
text "Texture Detail:" text "Texture Detail:"
cvar "r_picmip" cvar "r_picmip"
cvarFloatList { "Low" 2 "Normal" 1 "High" 0 } cvarFloatList { "Low" 2 "Normal" 1 "High" 0 }
rect 0 190 256 20 rect 0 210 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -314,7 +330,7 @@ itemDef {
type ITEM_TYPE_YESNO type ITEM_TYPE_YESNO
text "Compress Textures:" text "Compress Textures:"
cvar "r_ext_compressed_textures" cvar "r_ext_compressed_textures"
rect 0 210 256 20 rect 0 230 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17
@ -330,7 +346,7 @@ itemDef {
type ITEM_TYPE_YESNO type ITEM_TYPE_YESNO
text "Low Quality Sky:" text "Low Quality Sky:"
cvar "r_fastsky" cvar "r_fastsky"
rect 0 230 256 20 rect 0 250 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 133 textalignx 133
textaligny 17 textaligny 17

View file

@ -87,7 +87,7 @@ itemDef {
type ITEM_TYPE_MULTI type ITEM_TYPE_MULTI
text "Refresh Rate:" text "Refresh Rate:"
cvar "vr_refreshrate" cvar "vr_refreshrate"
cvarFloatList { "60" 60 "72 (Recommended)" 72 "80" 80 "90" 90 } cvarFloatList { "60" 60 "72" 72 "80" 80 "90" 90 "120" 120 }
rect 99 42 256 20 rect 99 42 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
@ -97,13 +97,29 @@ itemDef {
visible 0 visible 0
} }
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_MULTI
text "Supersampling:"
cvar "vr_superSampling"
cvarFloatList { "0.8" 0.8 "0.9" 0.9 "1.0" 1.0 "1.1" 1.1 "1.2" 1.2 }
rect 99 67 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
textscale .333
forecolor 1 1 1 1
visible 0
}
itemDef { itemDef {
name graphics name graphics
group grpSystem group grpSystem
type ITEM_TYPE_SLIDER type ITEM_TYPE_SLIDER
text "Brightness:" text "Brightness:"
cvarfloat "r_gamma" 0.05 0.6 1.0 cvarfloat "r_gamma" 0.05 0.6 1.0
rect 99 67 256 20 rect 99 92 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -119,7 +135,7 @@ itemDef {
text "Railgun Effect:" text "Railgun Effect:"
cvar "cg_oldRail" cvar "cg_oldRail"
cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 } cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 }
rect 99 92 256 20 rect 99 117 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -135,7 +151,7 @@ itemDef {
text "Lighting:" text "Lighting:"
cvar "r_vertexlight" cvar "r_vertexlight"
cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 } cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 }
rect 99 117 256 20 rect 99 142 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -152,7 +168,7 @@ itemDef {
text "Opponent Shadows:" text "Opponent Shadows:"
cvar "cg_shadows" cvar "cg_shadows"
cvarFloatList { "None" 0 "Low" 1 "High" 3 } cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 99 142 256 20 rect 99 167 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -168,7 +184,7 @@ itemDef {
text "Player Shadow:" text "Player Shadow:"
cvar "cg_playerShadow" cvar "cg_playerShadow"
cvarFloatList { "None" 0 "Low" 1 "High" 3 } cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 99 167 256 20 rect 99 192 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -184,7 +200,7 @@ itemDef {
text "Geometric Detail:" text "Geometric Detail:"
cvar "r_lodbias" cvar "r_lodbias"
cvarFloatList { "High" -1 "Medium" 1 "Low" 2 } cvarFloatList { "High" -1 "Medium" 1 "Low" 2 }
rect 99 192 256 20 rect 99 217 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -201,7 +217,7 @@ itemDef {
text "Texture Detail:" text "Texture Detail:"
cvar "r_picmip" cvar "r_picmip"
cvarFloatList { "Low" 2 "Normal" 1 "High" 0 } cvarFloatList { "Low" 2 "Normal" 1 "High" 0 }
rect 99 217 256 20 rect 99 242 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -217,7 +233,7 @@ itemDef {
type ITEM_TYPE_YESNO type ITEM_TYPE_YESNO
text "Compress Textures:" text "Compress Textures:"
cvar "r_ext_compressed_textures" cvar "r_ext_compressed_textures"
rect 99 242 256 20 rect 99 267 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20
@ -233,7 +249,7 @@ itemDef {
type ITEM_TYPE_YESNO type ITEM_TYPE_YESNO
text "Low Quality Sky:" text "Low Quality Sky:"
cvar "r_fastsky" cvar "r_fastsky"
rect 99 267 256 20 rect 99 292 256 20
textalign ITEM_ALIGN_RIGHT textalign ITEM_ALIGN_RIGHT
textalignx 128 textalignx 128
textaligny 20 textaligny 20