> ## Name

> cgD3D11GetIASignatureByPass - Gets the compiled vertex shader signature as a ID3DBlob from a pass of a validated technique.

> ## Synopsis

>     #include <Cg/cgD3D11.h>

>     ID3DBlob * cgD3D11GetIASignatureByPass( CGpass pass );

> ## Parameters

> pass
>   The pass handle after validation of a CgFX technique.

> ## Return Values

> Returns a pointer to a ID3DBlob object containing the vertex shader signature.

> Returns NULL if the program was not loaded.

> ## Description

> cgD3D11GetIASignatureByPass allows the user to get back the vertex shader signature of a pass of a validated CgFX technique.

> ## Examples

>     myCgEffect = cgCreateEffectFromFile( myCgContext, "effect.cgfx", NULL );
>     myCgTechnique = cgGetFirstTechnique( myCgEffect );

>     if( cgValidateTechnique( myCgTechnique ) != CG_FALSE )
>     {
>         const D3D11_INPUT_ELEMENT_DESC layout[] =
>         {
>            { "POSITION",  0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0,  D3D11_INPUT_PER_VERTEX_DATA, 0 },
>         };

>         CGpass myPass = cgGetFirstPass( myCgTechnique );

>         ID3DBlob * pVSBuf = cgD3D11GetIASignatureByPass( myPass );

>         hr = pDevice->CreateInputLayout( layout, 1, pVSBuf->GetBufferPointer(),
>                    pVSBuf->GetBufferSize(), &g_pVertexLayout );
>     }

> ## Errors

> CG_INVALID_PASS_HANDLE_ERROR is generated if the pass is invalid.

> ## History

> cgD3D11GetIASignatureByPass was introduced in Cg 3.0.

> ## See Also

> cgD3D11GetCompiledProgram