24 #ifndef PXR_IMAGING_HD_ST_GEOMETRIC_SHADER_H
25 #define PXR_IMAGING_HD_ST_GEOMETRIC_SHADER_H
42 std::shared_ptr<class HdSt_GeometricShader>;
43 struct HdSt_ShaderKey;
137 bool useHardwareFaceCulling,
138 bool hasMirroredTransform,
144 float lineWidth = 0);
156 HdSt_ResourceBinder
const &binder,
161 HdSt_ResourceBinder
const &binder,
168 return _frustumCullingPass;
201 return _fvarPatchType;
225 HdSt_ShaderKey
const &shaderKey,
231 bool _useHardwareFaceCulling;
232 bool _hasMirroredTransform;
237 std::unique_ptr<HioGlslfx> _glslfx;
238 bool _frustumCullingPass;
250 #endif // PXR_IMAGING_HD_ST_GEOMETRIC_SHADER_H
FvarPatchType GetFvarPatchType() const
PrimitiveType GetPrimitiveType() const
HDST_API std::string GetSource(TfToken const &shaderStageKey) const override
static bool IsPrimTypeQuads(PrimitiveType primType)
static bool IsPrimTypeTriangles(PrimitiveType primType)
HDST_API int GetNumPatchEvalVerts() const
bool IsPrimTypeTriangles() const
std::shared_ptr< class HdSt_GeometricShader > HdSt_GeometricShaderSharedPtr
GLbitfield GLuint program
bool IsPrimTypeQuads() const
static bool IsPrimTypeMesh(PrimitiveType primType)
HDST_API void UnbindResources(int program, HdSt_ResourceBinder const &binder, HdRenderPassState const &state) override
Unbinds shader-specific resources.
bool IsPrimTypeMesh() const
HDST_API int GetPrimitiveIndexSize() const
PrimitiveType
Used in HdSt_CodeGen to generate the appropriate shader source.
HDST_API GLenum GetPrimitiveMode() const
Return the GL primitive type of the draw item based on _primType.
static bool IsPrimTypeRefinedMesh(PrimitiveType primType)
GLsizei const GLchar *const * string
static bool IsPrimTypeBasisCurves(PrimitiveType primType)
bool IsPrimTypePoints() const
member query functions for PrimitiveType
bool IsPrimTypePatches() const
HDST_API ~HdSt_GeometricShader() override
static bool IsPrimTypePatches(PrimitiveType primType)
HDST_API HdSt_GeometricShader(std::string const &glslfxString, PrimitiveType primType, HdCullStyle cullStyle, bool useHardwareFaceCulling, bool hasMirroredTransform, bool doubleSided, HdPolygonMode polygonMode, bool cullingPass, FvarPatchType fvarPatchType, SdfPath const &debugId=SdfPath(), float lineWidth=0)
HDST_API ID ComputeHash() const override
static HdSt_GeometricShaderSharedPtr Create(HdSt_ShaderKey const &shaderKey, HdStResourceRegistrySharedPtr const &resourceRegistry)
HDST_API int GetNumPrimitiveVertsForGeometryShader() const
bool IsPrimTypeBasisCurves() const
HDST_API void BindResources(int program, HdSt_ResourceBinder const &binder, HdRenderPassState const &state) override
HDST_API void AddBindings(HdBindingRequestVector *customBindings) override
Add custom bindings (used by codegen)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
static bool IsPrimTypePoints(PrimitiveType primType)
static query functions for PrimitiveType
#define PXR_NAMESPACE_CLOSE_SCOPE
bool IsFrustumCullingPass() const
Returns true if this geometric shader is used for GPU frustum culling.
std::shared_ptr< class HdStResourceRegistry > HdStResourceRegistrySharedPtr
std::vector< class HdBindingRequest > HdBindingRequestVector