yum-mirror/slang

Making it easier to work with shaders

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

cheneym2Fix precompiledTargetModule tests (#6455)02706dfc5

master
772 B41 linesraw
1// metal-shader-program.h
2#pragma once
3
4#include "metal-base.h"
5#include "metal-shader-object-layout.h"
6
7namespace gfx
8{
9
10using namespace Slang;
11
12namespace metal
13{
14
15class ShaderProgramImpl : public ShaderProgramBase
16{
17public:
18    DeviceImpl* m_device;
19    RefPtr<RootShaderObjectLayoutImpl> m_rootObjectLayout;
20
21    struct Module
22    {
23        SlangStage stage;
24        String entryPointName;
25        ComPtr<ISlangBlob> code;
26        NS::SharedPtr<MTL::Library> library;
27    };
28
29    List<Module> m_modules;
30
31    ShaderProgramImpl(DeviceImpl* device);
32    ~ShaderProgramImpl();
33
34    virtual Result createShaderModule(
35        slang::EntryPointReflection* entryPointInfo,
36        List<ComPtr<ISlangBlob>>& kernelCodes) override;
37};
38
39
40} // namespace metal
41} // namespace gfx