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