diff options
Diffstat (limited to 'Projects/Asteroids/src/asteroids_DE.cpp')
| -rw-r--r-- | Projects/Asteroids/src/asteroids_DE.cpp | 88 |
1 files changed, 47 insertions, 41 deletions
diff --git a/Projects/Asteroids/src/asteroids_DE.cpp b/Projects/Asteroids/src/asteroids_DE.cpp index 9c15e47..80a8338 100644 --- a/Projects/Asteroids/src/asteroids_DE.cpp +++ b/Projects/Asteroids/src/asteroids_DE.cpp @@ -298,8 +298,9 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G // create pipeline state { - PipelineStateCreateInfo PSOCreateInfo; - PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineStateCreateInfo PSOCreateInfo; + PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineDesc& GraphicsPipeline = PSOCreateInfo.GraphicsPipeline; // clang-format off LayoutElement inputDesc[] = @@ -310,11 +311,11 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G }; // clang-format on - PSODesc.GraphicsPipeline.InputLayout.LayoutElements = inputDesc; + GraphicsPipeline.InputLayout.LayoutElements = inputDesc; // In bindless mode we will use instance ID buffer as the third input - PSODesc.GraphicsPipeline.InputLayout.NumElements = (m_BindingMode == BindingMode::Bindless) ? 3 : 2; + GraphicsPipeline.InputLayout.NumElements = (m_BindingMode == BindingMode::Bindless) ? 3 : 2; - PSODesc.GraphicsPipeline.DepthStencilDesc.DepthFunc = COMPARISON_FUNC_GREATER_EQUAL; + GraphicsPipeline.DepthStencilDesc.DepthFunc = COMPARISON_FUNC_GREATER_EQUAL; RefCntAutoPtr<IShader> vs, ps; { @@ -379,15 +380,16 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G PSODesc.ResourceLayout.Variables = Variables.data(); PSODesc.ResourceLayout.NumVariables = static_cast<Uint32>(Variables.size()); - PSODesc.GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; - PSODesc.GraphicsPipeline.NumRenderTargets = 1; - PSODesc.GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; - PSODesc.GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; - PSODesc.Name = "Asteroids PSO"; + GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; + GraphicsPipeline.NumRenderTargets = 1; + GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; + GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; - PSODesc.GraphicsPipeline.pVS = vs; - PSODesc.GraphicsPipeline.pPS = ps; - mDevice->CreatePipelineState(PSOCreateInfo, &mAsteroidsPSO); + PSODesc.Name = "Asteroids PSO"; + + PSOCreateInfo.pVS = vs; + PSOCreateInfo.pPS = ps; + mDevice->CreateGraphicsPipelineState(PSOCreateInfo, &mAsteroidsPSO); mAsteroidsPSO->GetStaticVariableByName(SHADER_TYPE_VERTEX, "DrawConstantBuffer")->Set(mDrawConstantBuffer); Uint32 NumSRBs = 0; @@ -466,8 +468,9 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G attribs.Desc.ShaderType = SHADER_TYPE_PIXEL; mDevice->CreateShader(attribs, &ps); - PipelineStateCreateInfo PSOCreateInfo; - PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineStateCreateInfo PSOCreateInfo; + PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineDesc& GraphicsPipeline = PSOCreateInfo.GraphicsPipeline; PSODesc.ResourceLayout.DefaultVariableType = SHADER_RESOURCE_VARIABLE_TYPE_STATIC; @@ -484,20 +487,22 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G PSODesc.ResourceLayout.StaticSamplers = &ssdesc; PSODesc.ResourceLayout.NumStaticSamplers = 1; - PSODesc.Name = "Skybox PSO"; - PSODesc.GraphicsPipeline.InputLayout.LayoutElements = inputDesc; - PSODesc.GraphicsPipeline.InputLayout.NumElements = _countof(inputDesc); + PSODesc.Name = "Skybox PSO"; + + GraphicsPipeline.InputLayout.LayoutElements = inputDesc; + GraphicsPipeline.InputLayout.NumElements = _countof(inputDesc); + + GraphicsPipeline.DepthStencilDesc.DepthFunc = COMPARISON_FUNC_GREATER_EQUAL; - PSODesc.GraphicsPipeline.DepthStencilDesc.DepthFunc = COMPARISON_FUNC_GREATER_EQUAL; - PSODesc.GraphicsPipeline.pVS = vs; - PSODesc.GraphicsPipeline.pPS = ps; + PSOCreateInfo.pVS = vs; + PSOCreateInfo.pPS = ps; - PSODesc.GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; - PSODesc.GraphicsPipeline.NumRenderTargets = 1; - PSODesc.GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; - PSODesc.GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; + GraphicsPipeline.NumRenderTargets = 1; + GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; + GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; - mDevice->CreatePipelineState(PSOCreateInfo, &mSkyboxPSO); + mDevice->CreateGraphicsPipelineState(PSOCreateInfo, &mSkyboxPSO); mSkyboxPSO->GetStaticVariableByName(SHADER_TYPE_VERTEX, "SkyboxConstantBuffer")->Set(mSkyboxConstantBuffer); mSkyboxPSO->GetStaticVariableByName(SHADER_TYPE_PIXEL, "Skybox")->Set(mSkyboxSRV); mSkyboxPSO->CreateShaderResourceBinding(&mSkyboxSRB, true); @@ -524,8 +529,9 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G // Sprites and fonts { - PipelineStateCreateInfo PSOCreateInfo; - PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineStateCreateInfo PSOCreateInfo; + PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc; + GraphicsPipelineDesc& GraphicsPipeline = PSOCreateInfo.GraphicsPipeline; // clang-format off LayoutElement inputDesc[] = @@ -535,10 +541,10 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G }; // clang-format on - PSODesc.GraphicsPipeline.InputLayout.LayoutElements = inputDesc; - PSODesc.GraphicsPipeline.InputLayout.NumElements = _countof(inputDesc); + GraphicsPipeline.InputLayout.LayoutElements = inputDesc; + GraphicsPipeline.InputLayout.NumElements = _countof(inputDesc); - auto& BlendState = PSODesc.GraphicsPipeline.BlendDesc; + auto& BlendState = GraphicsPipeline.BlendDesc; { // Premultiplied over blend BlendState.RenderTargets[0].BlendEnable = TRUE; @@ -547,12 +553,12 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G BlendState.RenderTargets[0].DestBlend = BLEND_FACTOR_INV_SRC_ALPHA; } - PSODesc.GraphicsPipeline.DepthStencilDesc.DepthEnable = false; + GraphicsPipeline.DepthStencilDesc.DepthEnable = false; - PSODesc.GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; - PSODesc.GraphicsPipeline.NumRenderTargets = 1; - PSODesc.GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; - PSODesc.GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + GraphicsPipeline.RTVFormats[0] = mSwapChain->GetDesc().ColorBufferFormat; + GraphicsPipeline.NumRenderTargets = 1; + GraphicsPipeline.DSVFormat = mSwapChain->GetDesc().DepthBufferFormat; + GraphicsPipeline.PrimitiveTopology = PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; RefCntAutoPtr<IShader> sprite_vs, sprite_ps, font_ps; { @@ -593,15 +599,15 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G PSODesc.Name = "Sprite PSO"; PSODesc.ResourceLayout.DefaultVariableType = SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC; - PSODesc.GraphicsPipeline.pVS = sprite_vs; - PSODesc.GraphicsPipeline.pPS = sprite_ps; - mDevice->CreatePipelineState(PSOCreateInfo, &mSpritePSO); + PSOCreateInfo.pVS = sprite_vs; + PSOCreateInfo.pPS = sprite_ps; + mDevice->CreateGraphicsPipelineState(PSOCreateInfo, &mSpritePSO); mSpritePSO->CreateShaderResourceBinding(&mSpriteSRB, true); PSODesc.Name = "Font PSO"; PSODesc.ResourceLayout.DefaultVariableType = SHADER_RESOURCE_VARIABLE_TYPE_STATIC; - PSODesc.GraphicsPipeline.pPS = font_ps; - mDevice->CreatePipelineState(PSOCreateInfo, &mFontPSO); + PSOCreateInfo.pPS = font_ps; + mDevice->CreateGraphicsPipelineState(PSOCreateInfo, &mFontPSO); mFontPSO->GetStaticVariableByName(SHADER_TYPE_PIXEL, "Tex")->Set(mFontTextureSRV); mFontPSO->CreateShaderResourceBinding(&mFontSRB, true); } |
