本文整理汇总了C++中VertexElement::SetData方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexElement::SetData方法的具体用法?C++ VertexElement::SetData怎么用?C++ VertexElement::SetData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexElement
的用法示例。
在下文中一共展示了VertexElement::SetData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Mesh
Mesh *LoadCM3DFile( char const *file )
{
int const nVertices = 3;
// DUMMY DATA ---------------------------------------------------------
// create vertices
XMFLOAT3A pos[nVertices];
pos[0] = XMFLOAT3A(0.0f, .5f, -1.0f);
pos[1] = XMFLOAT3A( -.5f, -.5f, -1.0f);
pos[2] = XMFLOAT3A(0.5f, -0.5f, -1.0f);
// colors
XMFLOAT4 colors[nVertices] =
{
XMFLOAT4(1, 1, 1, 1), XMFLOAT4(1, 0, 0, 1), XMFLOAT4(0, 0, 1, 1)
};
// 1) load mesh file
// 2) parse mesh file
// 3) mesh is made up of N subsets
// 4) for each subset:
// - get subset material
// - get subset geom info (vertex start, count, indices...)
// - create input element and add it to the mesh
// 5) load the shaders and create the input layout
// fill the Mesh object with geom data (positions, normals...) --------
(void)file;
Mesh *mesh = new Mesh(/*nVertices*/);
VertexElement *vePos = new VertexElement(sizeof(XMFLOAT3A), nVertices);
vePos->elementDesc.SemanticName = SemanticName::Position;
vePos->elementDesc.InputSlot = 0;
vePos->elementDesc.Format = DXGI_FORMAT_R32G32B32_FLOAT;
vePos->elementDesc.InputSlot = 0;
vePos->SetData((float *)pos);
VertexElement *veClr = new VertexElement(sizeof(XMFLOAT4), nVertices);
veClr->elementDesc.SemanticName = SemanticName::Color;
veClr->elementDesc.InputSlot = 0;
veClr->elementDesc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
veClr->elementDesc.InputSlot = 0;
veClr->elementDesc.AlignedByteOffset = D3D11_APPEND_ALIGNED_ELEMENT;
veClr->SetData((float *)colors);
mesh->AddVertexElement(vePos);
mesh->AddVertexElement(veClr);
//mesh->LoadToBuffers();
return mesh;
}