Loading...
Searching...
No Matches
HdStGLSLProgram Class Referencefinal

An instance of a glsl program. More...

#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 bool CompileShader (HgiShaderStage stage, std::string const &source)
 Compile shader source for a shader stage.
 
HDST_API bool CompileShader (HgiShaderFunctionDesc const &desc)
 Compile shader source for a shader stage from an HgiShaderFunctionDesc.
 
HDST_API bool Link ()
 Link the compiled shaders together.
 
HDST_API bool Validate () const
 Validate if this program is a valid progam in the current context.
 
HgiShaderProgramHandle const & GetProgram () const
 Returns HgiShaderProgramHandle for the shader program.
 
TfToken const & GetRole () const
 Returns the role of the GPU data in this resource.
 

Static Public Member Functions

static HDST_API HdStGLSLProgramSharedPtr GetComputeProgram (TfToken const &shaderToken, HdStResourceRegistry *resourceRegistry)
 Convenience method to get a shared compute shader program.
 
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

◆ ID

typedef size_t ID

Definition at line 48 of file glslProgram.h.

◆ PopulateDescriptorCallback

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

Definition at line 86 of file glslProgram.h.

Member Function Documentation

◆ CompileShader() [1/2]

HDST_API bool CompileShader ( HgiShaderFunctionDesc const &  desc)

Compile shader source for a shader stage from an HgiShaderFunctionDesc.

◆ CompileShader() [2/2]

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

Compile shader source for a shader stage.

◆ GetComputeProgram()

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

Convenience method to get a shared compute shader program.

◆ GetProgram()

HgiShaderProgramHandle const & GetProgram ( ) const
inline

Returns HgiShaderProgramHandle for the shader program.

Definition at line 72 of file glslProgram.h.

◆ GetRole()

TfToken const & GetRole ( ) const
inline

Returns the role of the GPU data in this resource.

Definition at line 111 of file glslProgram.h.

◆ Link()

HDST_API bool Link ( )

Link the compiled shaders together.

◆ Validate()

HDST_API bool 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: