/* ** Command & Conquer Generals(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ //////////////////////////////////////////////////////////////////////////////// // // // (c) 2001-2003 Electronic Arts Inc. // // // //////////////////////////////////////////////////////////////////////////////// // FILE: GameLOD.h /////////////////////////////////////////////////////////// // // Used to set detail levels of various game systems. // // Author: Mark Wilczynski, Sept 2002 // // /////////////////////////////////////////////////////////////////////////////// #pragma once #ifndef _GAME_LOD_H_ #define _GAME_LOD_H_ enum ParticlePriorityType; #define MAX_LOD_PRESETS_PER_LEVEL 32 //number of hardware configs preset for each low,medium,high #define MAX_BENCH_PROFILES 16 //Make sure this enum stays in sync with GameLODNames[] enum StaticGameLODLevel { STATIC_GAME_LOD_UNKNOWN=-1, STATIC_GAME_LOD_LOW, STATIC_GAME_LOD_MEDIUM, STATIC_GAME_LOD_HIGH, STATIC_GAME_LOD_CUSTOM, //make sure this remains last! STATIC_GAME_LOD_COUNT }; enum DynamicGameLODLevel { DYNAMIC_GAME_LOD_UNKNOWN=-1, DYNAMIC_GAME_LOD_LOW, DYNAMIC_GAME_LOD_MEDIUM, DYNAMIC_GAME_LOD_HIGH, DYNAMIC_GAME_LOD_VERY_HIGH, DYNAMIC_GAME_LOD_COUNT }; //Make sure this stays in sync with CPUNames[] in gamelod.cpp enum CpuType { XX, //unknown type P3, P4, K7, }; //Keep this in sync with VideoNames in Gamelod.cpp enum ChipsetType { DC_UNKNOWN, DC_VOODOO2, DC_VOODOO3, DC_VOODOO4, DC_VOODOO5, DC_TNT, DC_TNT2, DC_GEFORCE2, DC_RADEON, DC_GENERIC_PIXEL_SHADER_1_1, DC_GEFORCE3, DC_GEFORCE4, DC_GENERIC_PIXEL_SHADER_1_4, DC_RADEON_8500, DC_GENERIC_PIXEL_SHADER_2_0, DC_RADEON_9700, DC_MAX }; struct StaticGameLODInfo { StaticGameLODInfo(); //Static LOD constants Int m_minFPS; ///< minimum fps in order to recommend this LOD. Int m_minProcessorFPS; ///< minimum CPU time (in ms) to recommend this LOD. Int m_sampleCount2D; ///