24 #ifndef PXR_IMAGING_HD_ST_RENDER_PASS_SHADER_H 25 #define PXR_IMAGING_HD_ST_RENDER_PASS_SHADER_H 28 #include "pxr/imaging/hdSt/api.h" 29 #include "pxr/imaging/hdSt/binding.h" 30 #include "pxr/imaging/hdSt/shaderCode.h" 31 #include "pxr/imaging/hd/enums.h" 39 PXR_NAMESPACE_OPEN_SCOPE
41 using HdStRenderPassShaderSharedPtr =
42 std::shared_ptr<class HdStRenderPassShader>;
44 using HdRenderPassAovBindingVector =
45 std::vector<struct HdRenderPassAovBinding>;
67 HdSt_ResourceBinder
const &binder)
override;
70 HdSt_ResourceBinder
const &binder)
override;
72 void AddBindings(HdStBindingRequestVector *customBindings)
override;
74 HdSt_MaterialParamVector
const&
GetParams()
const override;
98 void UpdateAovInputTextures(
99 HdRenderPassAovBindingVector
const &aovInputBindings,
104 std::unique_ptr<HioGlslfx> _glslfx;
105 mutable size_t _hash;
106 mutable bool _hashValid;
108 TfHashMap<TfToken, HdStBindingRequest, TfToken::HashFunctor> _customBuffers;
110 NamedTextureHandleVector _namedTextureHandles;
112 HdSt_MaterialParamVector _params;
118 HioGlslfx const * _GetGlslfx()
const override;
122 PXR_NAMESPACE_CLOSE_SCOPE
124 #endif // PXR_IMAGING_HD_ST_RENDER_PASS_SHADER_H The Hydra render index is a flattened representation of the client scene graph, which may be composed...
HDST_API void UnbindResources(int program, HdSt_ResourceBinder const &binder) override
Unbinds shader-specific resources.
Standard pointer typedefs.
HDST_API HdSt_MaterialParamVector const & GetParams() const override
Returns the shader parameters for this shader.
HDST_API void AddBufferBinding(HdStBindingRequest const &req)
Add a custom binding request for use when this shader executes.
HDST_API std::string GetSource(TfToken const &shaderStageKey) const override
Returns the shader source provided by this shader for shaderStageKey.
HDST_API void RemoveBufferBinding(TfToken const &name)
Remove name from custom binding.
HDST_API NamedTextureHandleVector const & GetNamedTextureHandles() const override
Textures that need to be bound for this shader.
Token for efficient comparison, assignment, and hashing of known strings.
HDST_API void ClearBufferBindings()
Clear all custom bindings associated with this shader.
HDST_API void BindResources(int program, HdSt_ResourceBinder const &binder) override
Binds shader-specific resources to program XXX: this interface is meant to be used for bridging the G...
A base class representing the implementation (code) of a shader, used in conjunction with HdRenderPas...
A class representing the config and shader source of a glslfx file.
A shader that supports common renderPass functionality.
BindingRequest allows externally allocated buffers to be bound at render time.
HDST_API void AddBindings(HdStBindingRequestVector *customBindings) override
Add custom bindings (used by codegen)
HDST_API ID ComputeHash() const override
HdShader overrides.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...