17 #include <ht_resource.h> 18 #include <ht_bitfield.h> 19 #include <ht_sampler_resource.h> 20 #include <ht_shadervariable.h> 30 enum class ShaderVisibility
43 LAYOUT_ALLOW_INPUT_ASSEMLBER_INPUT_LAYOUT = 1 << 1,
44 LAYOUT_DENY_VERTEX_SHADER_ROOT_ACCESS = 1 << 2,
45 LAYOUT_DENY_TESS_CONTROL_SHADER_ROOT_ACCESS = 1 << 3,
46 LAYOUT_DENY_TESS_EVAL_SHADER_ROOT_ACCESS = 1 << 4,
47 LAYOUT_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 1 << 5,
48 LAYOUT_DENY_FRAGMENT_SHADER_ROOT_ACCESS = 1 << 6,
49 LAYOUT_ALLOW_STREAM_OUTPUT = 1 << 7
64 uint32_t numDescriptors;
65 uint32_t baseRegister;
66 uint32_t registerSpace;
72 std::vector<Range> ranges;
77 uint32_t shaderRegister;
78 uint32_t registerSpace;
80 ShaderVariable::Type type;
85 uint32_t shaderRegister;
86 uint32_t registerSpace;
109 ShaderVisibility visibility;
115 bool Initialize(
const std::string& fileName);
120 uint32_t GetParameterCount()
const;
121 Core::BitField<Flags> GetDescriptorFlags()
const;
122 const std::vector<Parameter>& GetParameters()
const;
123 const std::vector<Sampler>& GetSamplers()
const;
126 uint32_t m_parameterCount;
127 std::vector<Parameter> m_parameters;
128 std::vector<Sampler> m_samplers;
129 Core::BitField<Flags> m_flags;
132 Flags FlagFromString(std::string s);
133 ShaderVisibility ParameterVisibilityFromString(std::string s);
134 Parameter::Type ParameterTypeFromString(std::string s);
135 Range::Type RangeTypeFromString(std::string s);
138 using RootLayoutHandle = Core::Handle<const RootLayout>;
Definition: ht_rootlayout_resource.h:52
Definition: ht_rootlayout_resource.h:26
Definition: ht_resource.h:35
Hatchit Engine Copyright(c) 2015-2016 Third-Degree.
Definition: ht_assimp.h:31
Definition: ht_rootlayout_resource.h:83
Definition: ht_rootlayout_resource.h:75
Definition: ht_rootlayout_resource.h:91
Definition: ht_rootlayout_resource.h:69
Definition: ht_rootlayout_resource.h:89