private void Cmd_ExecMachineSpec(object sender, CommandEventArgs e)
{
switch(idE.CvarSystem.GetInteger("com_machineSpec"))
{
case 3:
SetUltraHighQuality();
break;
case 2:
SetHighQuality();
break;
case 1:
SetMediumQuality();
break;
default:
SetLowQuality();
break;
}
if(idE.Platform.TotalVideoMemory < 128)
{
idE.CvarSystem.SetBool("image_ignoreHighQuality", true, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSize", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeLimit", 256, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeSpecular", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeSpecularLimit", 64, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeBump", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeBumpLimit", 256, CvarFlags.Archive);
}
if(idE.Platform.TotalVideoMemory < 512)
{
idE.CvarSystem.SetBool("image_ignoreHighQuality", true, CvarFlags.Archive);
idE.CvarSystem.SetInteger("s_maxSoundsPerShader", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSize", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeLimit", 256, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeSpecular", 1, CvarFlags.Archive);
idE.CvarSystem.SetInteger("image_downSizeSpecularLimit", 64, CvarFlags.Archive);
idE.CvarSystem.SetBool("com_purgeAll", true, CvarFlags.Archive);
idE.CvarSystem.SetBool("r_forceLoadImages", true, CvarFlags.Archive);
}
else
{
idE.CvarSystem.SetBool("com_purgeAll", false, CvarFlags.Archive);
idE.CvarSystem.SetBool("r_forceLoadImages", false, CvarFlags.Archive);
}
// TODO
/*bool oldCard = false;
bool nv10or20 = false;
renderSystem->GetCardCaps( oldCard, nv10or20 );
if ( oldCard ) {
cvarSystem->SetCVarBool( "g_decals", false, CVAR_ARCHIVE );
cvarSystem->SetCVarBool( "g_projectileLights", false, CVAR_ARCHIVE );
cvarSystem->SetCVarBool( "g_doubleVision", false, CVAR_ARCHIVE );
cvarSystem->SetCVarBool( "g_muzzleFlash", false, CVAR_ARCHIVE );
} else {*/
idE.CvarSystem.SetBool("g_decals", true, CvarFlags.Archive);
idE.CvarSystem.SetBool("g_projectileLights", true, CvarFlags.Archive);
idE.CvarSystem.SetBool("g_doubleVision", true, CvarFlags.Archive);
idE.CvarSystem.SetBool("g_muzzleFlash", true, CvarFlags.Archive);
/*}
if ( nv10or20 ) {*/
idE.CvarSystem.SetInteger("image_useNormalCompression", 1, CvarFlags.Archive);
/*}*/
#if MACOS_X
// TODO MACOS
// On low settings, G4 systems & 64MB FX5200/NV34 Systems should default shadows off
bool oldArch;
int vendorId, deviceId, cpuId;
OSX_GetVideoCard( vendorId, deviceId );
OSX_GetCPUIdentification( cpuId, oldArch );
bool isFX5200 = vendorId == 0x10DE && ( deviceId & 0x0FF0 ) == 0x0320;
if ( ( oldArch || ( isFX5200 && Sys_GetVideoRam() < 128 ) ) && com_machineSpec.GetInteger() == 0 ) {
cvarSystem->SetCVarBool( "r_shadows", false, CVAR_ARCHIVE );
} else {
cvarSystem->SetCVarBool( "r_shadows", true, CVAR_ARCHIVE );
}
#endif
}
#endregion