7#ifndef PXR_IMAGING_HD_ST_GLSL_PROGRAM_H
8#define PXR_IMAGING_HD_ST_GLSL_PROGRAM_H
11#include "pxr/imaging/hd/version.h"
12#include "pxr/imaging/hdSt/api.h"
13#include "pxr/imaging/hgi/buffer.h"
14#include "pxr/imaging/hgi/shaderProgram.h"
15#include "pxr/imaging/hgi/enums.h"
19PXR_NAMESPACE_OPEN_SCOPE
22using HdStGLSLProgramSharedPtr = std::shared_ptr<class HdStGLSLProgram>;
71 using PopulateDescriptorCallback =
78 PopulateDescriptorCallback populateDescriptor);
83 std::string
const &defines,
85 PopulateDescriptorCallback populateDescriptor);
91 std::string
const &defines,
93 PopulateDescriptorCallback populateDescriptor);
113PXR_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.