#define float2 vec2
#define float3 vec3
#define float4 vec4
#define float4x4 mat4
#define float3x3 mat3
#define float2x2 mat2

#define fdAttrPosLoc        0
#define fdAttrUVLoc         1
#define fdAttrColLoc        2


#define attrPosLoc          0
#define attrNormLoc         1
#define attrTangLoc         4
#define attrColLoc          3
#define attrUV0Loc          2
#define attrUV1Loc          7
#define attrBoneIndicesLoc  5
#define attrBoneWeightsLoc  6

#define VSCB0Index  0
#define VSCB1Index  1
#define VSCB2Index  2
#define VSCB3Index  3
#define VSCB4Index  4
#define VSCB5Index  5
#define VSCB6Index  6
#define VSCB7Index  7
#define PSCB0Index  8
#define PSCB1Index  9
#define PSCB2Index  10
#define PSCB3Index  11
#define PSCB4Index  12
#define PSCB5Index  13
#define PSCB6Index  14
#define PSCB7Index  15
#define HSCB0Index  16
#define HSCB1Index  17
#define HSCB2Index  18
#define HSCB3Index  19
#define DSCB0Index  20
#define DSCB1Index  21
#define DSCB2Index  22
#define DSCB3Index  23

#define PSSRV0Index 0
#define PSSRV1Index 1
#define PSSRV2Index 2
#define PSSRV3Index 3
#define PSSRV4Index 4
#define PSSRV5Index 5
#define PSSRV6Index 6
#define PSSRV7Index 7
#define PSSRV8Index 8
#define PSSRV9Index 9
#define PSSRV10Index 10
#define PSSRV11Index 11
#define PSSRV12Index 12
#define PSSRV13Index 13
#define PSSRV14Index 14
#define PSSRV15Index 15

#define HSSRV0Index 16
#define HSSRV1Index 17
#define HSSRV2Index 18
#define HSSRV3Index 19
#define HSSRV4Index 20
#define HSSRV5Index 21
#define HSSRV6Index 22
#define HSSRV7Index 23

#define DSSRV0Index 24
#define DSSRV1Index 25
#define DSSRV2Index 26
#define DSSRV3Index 27
#define DSSRV4Index 28
#define DSSRV5Index 29
#define DSSRV6Index 30
#define DSSRV7Index 31

#define PSUAVImage0Index  0
#define PSUAVImage1Index  1
#define PSUAVImage2Index  2
#define PSUAVImage3Index  3
#define PSUAVImage4Index  4
#define PSUAVImage5Index  5
#define PSUAVImage6Index  6
#define PSUAVImage7Index  7

#define DSUAVImage0Index  8
#define DSUAVImage1Index  9
#define DSUAVImage2Index  10
#define DSUAVImage3Index  11
#define DSUAVImage4Index  12
#define DSUAVImage5Index  13
#define DSUAVImage6Index  14
#define DSUAVImage7Index  15

#define HSUAVImage0Index  16
#define HSUAVImage1Index  17
#define HSUAVImage2Index  18
#define HSUAVImage3Index  19
#define HSUAVImage4Index  20
#define HSUAVImage5Index  21
#define HSUAVImage6Index  22
#define HSUAVImage7Index  23

#define VSUAVImage0Index  24
#define VSUAVImage1Index  25
#define VSUAVImage2Index  26
#define VSUAVImage3Index  27
#define VSUAVImage4Index  28
#define VSUAVImage5Index  29
#define VSUAVImage6Index  30
#define VSUAVImage7Index  31


#define saturate( x )   clamp( x, 0.f, 1.f )
#define lerp( x, y, a ) mix( x, y, a )
#define clip( x )       if( x <= 0 ) discard
#define frac( x )       fract( x )

#define half float
#define half2 float2
#define half3 float3
#define half4 float4
