//Setup the shared lights properties
//Global ambient
shared float4 LightGlobalAmbient : LIGHTGLOBALAMBIENT;

struct PS20_LIGHT_STRUCT
{
	float4 Diffuse;
	float3 Position;
	float3 Attenuation;
};
shared PS20_LIGHT_STRUCT PS20_Light0 : PS20_LIGHT0;
shared PS20_LIGHT_STRUCT PS20_Light1 : PS20_LIGHT1;
shared PS20_LIGHT_STRUCT PS20_Light2 : PS20_LIGHT2;

struct PS14_LIGHT_STRUCT
{
	float4 Diffuse;
	float3 Position;
	float2 Attenuation;
};
shared PS14_LIGHT_STRUCT PS14_Light0 : PS14_LIGHT0;
shared PS14_LIGHT_STRUCT PS14_Light1 : PS14_LIGHT1;
shared PS14_LIGHT_STRUCT PS14_Light2 : PS14_LIGHT2;

shared int NumLights : NUMBER_OF_ENABLED_LIGHTS;

//Setup the shared material properties
shared float4 materialAmbient : MATERIALAMBIENT;
shared float4 materialDiffuse : MATERIALDIFFUSE;
shared float4 materialSpecular : MATERIALSPECULAR;
shared float materialPower : MATERIALPOWER;

//Setup the shared transformations
shared float4x4 World        : WORLD;
shared float4x4 View        : VIEW;
shared float4x4 Projection    : PROJECTION;
shared float4x4 WorldView    : WORLDVIEW;
shared float4x4 ViewProjection    : VIEWPROJECTION;
shared float4x4 WorldViewProjection    : WORLDVIEWPROJECTION;
shared float4x4 TangentSpace    : TANGENTSPACE;

//Setup the shared textures
shared texture NormalMap : NORMALMAP;
shared texture DiffuseMap : DIFFUSEMAP;
shared texture HeightMap : HEIGHTMAP;
shared texture GlossMap : GLOSSMAP;

//Setup other shared properties
shared float4 cameraPosition : CAMERAPOSITION;
shared float time : TIME;
shared float meshradius : MESHRADIUS;
shared float special : SPECIAL;
shared float tiled : TILED;
shared float textureWidth : TEXTUREWIDTH;
shared float textureHeight : TEXTUREHEIGHT;