port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,375 @@
#pragma once
#include "defines.h"
#include <windows.h>
#include <mmsystem.h>
#include <d3d9.h>
#include <d3dx9math.h>
#include "VUMeter.h"
//#include "ScriptState.h"
#include "Renderjob.h"
#include "Texture.h"
#include "Shader.h"
#include "PSSM.h"
#include "Water.h"
#include "Environment.h"
#include "TerrainGrid.h"
#include "FluidContext.h"
#include "random.h"
#include "camera.h"
/////////////////////////////////////////////////////////////////////////////
// Konstanten
/////////////////////////////////////////////////////////////////////////////
extern const float c_2PI;
extern const float c_PI;
/////////////////////////////////////////////////////////////////////////////
// Globale Daten
/////////////////////////////////////////////////////////////////////////////
extern LPDIRECT3D9 g_D3D;
extern IDirect3DDevice9 *g_d3d_device;
extern D3DPRESENT_PARAMETERS d3dpp;
extern UINT g_nShadowResolution;
extern UINT g_nEnvResolution;
extern UINT g_nEnvBlurResolution;
extern float g_fResolutionFactor;
extern int g_iResolutionFactorExp;
extern D3DLIGHT9 d3dLight[3];
extern D3DMATERIAL9 d3dMaterial;
extern D3DXMATRIX g_matView;
extern D3DXMATRIX g_matProjection;
enum TextureIndices
{
TI_RotMatrix= 0,
TI_Random= 1,
TI_RandomCube= 2,
TI_Wave=3,
TI_LightSpec1D= 7,
TI_First1D= 8,
TI_White= 8,
TI_Light1D= 9,
TI_LightTest= 10,
TextureCount= 32,
TI_IgnoreSetting= -1,
TI_CLAMP= -2,
};
extern Texture g_pTextures[ TextureCount ];
enum RenderTargetIndices
{
RT_DEPTH,
RT_COLOR,
RT_AUX1,
RT_AUX2,
RT_SHADOW,
RT_REFLECTION_DEPTH,
RT_REFLECTION,
RT_CUBE_DEPTH,
RT_COUNT
};
extern IDirect3DTexture9* g_pFullScreenRT[ RT_COUNT ];
enum CubeRenderTargetIndices
{
RT_ENVCUBE,
RT_ENVCUBEINT,
RT_CUBE_COUNT
};
extern IDirect3DCubeTexture9* g_pCubeRT[RT_CUBE_COUNT];
enum RenderTargetSurfaceIndices
{
RTS_DEFAULT_DS,
RTS_DEPTH,
RTS_DEPTH_MS,
RTS_COLOR,
RTS_COLOR_MS,
RTS_AUX1,
RTS_AUX2,
RTS_SHADOW,
RTS_REFLECTION_DEPTH,
RTS_REFLECTION,
RTS_CUBE_DEPTH,
RTS_ENVCUBE1,
RTS_ENVCUBE2,
RTS_ENVCUBE3,
RTS_ENVCUBE4,
RTS_ENVCUBE5,
RTS_ENVCUBE6,
RTS_ENVCUBEINT1,
RTS_ENVCUBEINT2,
RTS_ENVCUBEINT3,
RTS_ENVCUBEINT4,
RTS_ENVCUBEINT5,
RTS_ENVCUBEINT6,
RTS_AUX_DS,
RTS_CUBE_DS,
RTS_COUNT
};
extern IDirect3DSurface9* g_pFullScreenRTS[ RTS_COUNT ];
extern unsigned int g_nFullScreenResX[ RTS_COUNT ];
extern unsigned int g_nFullScreenResY[ RTS_COUNT ];
extern SCameraDefinition g_Camera;
extern D3DXVECTOR3 g_CamFront;
extern D3DXVECTOR3 g_LightDir;
extern float g_fGlow;
extern float g_fCamTime;
extern float g_fShaderBeat;
extern SCameraDefinition g_CubeMapCamera;
extern D3DXVECTOR3 g_CubeMapLightDir;
extern PSSM g_PSSM;
extern Water g_OceanWater;
extern Environment g_Environment;
extern TerrainGrid g_IsleTerrainGrid;
extern TerrainGrid g_CaveTerrainGrid;
extern TerrainGrid g_CaveGroundTerrainGrid;
extern FluidContext g_FluidContext;
extern Fluid g_Fluid;
enum PointMapIndex
{
PMI_Spike,
PMI_Cylinder,
PMI_Greeble1,
PMI_Greeble2,
PMI_Greeble3,
PMI_Greeble4,
PMI_Count
};
enum FluidIndex
{
FI_Spike,
FI_Cylinder,
FI_Greeble1,
FI_Greeble2,
FI_Greeble3,
FI_Greeble4,
FI_Flock,
FI_Count
};
extern D3DXVECTOR4 g_FluidPointMap[PMI_Count][100000];
extern FluidParticleSystem g_FluidParticleSystem[FI_Count];
extern float g_FluidParticleSize[FI_Count];
extern float g_PointMapDistance[PMI_Count];
extern float g_StartMeltTime;
extern float g_EndMeltTime;
float TimeToFrozenObj( float fTime );
enum ObjectIndices
{
OI_Test= 0,
OI_TextFirst= 0,
OI_TextLast= 63,
OI_FlockFirst= 64,
OI_FlockLast= 127,
OI_OBJTEST= 128,
OI_OBJTEST_LAST= OI_OBJTEST + 15,
OI_CYLINDER,
OI_SPIKEBALL,
OI_GREEBLE_1,
OI_GREEBLE_2,
OI_GREEBLE_3,
OI_GREEBLE_4,
OI_ISLE_FIRST,
OI_ISLE_LAST= OI_ISLE_FIRST + 31,
OI_ISLE_BASE_FIRST,
OI_ISLE_BASE_LAST= OI_ISLE_BASE_FIRST+ 31,
OI_CAVE_FIRST,
OI_CAVE_LAST= OI_CAVE_FIRST + 1,
OI_CAVE_LIGHT_FIRST,
OI_CAVE_LIGHT_LAST= OI_CAVE_LIGHT_FIRST + 31,
OI_CAVE_GROUND_FIRST,
OI_CAVE_GROUND_LAST= OI_CAVE_GROUND_FIRST + 3,
OI_SWARM_FIRST,
OI_SWARM_LAST= OI_SWARM_FIRST + 95,
OI_MAGE,
OI_YETI1,
OI_YETI2,
OI_MAGE2,
OI_OUTRO1,
OI_OUTRO2,
OI_OUTRO3,
ObjectCount= 1024,
OI_SKY= ObjectCount,
OI_SKY_CAVE,
OI_SKY_CUBEMAP,
OI_OCEAN,
OI_FLUIDS,
SceneObjCount,
};
static const int g_ObjGroupsDesc[]=
{
0, SceneObjCount - 1,
OI_SKY, OI_SKY,
OI_SKY_CAVE, OI_SKY_CAVE,
OI_SKY_CUBEMAP, OI_SKY_CUBEMAP,
OI_OCEAN, OI_OCEAN,
OI_ISLE_FIRST, OI_ISLE_BASE_LAST,
OI_CAVE_FIRST, OI_CAVE_LIGHT_LAST,
OI_CAVE_GROUND_FIRST, OI_CAVE_GROUND_LAST,
OI_CYLINDER, OI_CYLINDER,
OI_SPIKEBALL, OI_SPIKEBALL,
OI_GREEBLE_1, OI_GREEBLE_1,
OI_GREEBLE_2, OI_GREEBLE_2,
OI_GREEBLE_3, OI_GREEBLE_3,
OI_GREEBLE_4, OI_GREEBLE_4,
OI_TextFirst, OI_TextLast,
OI_FLUIDS, OI_FLUIDS,
OI_SWARM_FIRST, OI_SWARM_LAST,
OI_MAGE, OI_YETI2,
OI_MAGE2, OI_MAGE2,
OI_OUTRO1, OI_OUTRO3,
-1
};
extern Renderjob g_Objects[ ObjectCount ];
extern Renderjob* g_pEditObject;
extern int g_ObjGroupIndex[SceneObjCount];
const int g_SceneMaskCount= 32;
#ifdef EXTRACODE
extern DWORD g_SceneMask[g_SceneMaskCount];
#else
extern DWORD g_SceneMask[];
#endif
extern Renderjob g_SkyBox;
extern Renderjob g_Ocean;
extern Renderjob g_FullScreenQuad;
const int g_iShaderCount= 64;
extern Shader g_Shaders[ g_iShaderCount ];
extern DWORD g_dwTimeReplaceStart;
extern int g_iTempo;
const int g_iSampleOffsetGeneral= 2205;
extern int g_iSampleOffset;
extern int g_dwSamplesPassed;
extern int g_dwSamples;
extern SVUMeter g_vuBaseDrum;
extern SVUMeter g_vuSnare;
extern RandomGenerator g_Random;
enum ShaderIndices
{
PreDepth,
PSSM_Proj,
SSAO,
SSAO_BlurH,
SSAO_BlurV,
DOF_Intensity,
DOF,
BlurBilH,
BlurBilV,
Underwater,
Underwater_Filter,
Ray_Mask,
Ray_Extrude,
BlurH,
BlurV,
Extract_InvAlpha,
Phong,
Sky,
CaveSky,
EnvSky,
SkyDepth,
Text,
EnvLit,
Crystal,
Ocean,
Terrain,
Cave,
CaveGround,
TerrainDepth,
FluidDepth,
FluidPosition,
FluidNormal,
FluidBlur,
FluidCompose,
TexGen_Perlin,
TexGen_Wave,
TexGen_Normal,
TexGen_CubeBlur,
Overlay_Logo,
Overlay_Fade
};
#ifdef EXTRACODE
extern char g_ShaderVSGeneral[ 65536 ];
extern char g_ShaderPSPhong[ 65536 ];
extern char g_ShaderPSCrystal[ 65536 ];
extern char g_ShaderPSDepth[ 65536 ];
extern char g_ShaderPSText[ 65536 ];
extern char g_ShaderPSEnvLit[ 65536 ];
extern char g_ShaderVSSky[ 65536 ];
extern char g_ShaderPSSky[ 65536 ];
extern char g_ShaderVSOcean[ 65536 ];
extern char g_ShaderPSOcean[ 65536 ];
extern char g_ShaderVSFSQuad[ 65536 ];
extern char g_ShaderPSTexGen[ 65536 ];
extern char g_ShaderPSPSSM[ 65536 ];
extern char g_ShaderPSAmbOcc[ 65536 ];
extern char g_ShaderPSDOF[ 65536 ];
extern char g_ShaderPSRay[ 65536 ];
extern char g_ShaderPSBlur[ 65536 ];
extern char g_ShaderPSTerrain[ 65536 ];
extern char g_ShaderVSFluid[ 65536 ];
extern char g_ShaderPSFluid[ 65536 ];
#else
#include "shaderdata.h"
#endif
void InitGlobals();
bool IsObjInScene( ObjectIndices oi );