24 #ifndef PXR_IMAGING_HD_ST_SHADER_CODE_H
25 #define PXR_IMAGING_HD_ST_SHADER_CODE_H
47 std::shared_ptr<class HdStShaderCode>;
49 std::vector<HdStShaderCodeSharedPtr>;
52 std::vector<class HdSt_MaterialParam>;
54 std::shared_ptr<class HdBufferSource>;
56 std::vector<HdBufferSourceSharedPtr>;
58 std::shared_ptr<class HdBufferArrayRange>;
60 std::shared_ptr<class HdStTextureHandle>;
62 std::shared_ptr<class HdStComputation>;
65 class HdSt_ResourceBinder;
179 HdSt_ResourceBinder
const &binder) = 0;
183 HdSt_ResourceBinder
const &binder) = 0;
243 virtual HioGlslfx const * _GetGlslfx()
const;
249 #endif //HDST_SHADER_H
std::shared_ptr< class HdStShaderCode > HdStShaderCodeSharedPtr
virtual HDST_API HdBufferArrayRangeSharedPtr const & GetShaderData() const
GLsizei const GLchar *const * string
std::vector< class HdStBindingRequest > HdStBindingRequestVector
HdStResourceRegistry * GetResourceRegistry() const
virtual HDST_API HdSt_MaterialParamVector const & GetParams() const
Returns the shader parameters for this shader.
std::vector< HdBufferSourceSharedPtr > HdBufferSourceSharedPtrVector
virtual HDST_API TfTokenVector const & GetPrimvarNames() const
Returns the names of primvar that are used by this shader.
virtual ID ComputeTextureSourceHash() const
virtual void UnbindResources(int program, HdSt_ResourceBinder const &binder)=0
Unbinds shader-specific resources.
HDST_API VtDictionary GetLayout(TfTokenVector const &shaderStageKeys) const
virtual HDST_API TfToken GetMaterialTag() const
virtual HDST_API NamedTextureHandleVector const & GetNamedTextureHandles() const
HDST_API void AddSource(HdBufferArrayRangeSharedPtr const &range, HdBufferSourceSharedPtr const &source)
virtual std::string GetSource(TfToken const &shaderStageKey) const =0
GLsizei GLsizei GLchar * source
std::shared_ptr< class HdStComputation > HdStComputationSharedPtr
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the queue
std::vector< TfToken > TfTokenVector
Convenience types.
GLsizei GLsizei GLuint * shaders
virtual HDST_API void AddResourcesFromTextures(ResourceContext &ctx) const
virtual HDST_API ~HdStShaderCode()
HDST_API void AddComputation(HdBufferArrayRangeSharedPtr const &range, HdStComputationSharedPtr const &computation, HdStComputeQueue const queue)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
std::vector< NamedTextureHandle > NamedTextureHandleVector
virtual ID ComputeHash() const =0
std::shared_ptr< class HdStTextureHandle > HdStTextureHandleSharedPtr
virtual HDST_API bool IsEnabledPrimvarFiltering() const
Returns whether primvar filtering is enabled for this shader.
virtual void AddBindings(HdStBindingRequestVector *customBindings)=0
Add custom bindings (used by codegen)
std::vector< HdStShaderCodeSharedPtr > HdStShaderCodeSharedPtrVector
#define PXR_NAMESPACE_CLOSE_SCOPE
std::shared_ptr< HdBufferArrayRange > HdBufferArrayRangeSharedPtr
HDST_API void AddSources(HdBufferArrayRangeSharedPtr const &range, HdBufferSourceSharedPtrVector &&sources)
virtual void BindResources(int program, HdSt_ResourceBinder const &binder)=0
HDST_API HdStShaderCode()
HdStTextureHandleSharedPtr handle
The texture.
std::shared_ptr< class HdBufferSource > HdBufferSourceSharedPtr
GLbitfield GLuint program
std::vector< class HdSt_MaterialParam > HdSt_MaterialParamVector