yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Ellie Hermaszewskaformatf65d756bf

master
1.1 KiB42 linesraw
1// d3d12-ray-tracing.h
2#pragma once
3
4#include "d3d12-base.h"
5
6namespace gfx
7{
8namespace d3d12
9{
10
11using namespace Slang;
12
13class PipelineStateImpl : public PipelineStateBase
14{
15public:
16    PipelineStateImpl(DeviceImpl* device)
17        : m_device(device)
18    {
19    }
20    DeviceImpl* m_device;
21    ComPtr<ID3D12PipelineState> m_pipelineState;
22    void init(const GraphicsPipelineStateDesc& inDesc);
23    void init(const ComputePipelineStateDesc& inDesc);
24    virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(InteropHandle* outHandle) override;
25    virtual Result ensureAPIPipelineStateCreated() override;
26};
27
28#if SLANG_GFX_HAS_DXR_SUPPORT
29class RayTracingPipelineStateImpl : public PipelineStateBase
30{
31public:
32    ComPtr<ID3D12StateObject> m_stateObject;
33    DeviceImpl* m_device;
34    RayTracingPipelineStateImpl(DeviceImpl* device);
35    void init(const RayTracingPipelineStateDesc& inDesc);
36    virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(InteropHandle* outHandle) override;
37    virtual Result ensureAPIPipelineStateCreated() override;
38};
39#endif
40
41} // namespace d3d12
42} // namespace gfx