24#ifndef PXR_IMAGING_HD_ST_GLSL_PROGRAM_H
25#define PXR_IMAGING_HD_ST_GLSL_PROGRAM_H
28#include "pxr/imaging/hd/version.h"
29#include "pxr/imaging/hdSt/api.h"
30#include "pxr/imaging/hgi/buffer.h"
31#include "pxr/imaging/hgi/shaderProgram.h"
32#include "pxr/imaging/hgi/enums.h"
34PXR_NAMESPACE_OPEN_SCOPE
37using HdStGLSLProgramSharedPtr = std::shared_ptr<class HdStGLSLProgram>;
86 using PopulateDescriptorCallback =
93 PopulateDescriptorCallback populateDescriptor);
98 std::string
const &defines,
100 PopulateDescriptorCallback populateDescriptor);
106 std::string
const &defines,
108 PopulateDescriptorCallback populateDescriptor);
128PXR_NAMESPACE_CLOSE_SCOPE
An instance of a glsl program.
HDST_API bool CompileShader(HgiShaderFunctionDesc const &desc)
Compile shader source for a shader stage from an HgiShaderFunctionDesc.
HDST_API bool CompileShader(HgiShaderStage stage, std::string const &source)
Compile shader source for a shader stage.
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.
HDST_API bool Link()
Link the compiled shaders together.
static HDST_API HdStGLSLProgramSharedPtr GetComputeProgram(TfToken const &shaderToken, HdStResourceRegistry *resourceRegistry)
Convenience method to get a shared compute shader program.
TfToken const & GetRole() const
Returns the role of the GPU data in this resource.
A central registry of all GPU resources.
Token for efficient comparison, assignment, and hashing of known strings.
Describes the properties needed to create a GPU shader function.
Describes the properties needed to create a GPU shader program.