HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdStGLSLProgram Class Referencefinal

#include <glslProgram.h>

Public Types

typedef size_t ID
 
using PopulateDescriptorCallback = std::function< void(HgiShaderFunctionDesc &computeDesc)>
 

Public Member Functions

HDST_API HdStGLSLProgram (TfToken const &role, HdStResourceRegistry *const registry)
 
HDST_API ~HdStGLSLProgram ()
 
HDST_API bool CompileShader (HgiShaderStage stage, std::string const &source)
 Compile shader source for a shader stage. More...
 
HDST_API bool CompileShader (HgiShaderFunctionDesc const &desc)
 Compile shader source for a shader stage from an HgiShaderFunctionDesc. More...
 
HDST_API bool Link ()
 Link the compiled shaders together. More...
 
HDST_API bool Validate () const
 Validate if this program is a valid progam in the current context. More...
 
HgiShaderProgramHandle constGetProgram () const
 Returns HgiShaderProgramHandle for the shader program. More...
 
TfToken constGetRole () const
 Returns the role of the GPU data in this resource. More...
 

Static Public Member Functions

static HDST_API
HdStGLSLProgramSharedPtr 
GetComputeProgram (TfToken const &shaderToken, HdStResourceRegistry *resourceRegistry)
 Convenience method to get a shared compute shader program. More...
 
static HDST_API
HdStGLSLProgramSharedPtr 
GetComputeProgram (TfToken const &shaderFileName, TfToken const &shaderToken, HdStResourceRegistry *resourceRegistry)
 
static HDST_API
HdStGLSLProgramSharedPtr 
GetComputeProgram (TfToken const &shaderToken, HdStResourceRegistry *resourceRegistry, PopulateDescriptorCallback populateDescriptor)
 
static HDST_API
HdStGLSLProgramSharedPtr 
GetComputeProgram (TfToken const &shaderToken, std::string const &defines, HdStResourceRegistry *resourceRegistry, PopulateDescriptorCallback populateDescriptor)
 
static HDST_API
HdStGLSLProgramSharedPtr 
GetComputeProgram (TfToken const &shaderFileName, TfToken const &shaderToken, std::string const &defines, HdStResourceRegistry *resourceRegistry, PopulateDescriptorCallback populateDescriptor)
 

Detailed Description

An instance of a glsl program.

Definition at line 45 of file glslProgram.h.

Member Typedef Documentation

typedef size_t HdStGLSLProgram::ID

Definition at line 48 of file glslProgram.h.

Definition at line 87 of file glslProgram.h.

Constructor & Destructor Documentation

HDST_API HdStGLSLProgram::HdStGLSLProgram ( TfToken const role,
HdStResourceRegistry *const  registry 
)
HDST_API HdStGLSLProgram::~HdStGLSLProgram ( )

Member Function Documentation

HDST_API bool HdStGLSLProgram::CompileShader ( HgiShaderStage  stage,
std::string const source 
)

Compile shader source for a shader stage.

HDST_API bool HdStGLSLProgram::CompileShader ( HgiShaderFunctionDesc const desc)

Compile shader source for a shader stage from an HgiShaderFunctionDesc.

static HDST_API HdStGLSLProgramSharedPtr HdStGLSLProgram::GetComputeProgram ( TfToken const shaderToken,
HdStResourceRegistry resourceRegistry 
)
static

Convenience method to get a shared compute shader program.

static HDST_API HdStGLSLProgramSharedPtr HdStGLSLProgram::GetComputeProgram ( TfToken const shaderFileName,
TfToken const shaderToken,
HdStResourceRegistry resourceRegistry 
)
static
static HDST_API HdStGLSLProgramSharedPtr HdStGLSLProgram::GetComputeProgram ( TfToken const shaderToken,
HdStResourceRegistry resourceRegistry,
PopulateDescriptorCallback  populateDescriptor 
)
static
static HDST_API HdStGLSLProgramSharedPtr HdStGLSLProgram::GetComputeProgram ( TfToken const shaderToken,
std::string const defines,
HdStResourceRegistry resourceRegistry,
PopulateDescriptorCallback  populateDescriptor 
)
static
static HDST_API HdStGLSLProgramSharedPtr HdStGLSLProgram::GetComputeProgram ( TfToken const shaderFileName,
TfToken const shaderToken,
std::string const defines,
HdStResourceRegistry resourceRegistry,
PopulateDescriptorCallback  populateDescriptor 
)
static
HgiShaderProgramHandle const& HdStGLSLProgram::GetProgram ( ) const
inline

Returns HgiShaderProgramHandle for the shader program.

Definition at line 72 of file glslProgram.h.

TfToken const& HdStGLSLProgram::GetRole ( ) const
inline

Returns the role of the GPU data in this resource.

Definition at line 111 of file glslProgram.h.

HDST_API bool HdStGLSLProgram::Link ( )

Link the compiled shaders together.

HDST_API bool HdStGLSLProgram::Validate ( ) const

Validate if this program is a valid progam in the current context.


The documentation for this class was generated from the following file: