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:
Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11, FixedBlockMemoryAllocator > Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc, FixedBlockMemoryAllocator > Diligent::ObjectBase< IShaderD3D11, FixedBlockMemoryAllocator > Diligent::RefCountedObject< IShaderD3D11, FixedBlockMemoryAllocator > Diligent::IShaderD3D11 Diligent::IShader Diligent::IDeviceObject Diligent::IObject

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 IShaderVariableGetShaderVariable (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, FixedBlockMemoryAllocator >
 ShaderBase (FixedBlockMemoryAllocator &ObjAllocator, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc, FixedBlockMemoryAllocator >
 DeviceObjectBase (FixedBlockMemoryAllocator &ObjAllocator, class IRenderDevice *pDevice, const ShaderDesc &ObjDesc, IObject *pOwner=nullptr, bool bIsDeviceInternal=false)
 
virtual const ShaderDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::RefCountedObject< IShaderD3D11, FixedBlockMemoryAllocator >
virtual IReferenceCountersGetReferenceCounters () const override final
 
virtual Atomics::Long AddRef () override
 
virtual Atomics::Long Release () override
 

Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11, FixedBlockMemoryAllocator >
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, FixedBlockMemoryAllocator >
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

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.

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.

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.