Richard Boegli's CnC_Generals_Zero_Hour Fork
WIP
This is documentation of Richard Boegil's Zero Hour Fork
Loading...
Searching...
No Matches
predlod.h
Go to the documentation of this file.
1
/*
2
** Command & Conquer Generals Zero Hour(tm)
3
** Copyright 2025 Electronic Arts Inc.
4
**
5
** This program is free software: you can redistribute it and/or modify
6
** it under the terms of the GNU General Public License as published by
7
** the Free Software Foundation, either version 3 of the License, or
8
** (at your option) any later version.
9
**
10
** This program is distributed in the hope that it will be useful,
11
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
** GNU General Public License for more details.
14
**
15
** You should have received a copy of the GNU General Public License
16
** along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
/***************************************************************************
20
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
21
***************************************************************************
22
* *
23
* Project Name : G *
24
* *
25
* $Archive:: /Commando/Code/ww3d2/predlod.h $*
26
* *
27
* $Author:: Jani_p $*
28
* *
29
* $Modtime:: 9/20/01 10:10a $*
30
* *
31
* $Revision:: 3 $*
32
* *
33
*-------------------------------------------------------------------------*
34
* Functions: *
35
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
36
37
#if defined(_MSC_VER)
38
#pragma once
39
#endif
40
41
#ifndef PREDLOD_H
42
#define PREDLOD_H
43
44
// This file contains the classes which support predictive LOD management
45
// similar to that outlined in "Adaptive Display Algorithm for Interactive
46
// Frame Rates During Visualization of Complex Virtual Environments",
47
// Thomas Funkhouser & Carlo Sequin, SIGGRAPH '93 Proceedings, pp. 247-253.
48
// To this "pure predictive" LOD we have added distance (actually screensize)
49
// clamping to control quality degradation.
50
51
#include "
rendobj.h
"
52
#include "float.h"
53
#include "vector.h"
54
55
class
LODHeapNode
;
56
57
/*
58
** PredictiveLODOptimizerClass: Class which performs the predictive LOD
59
** optimization. All the members of this class are static.
60
*/
61
class
PredictiveLODOptimizerClass
{
62
63
public
:
64
65
static
void
Clear
(
void
);
66
static
void
Add_Object
(
RenderObjClass
*robj);
67
static
void
Add_Cost
(
float
cost) { TotalCost += cost; }
68
static
void
Optimize_LODs
(
float
max_cost);
69
static
float
Get_Total_Cost
(
void
) {
return
TotalCost; }
70
static
void
Free
(
void
);
// frees all memory
71
72
private
:
73
static
void
AllocVisibleObjArrays(
int
num_objects);
74
75
static
RenderObjClass
** ObjectArray;
76
static
int
ArraySize;
77
static
int
NumObjects;
78
static
float
TotalCost;
79
80
static
LODHeapNode
*VisibleObjArray1;
81
static
LODHeapNode
*VisibleObjArray2;
82
static
int
VisibleObjArraySize;
83
84
};
85
86
#endif
LODHeapNode
Definition
predlod.cpp:58
PredictiveLODOptimizerClass
Definition
predlod.h:61
PredictiveLODOptimizerClass::Clear
static void Clear(void)
Definition
predlod.cpp:197
PredictiveLODOptimizerClass::Add_Object
static void Add_Object(RenderObjClass *robj)
Definition
predlod.cpp:226
PredictiveLODOptimizerClass::Get_Total_Cost
static float Get_Total_Cost(void)
Definition
predlod.h:69
PredictiveLODOptimizerClass::Optimize_LODs
static void Optimize_LODs(float max_cost)
Definition
predlod.cpp:277
PredictiveLODOptimizerClass::Free
static void Free(void)
Definition
predlod.cpp:380
PredictiveLODOptimizerClass::Add_Cost
static void Add_Cost(float cost)
Definition
predlod.h:67
RenderObjClass
Definition
rendobj.h:173
rendobj.h
Code
Libraries
Source
WWVegas
WW3D2
predlod.h
Generated by
1.13.2