Diligent Engine API Reference: Diligent::ShaderGLImpl Class Reference

Diligent Engine API Reference

Public Member Functions | List of all members
Diligent::ShaderGLImpl Class Reference

Implementation of the Diligent::IShaderGL interface. More...

Inheritance diagram for Diligent::ShaderGLImpl:

## Public Member Functions
virtual void | BindResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
| Binds shader resources. More...
virtual void | QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
| Queries the specific interface, see IObject::QueryInterface() for details.
virtual IShaderVariable * | GetShaderVariable (const Char *Name) override
| Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
Public Member Functions inherited from Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >
| ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderGL, ShaderDesc >
| DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)
virtual const ShaderDesc & | GetDesc () const override final
UniqueIdentifier | GetUniqueID () const
| Returns unique identifier. More...
Public Member Functions inherited from Diligent::IDeviceObject
virtual void | QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
| Queries the specific interface, see IObject::QueryInterface() for details.

## Additional Inherited Members
Protected Attributes inherited from Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >
DummyShaderVariable | m_DummyShaderVar
| Dummy shader variable.
std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > | m_VariablesDesc
| Shader variable descriptions.
std::vector< String, STDAllocatorRawMem< String > > | m_StringPool
| String pool that is used to hold copies of variable names and static sampler names.
std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > | m_StaticSamplers
| Static sampler descriptions.
Protected Attributes inherited from Diligent::DeviceObjectBase< IShaderGL, ShaderDesc >
const String | m_ObjectNameCopy
| Copy of a device object name. More...
ShaderDesc | m_Desc
| Object description.

## Detailed Description

Implementation of the Diligent::IShaderGL interface.

## Member Function Documentation

## ◆ BindResources()

void Diligent::ShaderGLImpl::BindResources | ( | IResourceMapping * | pResourceMapping,
|  | Uint32 | Flags
| ) |  |
| overridevirtual

Binds shader resources.

Parameters

  [in] | pResourceMapping | - Pointer to IResourceMapping interface to look for resources.
  [in] | Flags | - Additional flags for the operation. See Diligent::BIND_SHADER_RESOURCES_FLAGS for details.

Remarks
  The shader will keep strong references to all resources bound to it.

Implements Diligent::IShader.

## ◆ GetShaderVariable()

IShaderVariable * Diligent::ShaderGLImpl::GetShaderVariable | ( | const Char * | Name | ) |
| overridevirtual

Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned.

Parameters

  [in] | Name | - Name of the variable.

Remarks
  The method does not increment the reference counter of the returned interface.

Implements Diligent::IShader.