DXShaderSetLayout

设置顶点着色器的顶点布局。

bool  DXShaderSetLayout(
   int                    shader,       // 着色器句柄
   const DXVertexLayout&  layout[]      // 
   );

参数

shader

[in]  在DXShaderCreate()中创建的顶点着色器句柄。

layout[]

[in]  顶点字段描述数组。该描述通过DXVertexLayout结构设置:

struct DXVertexLayout
  {
   string         semantic_name;       // 在着色器输入签名中与此元素关联的HLSL语义。
   uint           semantic_index;      // 此元素的语义索引。语义索引使用整数索引号修改语义。只有当存在多个具有相同语义的元素时,才需要语义索引
   ENUM_DX_FORMAT format;              // 元素数据的数据类型。
  };

返回值

如果执行成功,返回true,否则 - false。若要接收错误代码,应该调用GetLastError()函数。

注意

布局应该匹配指定顶点缓冲区中的顶点类型。还应该匹配顶点着色器代码中切入点使用的顶点输入类型。

着色器的顶点缓冲区在DXBufferSet()中设置。

DXVertexLayout结构是D3D11_INPUT_ELEMENT_DESC MSDN结构的一个版本。