summaryrefslogtreecommitdiffstats
path: root/tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx')
-rw-r--r--tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx b/tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx
new file mode 100644
index 000000000..04a395588
--- /dev/null
+++ b/tests/hlsl/dxsdk/Direct3D11TutorialsDXUT/Tutorial09/Tutorial09.fx
@@ -0,0 +1,69 @@
+//TEST_IGNORE_FILE: Currently failing due to Spire compiler issues.
+//TEST:COMPARE_HLSL: -target dxbc-assembly -profile vs_4_0 -entry VS -profile ps_4_0 -entry PS
+//--------------------------------------------------------------------------------------
+// File: Tutorial09.fx
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//--------------------------------------------------------------------------------------
+
+//--------------------------------------------------------------------------------------
+// Constant Buffer Variables
+//--------------------------------------------------------------------------------------
+Texture2D txDiffuse : register( t0 );
+SamplerState samLinear : register( s0 );
+
+cbuffer cbNeverChanges : register( b0 )
+{
+ float3 vLightDir;
+};
+
+cbuffer cbChangesEveryFrame : register( b1 )
+{
+ matrix WorldViewProj;
+ matrix World;
+};
+
+struct VS_INPUT
+{
+ float3 Pos : POSITION; //position
+ float3 Norm : NORMAL; //normal
+ float2 Tex : TEXCOORD0; //texture coordinate
+};
+
+struct PS_INPUT
+{
+ float4 Pos : SV_POSITION;
+ float4 Diffuse : COLOR0;
+ float2 Tex : TEXCOORD1;
+};
+
+
+//--------------------------------------------------------------------------------------
+// Vertex Shader
+//--------------------------------------------------------------------------------------
+PS_INPUT VS( VS_INPUT input )
+{
+ PS_INPUT output = (PS_INPUT)0;
+ output.Pos = mul( float4(input.Pos,1), WorldViewProj );
+ float3 vNormalWorldSpace = normalize( mul( input.Norm, (float3x3)World ) );
+
+ float fLighting = saturate( dot( vNormalWorldSpace, vLightDir ) );
+ output.Diffuse.rgb = fLighting;
+ output.Diffuse.a = 1.0f;
+
+ output.Tex = input.Tex;
+
+ return output;
+}
+
+
+//--------------------------------------------------------------------------------------
+// Pixel Shader
+//--------------------------------------------------------------------------------------
+float4 PS( PS_INPUT input) : SV_Target
+{
+ //calculate lighting assuming light color is <1,1,1,1>
+ float4 outputColor = txDiffuse.Sample( samLinear, input.Tex ) * input.Diffuse;
+ outputColor.a = 1;
+ return outputColor;
+}