/////////////////////////////////////////////////////////////////////////////
// DirectX : High Level Shading Language
/////////////////////////////////////////////////////////////////////////////
#ifndef HLSL
#define HLSL

/////////////////////////////////////////////////////////////////////////////
// Type Definitions
/////////////////////////////////////////////////////////////////////////////
typedef float2 vec2;
typedef float3 vec3;
typedef float4 vec4;
typedef float4x4 mat4;
typedef float3x3 mat3;
typedef samplerCUBE samplerCube;

/////////////////////////////////////////////////////////////////////////////
// Uniforms
/////////////////////////////////////////////////////////////////////////////

// Matrices
mat4 mj_ModelViewMatrix;
mat4 mj_ModelViewProjMatrix;
mat4 mj_NormalMatrix;

mat4 mj_TextureMatrix0;
mat4 mj_TextureMatrix1;
mat4 mj_TextureMatrix2;
mat4 mj_TextureMatrix3;
mat4 mj_TextureMatrix4;
mat4 mj_TextureMatrix5;
mat4 mj_TextureMatrix6;
mat4 mj_TextureMatrix7;

vec2 mj_TextureDims0;
vec2 mj_TextureDims1;
vec2 mj_TextureDims2;
vec2 mj_TextureDims3;
vec2 mj_TextureDims4;
vec2 mj_TextureDims5;
vec2 mj_TextureDims6;
vec2 mj_TextureDims7;

// Lights
vec4 mj_Light_Position;
vec4 mj_Light_ColorAmbient;
vec4 mj_Light_ColorDiffuse;
vec4 mj_Light_ColorSpecular;


uniform float mj_Light_AttenConstant;
uniform float mj_Light_AttenLinear;
uniform float mj_Light_AttenQuadratic;

uniform vec4  mj_Light_SpotDirection;
uniform float mj_Light_SpotCosCutoff;
uniform float mj_Light_SpotExponent;

// Material
uniform float mj_ColorHighlights;
uniform float mj_Bumpiness;


#endif // HLSL