Diligent Engine API Reference: Diligent::ShaderD3D11Impl Class Reference

Diligent Engine API Reference

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

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

Inheritance diagram for Diligent::ShaderD3D11Impl:

## Public Member Functions
virtual void | QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
| Queries the specific interface, see IObject::QueryInterface() for details.
virtual void | BindResources (IResourceMapping *pResourceMapping, Uint32 Flags) override final
| Binds shader resources. More...
virtual IShaderVariable * | GetShaderVariable (const Char *Name) override final
| Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
virtual ID3D11DeviceChild * | GetD3D11Shader () override final
| Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object. More...
Public Member Functions inherited from Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >
| ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderD3D11, 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< IShaderD3D11, IRenderDeviceD3D11 >
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< IShaderD3D11, ShaderDesc >
const String | m_ObjectNameCopy
| Copy of a device object name. More...
ShaderDesc | m_Desc
| Object description.

## Detailed Description

Implementation of the Diligent::IShaderD3D11 interface.

## Member Function Documentation

## ◆ BindResources()

void Diligent::ShaderD3D11Impl::BindResources | ( | IResourceMapping * | pResourceMapping,
|  | Uint32 | Flags
| ) |  |
| finaloverridevirtual

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.

## ◆ GetD3D11Shader()

virtual ID3D11DeviceChild* Diligent::ShaderD3D11Impl::GetD3D11Shader | ( |  | ) |
| inlinefinaloverridevirtual

Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object.

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

Implements Diligent::IShaderD3D11.

## ◆ GetShaderVariable()

IShaderVariable * Diligent::ShaderD3D11Impl::GetShaderVariable | ( | const Char * | Name | ) |
| finaloverridevirtual

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.