| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef DIFFUSE_POINT_RENDER_PIPELINE_D3D12_H |
| | #define DIFFUSE_POINT_RENDER_PIPELINE_D3D12_H |
| |
|
| | #include <DirectXMath.h> |
| | #include "../d3d/renderParamsD3D.h" |
| | #include "renderStateD3D12.h" |
| | #include "meshRenderer.h" |
| |
|
| | #include <NvCoDx12RenderTarget.h> |
| |
|
| | namespace FlexSample { |
| | using namespace nvidia; |
| |
|
| | struct DiffusePointRenderPipelineD3D12: public RenderPipeline |
| | { |
| | |
| | public: |
| | typedef RenderPipeline Parent; |
| |
|
| | enum PipelineStateType |
| | { |
| | PIPELINE_STATE_LIGHT_SOLID, |
| | PIPELINE_STATE_COUNT_OF, |
| | }; |
| |
|
| | DiffusePointRenderPipelineD3D12(); |
| | |
| | |
| | int initialize(const RenderStateD3D12& state, const std::wstring& shadersDir, int shadowMapLinearSamplerIndex, NvCo::Dx12RenderTarget* shadowMap); |
| | |
| | virtual int bind(const void* paramsIn, const void* platformState) override; |
| | virtual int draw(const RenderAllocation& alloc, size_t sizeOfAlloc, const void* platformState) override; |
| |
|
| | protected: |
| |
|
| | int _initPipelineState(const RenderStateD3D12& state, NvCo::Dx12RenderTarget* shadowMap, PipelineStateType pipeType, ID3D12RootSignature* signiture, D3D12_GRAPHICS_PIPELINE_STATE_DESC& psoDesc); |
| |
|
| | int m_shadowMapLinearSamplerIndex; |
| | PipelineStateD3D12 m_states[PIPELINE_STATE_COUNT_OF]; |
| | }; |
| |
|
| | } |
| |
|
| | #endif |