188 lines
6.4 KiB
C++
188 lines
6.4 KiB
C++
#include "globals.h"
|
|
|
|
LPDIRECT3D9 g_D3D;
|
|
IDirect3DDevice9 *g_d3d_device;
|
|
|
|
D3DPRESENT_PARAMETERS d3dpp=
|
|
{
|
|
1024,//UINT BackBufferWidth;
|
|
768,//UINT BackBufferHeight;
|
|
D3DFMT_A8R8G8B8,//D3DFORMAT BackBufferFormat;
|
|
2,//UINT BackBufferCount;
|
|
|
|
D3DMULTISAMPLE_16_SAMPLES,//D3DMULTISAMPLE_TYPE MultiSampleType;
|
|
0,//DWORD MultiSampleQuality;
|
|
|
|
D3DSWAPEFFECT_DISCARD,//D3DSWAPEFFECT SwapEffect;
|
|
0,//HWND hDeviceWindow;
|
|
FALSE,//BOOL Windowed;
|
|
TRUE,//BOOL EnableAutoDepthStencil;
|
|
D3DFMT_D24S8,//D3DFORMAT AutoDepthStencilFormat;
|
|
0,//DWORD Flags;
|
|
|
|
/* FullScreen_RefreshRateInHz must be zero for Windowed mode */
|
|
0,//UINT FullScreen_RefreshRateInHz;
|
|
D3DPRESENT_INTERVAL_ONE, //UINT PresentationInterval;
|
|
};
|
|
UINT g_nShadowResolution = 1024;
|
|
float g_fResolutionFactor = 1.0f;
|
|
int g_iResolutionFactorExp = 0;
|
|
|
|
D3DLIGHT9 d3dLight[3]=
|
|
{
|
|
{
|
|
D3DLIGHT_POINT,// D3DLIGHTTYPE Type; /* Type of light source */
|
|
{ 1.0f, 1.0f, 0.85f, 0.0f },// D3DCOLORVALUE Diffuse; /* Diffuse color of light */
|
|
{ 1.0f, 1.0f, 1.0f, 0.0f },// D3DCOLORVALUE Specular; /* Specular color of light */
|
|
{ 0.0625f, 0.0625f, 0.0625f, 0.0f },// D3DCOLORVALUE Ambient; /* Ambient color of light */
|
|
{ 48.0f, 96.0f, -48.0f },// D3DVECTOR Position; /* Position in world space */
|
|
{ 0.0f, 0.0f, 0.0f },// D3DVECTOR Direction; /* Direction in world space */
|
|
1024.0f, //float Range; /* Cutoff range */
|
|
0.0f, //float Falloff; /* Falloff */
|
|
1.0f / 4096.0f, //float Attenuation0; /* Constant attenuation */
|
|
1.0f / 4096.0f, //float Attenuation1; /* Linear attenuation */
|
|
1.0f / 4096.0f, //float Attenuation2; /* Quadratic attenuation */
|
|
0.0f, //float Theta; /* Inner angle of spotlight cone */
|
|
0.0f, //float Phi; /* Outer angle of spotlight cone */
|
|
},
|
|
{
|
|
D3DLIGHT_POINT,// D3DLIGHTTYPE Type; /* Type of light source */
|
|
{ 0.6f, 0.6f, 0.8f, 0.0f },// D3DCOLORVALUE Diffuse; /* Diffuse color of light */
|
|
{ 0.0f, 0.0f, 0.0f, 0.0f },// D3DCOLORVALUE Specular; /* Specular color of light */
|
|
{ 0.0f, 0.0f, 0.0f, 0.0f },// D3DCOLORVALUE Ambient; /* Ambient color of light */
|
|
{ -16.0f, -32.0f, 64.0f },// D3DVECTOR Position; /* Position in world space */
|
|
{ 0.0f, 0.0f, 0.0f },// D3DVECTOR Direction; /* Direction in world space */
|
|
1024.0f, //float Range; /* Cutoff range */
|
|
0.0f, //float Falloff; /* Falloff */
|
|
1.0f / 4096.0f, //float Attenuation0; /* Constant attenuation */
|
|
1.0f / 4096.0f, //float Attenuation1; /* Linear attenuation */
|
|
1.0f / 4096.0f, //float Attenuation2; /* Quadratic attenuation */
|
|
0.0f, //float Theta; /* Inner angle of spotlight cone */
|
|
0.0f, //float Phi; /* Outer angle of spotlight cone */
|
|
},
|
|
|
|
{
|
|
D3DLIGHT_POINT,// D3DLIGHTTYPE Type; /* Type of light source */
|
|
{ 141.0f / 255.0f, 122.0f / 255.0f, 57.0f / 255.0f, 0.0f },// D3DCOLORVALUE Diffuse; /* Diffuse color of light */
|
|
{ 205.0f / 255.0f, 186.0f / 255.0f, 121.0f / 255.0f, 0.0f },// D3DCOLORVALUE Specular; /* Specular color of light */
|
|
{ 0.0f, 0.0f, 0.0f, 0.0f },// D3DCOLORVALUE Ambient; /* Ambient color of light */
|
|
{ -48.0f, 64.0f, 48.0f },// D3DVECTOR Position; /* Position in world space */
|
|
{ 0.0f, 0.0f, 0.0f },// D3DVECTOR Direction; /* Direction in world space */
|
|
1024.0f, //float Range; /* Cutoff range */
|
|
0.0f, //float Falloff; /* Falloff */
|
|
1.0f / 4096.0f, //float Attenuation0; /* Constant attenuation */
|
|
1.0f / 4096.0f, //float Attenuation1; /* Linear attenuation */
|
|
1.0f / 4096.0f, //float Attenuation2; /* Quadratic attenuation */
|
|
0.0f, //float Theta; /* Inner angle of spotlight cone */
|
|
0.0f, //float Phi; /* Outer angle of spotlight cone */
|
|
}
|
|
};
|
|
|
|
D3DMATERIAL9 d3dMaterial=
|
|
{
|
|
{ 1.0f, 1.0f, 1.0f, 1.0f },// D3DCOLORVALUE Diffuse; /* Diffuse color RGBA */
|
|
{ 1.0f, 1.0f, 1.0f, 1.0f },// D3DCOLORVALUE Ambient; /* Ambient color RGB */
|
|
{ 1.0f, 1.0f, 1.0f, 0.0f },// Specular; /* Specular 'shininess' */
|
|
{ 0.0f, 0.0f, 0.0f, 0.0f },// Emissive; /* Emissive color RGB */
|
|
32.0f //float Power; /* Sharpness if specular highlight */
|
|
};
|
|
|
|
D3DXMATRIX g_matView;
|
|
|
|
D3DXMATRIX g_matProjection;
|
|
|
|
D3DXMATRIX g_matVP;
|
|
|
|
D3DXMATRIX g_matWVP;
|
|
|
|
Texture g_pTextures[ TextureCount ];
|
|
|
|
IDirect3DTexture9* g_pFullScreenRT[ RT_COUNT ];
|
|
IDirect3DSurface9* g_pFullScreenRTS[ RTS_COUNT ];
|
|
|
|
SCameraDefinition g_Camera;
|
|
D3DXVECTOR3 g_CamFront;
|
|
|
|
D3DXVECTOR3 g_LightDir;
|
|
float g_fGlow;
|
|
float g_fClouds;
|
|
float g_fPlasmaGrid;
|
|
|
|
PSSM g_PSSM;
|
|
|
|
Renderjob g_Objects[ ObjectCount ];
|
|
Renderjob* g_pEditObject;
|
|
|
|
Renderjob g_SkyBox;
|
|
Renderjob g_FullScreenQuad;
|
|
|
|
Shader g_Shaders[ g_iShaderCount ];
|
|
|
|
#ifndef STARTMUSIC
|
|
DWORD g_dwTimeReplaceStart;
|
|
#endif
|
|
|
|
int g_iTempo= ( 44100 * 60 * 2 ) / 145;
|
|
int g_iSampleOffset= g_iSampleOffsetGeneral;
|
|
|
|
int g_dwSamplesPassed= 0;
|
|
int g_dwSamples= 0;
|
|
|
|
SVUMeter g_vuLightBeat;
|
|
SVUMeter g_vuOffBeat;
|
|
|
|
//ScriptState g_ScriptState;
|
|
|
|
RandomGenerator g_Random;
|
|
|
|
#ifdef EXTRACODE
|
|
unsigned char g_Script[ 2048 ];
|
|
float g_ScriptParamFloat[ 512 ];
|
|
#endif
|
|
|
|
#ifdef EXTRACODE
|
|
char g_ShaderVSGeneral[ 65536 ];
|
|
char g_ShaderPSPhong[ 65536 ];
|
|
char g_ShaderPSRainbow[ 65536 ];
|
|
char g_ShaderPSTarmac[ 65536 ];
|
|
char g_ShaderPSGrass[ 65536 ];
|
|
char g_ShaderPSWall[ 65536 ];
|
|
char g_ShaderPSDepth[ 65536 ];
|
|
char g_ShaderPSText[ 65536 ];
|
|
|
|
char g_ShaderVSSky[ 65536 ];
|
|
char g_ShaderPSSky[ 65536 ];
|
|
|
|
char g_ShaderVSFSQuad[ 65536 ];
|
|
char g_ShaderPSPSSM[ 65536 ];
|
|
char g_ShaderPSAmbOcc[ 65536 ];
|
|
char g_ShaderPSDOF[ 65536 ];
|
|
char g_ShaderPSRay[ 65536 ];
|
|
char g_ShaderPSBlur[ 65536 ];
|
|
#endif
|
|
|
|
|
|
void InitGlobals()
|
|
{
|
|
for( int i= 0; i < TextureCount; ++i )
|
|
{
|
|
g_pTextures[ i ].Init();
|
|
}
|
|
|
|
for( int i= 0; i < ObjectCount; i++ )
|
|
{
|
|
g_Objects[ i ].Init();
|
|
}
|
|
g_SkyBox.Init();
|
|
g_FullScreenQuad.Init();
|
|
g_PSSM.Init();
|
|
|
|
for( int i= 0; i < g_iShaderCount; i++ )
|
|
{
|
|
g_Shaders[ i ].Init();
|
|
}
|
|
|
|
g_Random.setSeed( 0 );
|
|
|
|
}
|