7#ifndef PXR_IMAGING_HD_ST_RENDER_PASS_SHADER_H
8#define PXR_IMAGING_HD_ST_RENDER_PASS_SHADER_H
11#include "pxr/imaging/hdSt/api.h"
12#include "pxr/imaging/hdSt/binding.h"
13#include "pxr/imaging/hdSt/shaderCode.h"
14#include "pxr/imaging/hd/enums.h"
22PXR_NAMESPACE_OPEN_SCOPE
24using HdStRenderPassShaderSharedPtr =
25 std::shared_ptr<class HdStRenderPassShader>;
28using HdRenderPassAovBindingVector =
29 std::vector<struct HdRenderPassAovBinding>;
53 HdSt_ResourceBinder
const &binder)
override;
56 HdSt_ResourceBinder
const &binder)
override;
58 void AddBindings(HdStBindingRequestVector *customBindings)
override;
60 HdSt_MaterialParamVector
const&
GetParams()
const override;
84 void UpdateAovInputTextures(
85 HdRenderPassAovBindingVector
const &aovInputBindings,
90 HdStRenderPassShaderSharedPtr
91 CreateRenderPassShaderFromAovs(
93 HdStResourceRegistrySharedPtr
const &resourceRegistry,
94 HdRenderPassAovBindingVector
const &aovBindings);
97 HioGlslfxSharedPtr _glslfx;
99 mutable bool _hashValid;
102 std::map<TfToken, HdStBindingRequest> _customBuffers;
104 NamedTextureHandleVector _namedTextureHandles;
106 HdSt_MaterialParamVector _params;
112 HioGlslfx const * _GetGlslfx()
const override;
116PXR_NAMESPACE_CLOSE_SCOPE
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
BindingRequest allows externally allocated buffers to be bound at render time.
A shader that supports common renderPass functionality.
HDST_API void RemoveBufferBinding(TfToken const &name)
Remove name from custom binding.
HDST_API void AddBufferBinding(HdStBindingRequest const &req)
Add a custom binding request for use when this shader executes.
HDST_API void AddBindings(HdStBindingRequestVector *customBindings) override
Add custom bindings (used by codegen)
HDST_API void ClearBufferBindings()
Clear all custom bindings associated with this shader.
HDST_API std::string GetSource(TfToken const &shaderStageKey) const override
Returns the shader source provided by this shader for shaderStageKey.
HDST_API ID ComputeHash() const override
HdShader overrides.
HDST_API void UnbindResources(int program, HdSt_ResourceBinder const &binder) override
Unbinds shader-specific resources.
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...
HDST_API NamedTextureHandleVector const & GetNamedTextureHandles() const override
Textures that need to be bound for this shader.
HDST_API HdSt_MaterialParamVector const & GetParams() const override
Returns the shader parameters for this shader.
A set of rendering parameters used among render passes.
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.
Token for efficient comparison, assignment, and hashing of known strings.
Standard pointer typedefs.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...