ID3D11Device::CreateInputLayout 方法 (d3d11.h)

创建输入布局对象来描述输入装配器阶段的输入缓冲区数据。

语法

HRESULT CreateInputLayout(
  [in]            const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
  [in]            UINT                           NumElements,
  [in]            const void                     *pShaderBytecodeWithInputSignature,
  [in]            SIZE_T                         BytecodeLength,
  [out, optional] ID3D11InputLayout              **ppInputLayout
);

参数

[in] pInputElementDescs

类型: const D3D11_INPUT_ELEMENT_DESC*

输入装配器阶段输入数据类型的数组;每种类型都由元素说明进行描述, (请参阅 D3D11_INPUT_ELEMENT_DESC) 。

[in] NumElements

类型: UINT

input-elements 数组中的输入数据类型数。

[in] pShaderBytecodeWithInputSignature

类型: const void*

指向已编译着色器的指针。 编译的着色器代码包含一个输入签名,该签名针对元素数组进行验证。 请参阅备注。

[in] BytecodeLength

类型: SIZE_T

已编译的着色器的大小。

[out, optional] ppInputLayout

类型: ID3D11InputLayout**

指向创建的输入布局对象的指针 (请参阅 ID3D11InputLayout) 。 若要验证其他输入参数,请将此指针设置为 NULL ,并验证方法是否返回S_FALSE。

返回值

类型: HRESULT

如果该方法成功,则返回代码S_OK。 有关失败的错误代码,请参阅 Direct3D 11 返回代码

注解

创建输入布局对象后,必须在调用绘图 API 之前将其绑定到输入装配器阶段。

从着色器签名创建输入布局对象后,可以将输入布局对象与任何其他具有相同输入签名的着色器重复使用, () 中包含的语义。 当你使用具有相同输入的许多着色器时,这可以简化输入布局对象的创建。

如果输入布局声明中的数据类型与着色器输入签名中的数据类型不匹配,则 CreateInputLayout 将在编译期间生成警告。 警告只是为了提醒人们注意从寄存器读取数据时可能会重新解释这一事实。 如果重新解释是有意) ,则可以忽略此警告 (,或者使两个声明中的数据类型匹配以消除警告。

Windows Phone 8:支持此 API。

要求

要求
目标平台 Windows
标头 d3d11.h
Library D3D11.lib

另请参阅

ID3D11Device