1Texture2D txDiffuseA : register( t0 );
2Texture2D txDiffuseB : register( t1 );
3
4SamplerState samLinearA : register( s0 );
5SamplerState samLinearB : register( s1 );
6
7cbuffer cbNeverChanges : register( b0 )
8{
9    matrix View;
10};
11
12cbuffer cbChangeOnResize : register( b1 )
13{
14    matrix Projection;
15};
16
17cbuffer cbChangesEveryFrame : register( b2 )
18{
19    matrix World;
20    float4 vMeshColor;
21};
22
23
24struct VS_INPUT
25{
26    float4 Pos : POSITION;
27    float2 Tex : TEXCOORD0;
28};
29
30struct PS_INPUT
31{
32    float4 Pos : SV_POSITION;
33    float2 Tex : TEXCOORD0;
34};
35
36
37float4 main( PS_INPUT input) : SV_Target
38{
39    PS_INPUT output = (PS_INPUT)0;
40    output.Pos = mul( input.Pos, World );
41    output.Pos = mul( output.Pos, View );
42    output.Pos = mul( output.Pos, Projection );
43    output.Tex = input.Tex;
44    return txDiffuseA.Sample( samLinearA, output.Tex ) * vMeshColor;
45}
46