/*
** 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; ///