yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
02706dfc5
master
1// vk-shader-program.h 2#pragma once 3 4#include "vk-base.h" 5#include "vk-shader-object-layout.h" 6 7namespace gfx 8{ 9 10using namespace Slang ; 11 12namespace vk 13{ 14 15class ShaderProgramImpl :public ShaderProgramBase 16{ 17public : 18ShaderProgramImpl (DeviceImpl * device ); 19 20 ~ShaderProgramImpl (); 21 22virtual void comFree ()override ; 23 24BreakableReference < DeviceImpl > m_device ; 25 26List < VkPipelineShaderStageCreateInfo > m_stageCreateInfos ; 27List < String > m_entryPointNames ; 28List < ComPtr < ISlangBlob >>m_codeBlobs ;//< To keep storage of code in scope 29List < VkShaderModule > m_modules ; 30RefPtr < RootShaderObjectLayout > m_rootObjectLayout ; 31 32VkPipelineShaderStageCreateInfo compileEntryPoint ( 33const char * entryPointName , 34ISlangBlob * code , 35VkShaderStageFlagBits stage , 36VkShaderModule & outShaderModule ); 37 38virtual Result createShaderModule ( 39slang ::EntryPointReflection * entryPointInfo , 40List < ComPtr < ISlangBlob >>& kernelCodes )override ; 41}; 42 43 44}// namespace vk 45}// namespace gfx