25 #ifndef PXR_IMAGING_HGI_SHADERSECTION_H
26 #define PXR_IMAGING_HGI_SHADERSECTION_H
29 #include "pxr/imaging/hgi/api.h"
35 PXR_NAMESPACE_OPEN_SCOPE
38 struct HgiShaderSectionAttribute
40 std::string identifier;
44 using HgiShaderSectionAttributeVector =
45 std::vector<HgiShaderSectionAttribute>;
65 virtual void WriteType(std::ostream& ss)
const;
80 const HgiShaderSectionAttributeVector& GetAttributes()
const;
85 const std::string &identifier,
86 const HgiShaderSectionAttributeVector& attributes = {},
87 const std::string &defaultValue = std::string());
90 const std::string& _GetDefaultValue()
const;
93 const std::string _identifierVar;
94 const HgiShaderSectionAttributeVector _attributes;
95 const std::string _defaultValue;
98 PXR_NAMESPACE_CLOSE_SCOPE
virtual HGI_API void WriteIdentifier(std::ostream &ss) const
Writes the unique name of an instance of the section.
virtual HGI_API void WriteDeclaration(std::ostream &ss) const
Writes a decleration statement for a member or in global scope.
virtual HGI_API void WriteType(std::ostream &ss) const
Write out the type, shader section does not hold a type string as how a type is defined is fully cont...
virtual HGI_API void WriteParameter(std::ostream &ss) const
Writes the section as a parameter to a function.
A base class for a Shader Section.