本文整理汇总了C++中VertexFormat::GetElement方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexFormat::GetElement方法的具体用法?C++ VertexFormat::GetElement怎么用?C++ VertexFormat::GetElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexFormat
的用法示例。
在下文中一共展示了VertexFormat::GetElement方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sizeof
bool D3D11EffectMaterial::SetVertexFormat(const VertexFormat& format)
{
if(m_pIL != NULL)
{
m_pIL->Release();
}
int nElem = format.GetElementCount();
D3D11_INPUT_ELEMENT_DESC* layout = new D3D11_INPUT_ELEMENT_DESC[nElem];
for(int i = 0; i < nElem; ++i)
{
const VertexElement& e = format.GetElement(i);
switch(e.semantic)
{
case VertexElement::POSITION:
layout[i].SemanticName = "POSITION";
break;
case VertexElement::NORMAL:
layout[i].SemanticName = "NORMAL";
break;
case VertexElement::COLOR:
layout[i].SemanticName = "COLOR";
break;
case VertexElement::POSITION_T:
layout[i].SemanticName = "POSITIONT";
break;
case VertexElement::TEXCOORD:
layout[i].SemanticName = "TEXCOORD";
break;
default:
break;
}
layout[i].Format = D3D11Format::Convert(e.type);
layout[i].SemanticIndex = e.element_slot;
layout[i].InputSlot = 0;
layout[i].AlignedByteOffset = D3D11_APPEND_ALIGNED_ELEMENT ;
layout[i].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
layout[i].InstanceDataStepRate = 0;
}
ID3DX11EffectTechnique* pTech = m_pEffect->GetTechniqueByIndex(0);
ID3DX11EffectPass* pPass = pTech->GetPassByIndex(0);
D3DX11_PASS_DESC pass;
ZeroMemory(&pass, sizeof(pass));
HRESULT hr = pPass->GetDesc(&pass);
hr = m_pDevice->CreateInputLayout( layout,
nElem,
pass.pIAInputSignature,
pass.IAInputSignatureSize,
&m_pIL );
if(FAILED(hr))
{
delete[] layout;
return false;
}
delete[] layout;
return true;
}