ID3D11ShaderReflectionVariable::GetInterfaceSlot method

Gets the corresponding interface slot for a variable that represents an interface pointer.


UINT GetInterfaceSlot(
  UINT uArrayIndex



Type: UINT

Index of the array element to get the slot number for. For a non-array variable this value will be zero.

Return value

Type: UINT

Returns the index of the interface in the interface array.


GetInterfaceSlot gets the corresponding slot in an dynamic linkage array for an interface instance. The returned slot number is used to set an interface instance to a particular class instance. See the HLSL Interfaces and Classes overview for additional information.

This method's interface is hosted in the out-of-box DLL D3DCompiler_xx.dll.


Retrieving and using an interface slot

ID3D11ShaderReflectionVariable* pAmbientLightingVar = pReflector->GetVariableByName("g_abstractAmbientLighting");
g_iAmbientLightingOffset = pAmbientLightingVar->GetInterfaceSlot(0);
g_pPSClassLinkage->GetClassInstance( "g_hemiAmbientLight", 0, &g_pHemiAmbientLightClass );
g_dynamicLinkageArray[g_iAmbientLightingOffset] = g_pHemiAmbientLightClass; 
pd3dImmediateContext->PSSetShader( g_pPixelShader, g_dynamicLinkageArray, g_iNumPSInterfaces );


Target Platform Windows
Header d3d11shader.h
Library D3DCompiler.lib
DLL D3DCompiler_47.dll

See also

ID3D11ShaderReflectionVariable Interface