HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdStSimpleLightingShader Class Reference

#include <simpleLightingShader.h>

+ Inheritance diagram for HdStSimpleLightingShader:

Public Member Functions

HDST_API HdStSimpleLightingShader ()
 
HDST_API ~HdStSimpleLightingShader () override
 
HDST_API ID ComputeHash () const override
 HdShader overrides. More...
 
HDST_API std::string GetSource (TfToken const &shaderStageKey) const override
 
HDST_API void BindResources (int program, HdSt_ResourceBinder const &binder) override
 
HDST_API void UnbindResources (int program, HdSt_ResourceBinder const &binder) override
 Unbinds shader-specific resources. More...
 
HDST_API void AddBufferBinding (HdStBindingRequest const &req)
 Add a custom binding request for use when this shader executes. More...
 
HDST_API void RemoveBufferBinding (TfToken const &name)
 Remove name from custom binding. More...
 
HDST_API void ClearBufferBindings ()
 Clear all custom bindings associated with this shader. More...
 
HDST_API void AddBindings (HdStBindingRequestVector *customBindings) override
 Add custom bindings (used by codegen) More...
 
HDST_API void AddResourcesFromTextures (ResourceContext &ctx) const override
 
HDST_API
HdSt_MaterialParamVector const
GetParams () const override
 HdStShaderCode overrides. More...
 
HDST_API void SetCamera (GfMatrix4d const &worldToViewMatrix, GfMatrix4d const &projectionMatrix) override
 HdStLightingShader overrides. More...
 
HDST_API void SetLightingStateFromOpenGL ()
 
HDST_API void SetLightingState (GlfSimpleLightingContextPtr const &lightingContext)
 
GlfSimpleLightingContextRefPtr GetLightingContext () const
 
HDST_API void AllocateTextureHandles (HdRenderIndex const &renderIndex)
 
const HdStTextureHandleSharedPtrGetDomeLightEnvironmentTextureHandle () const
 
HDST_API
NamedTextureHandleVector const
GetNamedTextureHandles () const override
 
HDST_API const
HdStTextureHandleSharedPtr
GetTextureHandle (const TfToken &name) const
 
HdRenderPassAovBindingVector
const
GetShadowAovBindings ()
 
- Public Member Functions inherited from HdStLightingShader
HDST_API HdStLightingShader ()
 
virtual HDST_API ~HdStLightingShader ()
 
- Public Member Functions inherited from HdStShaderCode
HDST_API HdStShaderCode ()
 
virtual HDST_API ~HdStShaderCode ()
 
virtual ID ComputeTextureSourceHash () const
 
HDST_API VtDictionary GetLayout (TfTokenVector const &shaderStageKeys) const
 
virtual HDST_API bool IsEnabledPrimvarFiltering () const
 Returns whether primvar filtering is enabled for this shader. More...
 
virtual HDST_API TfTokenVector
const
GetPrimvarNames () const
 Returns the names of primvar that are used by this shader. More...
 
virtual HDST_API
HdBufferArrayRangeSharedPtr
const
GetShaderData () const
 
virtual HDST_API TfToken GetMaterialTag () const
 

Additional Inherited Members

- Public Types inherited from HdStShaderCode
typedef size_t ID
 
using NamedTextureHandleVector = std::vector< NamedTextureHandle >
 
- Static Public Member Functions inherited from HdStShaderCode
static HDST_API ID ComputeHash (HdStShaderCodeSharedPtrVector const &shaders)
 Returns the combined hash values of multiple shaders. More...
 

Detailed Description

A shader that supports simple lighting functionality.

Definition at line 57 of file simpleLightingShader.h.

Constructor & Destructor Documentation

HDST_API HdStSimpleLightingShader::HdStSimpleLightingShader ( )
HDST_API HdStSimpleLightingShader::~HdStSimpleLightingShader ( )
override

Member Function Documentation

HDST_API void HdStSimpleLightingShader::AddBindings ( HdStBindingRequestVector customBindings)
overridevirtual

Add custom bindings (used by codegen)

Implements HdStShaderCode.

HDST_API void HdStSimpleLightingShader::AddBufferBinding ( HdStBindingRequest const req)

Add a custom binding request for use when this shader executes.

HDST_API void HdStSimpleLightingShader::AddResourcesFromTextures ( ResourceContext ctx) const
overridevirtual

Adds computations to create the dome light textures that are pre-calculated from the environment map texture.

Reimplemented from HdStShaderCode.

HDST_API void HdStSimpleLightingShader::AllocateTextureHandles ( HdRenderIndex const renderIndex)

Allocates texture handles (texture loading happens later during commit) needed for lights.

Call after lighting context has been set or updated in Sync-phase.

HDST_API void HdStSimpleLightingShader::BindResources ( int  program,
HdSt_ResourceBinder const binder 
)
overridevirtual

Binds shader-specific resources to program XXX: this interface is meant to be used for bridging the GlfSimpleLightingContext mechanism, and not for generic use-cases.

Implements HdStShaderCode.

HDST_API void HdStSimpleLightingShader::ClearBufferBindings ( )

Clear all custom bindings associated with this shader.

HDST_API ID HdStSimpleLightingShader::ComputeHash ( ) const
overridevirtual

HdShader overrides.

Implements HdStShaderCode.

const HdStTextureHandleSharedPtr& HdStSimpleLightingShader::GetDomeLightEnvironmentTextureHandle ( ) const
inline

The dome light environment map used as source for the other dome light textures.

Definition at line 126 of file simpleLightingShader.h.

GlfSimpleLightingContextRefPtr HdStSimpleLightingShader::GetLightingContext ( ) const
inline

Definition at line 111 of file simpleLightingShader.h.

HDST_API NamedTextureHandleVector const& HdStSimpleLightingShader::GetNamedTextureHandles ( ) const
overridevirtual

The textures computed from the dome light environment map that the shader needs to bind for the dome light shading.

Reimplemented from HdStShaderCode.

HDST_API HdSt_MaterialParamVector const& HdStSimpleLightingShader::GetParams ( ) const
overridevirtual

HdStShaderCode overrides.

Reimplemented from HdStShaderCode.

HdRenderPassAovBindingVector const& HdStSimpleLightingShader::GetShadowAovBindings ( )
inline

Definition at line 141 of file simpleLightingShader.h.

HDST_API std::string HdStSimpleLightingShader::GetSource ( TfToken const shaderStageKey) const
overridevirtual

Returns the shader source provided by this shader for shaderStageKey

Implements HdStShaderCode.

HDST_API const HdStTextureHandleSharedPtr& HdStSimpleLightingShader::GetTextureHandle ( const TfToken name) const

Get one of the textures that need to be computed from the dome light environment map.

HDST_API void HdStSimpleLightingShader::RemoveBufferBinding ( TfToken const name)

Remove name from custom binding.

HDST_API void HdStSimpleLightingShader::SetCamera ( GfMatrix4d const worldToViewMatrix,
GfMatrix4d const projectionMatrix 
)
overridevirtual

HdStLightingShader overrides.

Implements HdStLightingShader.

HDST_API void HdStSimpleLightingShader::SetLightingState ( GlfSimpleLightingContextPtr const lightingContext)
HDST_API void HdStSimpleLightingShader::SetLightingStateFromOpenGL ( )
HDST_API void HdStSimpleLightingShader::UnbindResources ( int  program,
HdSt_ResourceBinder const binder 
)
overridevirtual

Unbinds shader-specific resources.

Implements HdStShaderCode.


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