summaryrefslogtreecommitdiffstats
path: root/Tests/TestApp/assets/RasterizerStateTest.lua
blob: 9701bcb121a59400b8955b96dbdd60b03208c505 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
-- Test script file

TestGlobalRSDesc = TestGlobalPSO.GraphicsPipeline.RasterizerDesc

assert( TestGlobalPSO.Name == "PSO-TestRS")
assert( TestGlobalRSDesc.FillMode == "FILL_MODE_WIREFRAME")
assert( TestGlobalRSDesc.CullMode == "CULL_MODE_FRONT")
assert( TestGlobalRSDesc.FrontCounterClockwise == true)
assert( TestGlobalRSDesc.DepthBias == 64)
assert( TestGlobalRSDesc.DepthBiasClamp == 98.0)
assert( TestGlobalRSDesc.SlopeScaledDepthBias == 12.5)
assert( TestGlobalRSDesc.DepthClipEnable == false)
assert( TestGlobalRSDesc.ScissorEnable == false)
assert( TestGlobalRSDesc.AntialiasedLineEnable == true)


RSDesc = 
{
	FillMode = "FILL_MODE_WIREFRAME",
	CullMode = "CULL_MODE_BACK",
	FrontCounterClockwise = true,
	DepthBias = 32,
	DepthBiasClamp = 63.0,
	SlopeScaledDepthBias = 31.25,
	DepthClipEnable = true,
	ScissorEnable = false,
	AntialiasedLineEnable = true,
}


TrivialVS = Shader.Create{
	Source = 
[[void VSMain(out float4 pos : SV_Position)
{
	pos = float4(0.0, 0.0, 0.0, 0.0); 
}]],
	EntryPoint = "VSMain",
	SourceLanguage = "SHADER_SOURCE_LANGUAGE_HLSL",
	Desc = {
		ShaderType = "SHADER_TYPE_VERTEX",
		Name = "TrivialVS (RasterizerStateTest.lua)"
	}
}

TrivialPS = Shader.Create{
	Source = 
[[void PSMain(out float4 col : SV_TARGET)
{
	col = float4(0.0, 0.0, 0.0, 0.0);
}]],
	EntryPoint = "PSMain",
	SourceLanguage = "SHADER_SOURCE_LANGUAGE_HLSL",
	Desc = {
		ShaderType = "SHADER_TYPE_PIXEL",
		Name = "TrivialPS (RasterizerStateTest.lua)"
	}
}

PSODesc = 
{
	GraphicsPipeline = 
	{
		pVS = TrivialVS,
		pPS = TrivialPS,
		RasterizerDesc = RSDesc,
		RTVFormats = "TEX_FORMAT_RGBA8_UNORM",
		DSVFormat = "TEX_FORMAT_D32_FLOAT",
		PrimitiveTopologyType = "PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE"
	}
}
TestRS_PSO = PipelineState.Create(PSODesc)
--TestRS2 = RasterizerState.Create(RSDesc)
TestRS = TestRS_PSO.GraphicsPipeline.RasterizerDesc

assert( TestRS.FillMode == "FILL_MODE_WIREFRAME")
assert( TestRS.CullMode == "CULL_MODE_BACK")
assert( TestRS.FrontCounterClockwise == true)
assert( TestRS.DepthBias == 32)
assert( TestRS.DepthBiasClamp == 63.0)
assert( TestRS.SlopeScaledDepthBias == 31.25)
assert( TestRS.DepthClipEnable == true)
assert( TestRS.ScissorEnable == false)
assert( TestRS.AntialiasedLineEnable == true)

Context.SetPipelineState(TestRS_PSO)
--Context.SetRasterizerState(TestRS)


FillModes =
{
	"FILL_MODE_WIREFRAME",
	"FILL_MODE_SOLID"
}

CullModes = 
{
    "CULL_MODE_BACK",
    "CULL_MODE_FRONT",
    "CULL_MODE_NONE"
}

for i,v in ipairs(FillModes) do
	PSODesc.GraphicsPipeline.RasterizerDesc.FillMode = v
	local TestPSO = PipelineState.Create(PSODesc)
	assert(TestPSO.GraphicsPipeline.RasterizerDesc.FillMode == v)
	Context.SetPipelineState(TestPSO)
end

for i,v in ipairs(CullModes) do
	PSODesc.GraphicsPipeline.RasterizerDesc.CullMode = v
	local TestPSO = PipelineState.Create(PSODesc)
	assert(TestPSO.GraphicsPipeline.RasterizerDesc.CullMode == v)
	Context.SetPipelineState(TestPSO)
end


function TestRSDescFunc(PSO)
	
	local RSDesc = PSO.GraphicsPipeline.RasterizerDesc
    assert( RSDesc.FillMode == "FILL_MODE_SOLID")
	assert( RSDesc.CullMode == "CULL_MODE_BACK")
	assert( RSDesc.FrontCounterClockwise == false)
	assert( RSDesc.DepthBias == 0)
	assert( RSDesc.DepthBiasClamp == 0.0)
	assert( RSDesc.SlopeScaledDepthBias == 0.0)
	assert( RSDesc.DepthClipEnable == true)
	assert( RSDesc.ScissorEnable == false)
	assert( RSDesc.AntialiasedLineEnable == false)
end