//===== Copyright © 2005-2008, Valve Corporation, All rights reserved. ======// // // //===========================================================================// #ifndef VIDEOCFG_H #define VIDEOCFG_H #if defined( _WIN32 ) #pragma once #endif #include "tier1/utlvector.h" #include "shaderapi/IShaderDevice.h" class KeyValues; enum ConsoleSystemLevel_t { CONSOLE_SYSTEM_LEVEL_360 = 360, CONSOLE_SYSTEM_LEVEL_PS3 = 361 }; struct VidMatConfigData_t { char szFileName[MAX_PATH]; char szPathID[64]; KeyValues *pConfigKeys; int nVendorID; int nDeviceID; int nDXLevel; unsigned int nSystemMemory; unsigned int nVideoMemory; int nPhysicalScreenWidth; int nPhysicalScreenHeight; CUtlVector< ShaderDisplayMode_t > displayModes; bool bIsVideo; }; enum CPULevel_t { CPU_LEVEL_UNKNOWN = -1, CPU_LEVEL_LOW = 0, CPU_LEVEL_MEDIUM, CPU_LEVEL_HIGH, CPU_LEVEL_PC_COUNT, CPU_LEVEL_360 = CPU_LEVEL_PC_COUNT, CPU_LEVEL_PS3 = CPU_LEVEL_360 + 1, CPU_LEVEL_COUNT, CPU_LEVEL_BIT_COUNT = 3, }; enum GPULevel_t { GPU_LEVEL_UNKNOWN = -1, GPU_LEVEL_LOW = 0, GPU_LEVEL_MEDIUM, GPU_LEVEL_HIGH, GPU_LEVEL_VERYHIGH, GPU_LEVEL_PC_COUNT, GPU_LEVEL_360 = GPU_LEVEL_PC_COUNT, GPU_LEVEL_PS3 = GPU_LEVEL_360 + 1, GPU_LEVEL_COUNT, GPU_LEVEL_BIT_COUNT = 3, }; enum MemLevel_t { MEM_LEVEL_UNKNOWN = -1, MEM_LEVEL_LOW = 0, MEM_LEVEL_MEDIUM, MEM_LEVEL_HIGH, MEM_LEVEL_PC_COUNT, MEM_LEVEL_360 = MEM_LEVEL_PC_COUNT, MEM_LEVEL_PS3 = MEM_LEVEL_360 + 1, MEM_LEVEL_COUNT, MEM_LEVEL_BIT_COUNT = 3, }; enum GPUMemLevel_t { GPU_MEM_LEVEL_UNKNOWN = -1, GPU_MEM_LEVEL_LOW = 0, GPU_MEM_LEVEL_MEDIUM, GPU_MEM_LEVEL_HIGH, GPU_MEM_LEVEL_PC_COUNT, GPU_MEM_LEVEL_360 = GPU_MEM_LEVEL_PC_COUNT, GPU_MEM_LEVEL_PS3 = GPU_MEM_LEVEL_360 + 1, GPU_MEM_LEVEL_COUNT, GPU_MEM_LEVEL_BIT_COUNT = 3, }; bool RecommendedConfig( VidMatConfigData_t &configData ); bool ResetVideoConfigToDefaults( KeyValues *pConfigKeys = NULL ); bool UpdateVideoConfigConVars( KeyValues *pConfigKeys = NULL ); bool ReadCurrentVideoConfig( KeyValues *pConfigKeys, bool bDefault = false ); bool UpdateCurrentVideoConfig( int nWidth, int nHeight, int nAspectRatioMode, bool bFullscreen, bool bNoWindowBorder, bool bUseRestartConvars = false ); void UpdateSystemLevel( int nCPULevel, int nGPULevel, int nMemLevel, int nGPUMemLevel, bool bVGUIIsSplitscreen, const char *pModName ); #endif // VIDEOCFG_H