aboutsummaryrefslogtreecommitdiff
path: root/samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl
diff options
context:
space:
mode:
Diffstat (limited to 'samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl')
-rw-r--r--samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl50
1 files changed, 50 insertions, 0 deletions
diff --git a/samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl b/samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl
new file mode 100644
index 0000000..4c3fa6b
--- /dev/null
+++ b/samples/bin/DX_APIUsage/win32/BasicHLSL11_PS.hlsl
@@ -0,0 +1,50 @@
+//--------------------------------------------------------------------------------------
+// File: BasicHLSL11_PS.hlsl
+//
+// The pixel shader file for the BasicHLSL11 sample.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//--------------------------------------------------------------------------------------
+
+//--------------------------------------------------------------------------------------
+// Globals
+//--------------------------------------------------------------------------------------
+cbuffer cbPerObject : register( b0 )
+{
+ float4 g_vObjectColor : packoffset( c0 );
+};
+
+cbuffer cbPerFrame : register( b1 )
+{
+ float3 g_vLightDir : packoffset( c0 );
+ float g_fAmbient : packoffset( c0.w );
+};
+
+//--------------------------------------------------------------------------------------
+// Textures and Samplers
+//--------------------------------------------------------------------------------------
+Texture2D g_txDiffuse : register( t0 );
+SamplerState g_samLinear : register( s0 );
+
+//--------------------------------------------------------------------------------------
+// Input / Output structures
+//--------------------------------------------------------------------------------------
+struct PS_INPUT
+{
+ float3 vNormal : NORMAL;
+ float2 vTexcoord : TEXCOORD0;
+};
+
+//--------------------------------------------------------------------------------------
+// Pixel Shader
+//--------------------------------------------------------------------------------------
+float4 PSMain( PS_INPUT Input ) : SV_TARGET
+{
+ float4 vDiffuse = g_txDiffuse.Sample( g_samLinear, Input.vTexcoord );
+
+ float fLighting = saturate( dot( g_vLightDir, Input.vNormal ) );
+ fLighting = max( fLighting, g_fAmbient );
+
+ return vDiffuse * fLighting;
+}
+