当前位置: 首页>>代码示例>>C++>>正文


C++ VertexFormat::GetElementCount方法代码示例

本文整理汇总了C++中VertexFormat::GetElementCount方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexFormat::GetElementCount方法的具体用法?C++ VertexFormat::GetElementCount怎么用?C++ VertexFormat::GetElementCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VertexFormat的用法示例。


在下文中一共展示了VertexFormat::GetElementCount方法的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;
	}
开发者ID:lythm,项目名称:orb3d,代码行数:71,代码来源:D3D11EffectMaterial.cpp


注:本文中的VertexFormat::GetElementCount方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。