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


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

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


在下文中一共展示了VertexFormat::declare2DPos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ARRAYSIZE

void Layer_D3D::init()
{
	// Create vertex buffer
	{
		VertexFormat format;
		format.declareCoordVec3();
		format.declareColor();
		format.declareUV();
		m_pBillboardVertexBuffer = new VertexBuffer_D3D(format, 6, g_context.m_pShaderManager->GetShader(ShaderManager_D3D::SHADER_DEFAULT));

		VertexFormat instanceFormat;
		instanceFormat.declare2DPos();
		instanceFormat.declareUV();
		instanceFormat.addInstanceElement(VertexFormat::SEMANTIC_COLOR, 0u, 1u);
		instanceFormat.addInstanceElement(VertexFormat::SEMANTIC_TEXCOORD, 1u, 4u);
		instanceFormat.addInstanceElement(VertexFormat::SEMANTIC_TEXCOORD, 2u, 4u);
		instanceFormat.addInstanceElement(VertexFormat::SEMANTIC_TEXCOORD, 3u, 2u);
		m_pQuadVertexBuffer = new VertexBuffer_D3D(instanceFormat, 4, g_context.m_pShaderManager->GetShader(ShaderManager_D3D::SHADER_INSTANCING), 2000u);
		m_pQuadVertexBuffer->setTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);

		Vertex_PUV vertices[] = 
		{
			{ XMFLOAT2(-0.5f, -0.5f), XMFLOAT2(0.0f, 1.0f) },
			{ XMFLOAT2(-0.5f,  0.5f), XMFLOAT2(0.0f, 0.0f) },
			{ XMFLOAT2( 0.5f, -0.5f), XMFLOAT2(1.0f, 1.0f) },
			{ XMFLOAT2( 0.5f,  0.5f), XMFLOAT2(1.0f, 0.0f) },
		};

		m_pQuadVertexBuffer->copyFromBuffer(vertices, ARRAYSIZE(vertices));
		m_pQuadVertexBuffer->copyToGPU();
	}

	// Create constant buffer
	{
		D3D11_BUFFER_DESC desc;
		ZeroMemory(&desc, sizeof(desc));
		desc.ByteWidth = sizeof(CBufferMVP);
		desc.Usage = D3D11_USAGE_DYNAMIC;
		desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
		desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;

		HRESULT hr = g_context.m_pDevice->CreateBuffer(&desc, nullptr, &m_pMatrixConstantBuffer);
		assert(SUCCEEDED(hr) && "Unable to create constant buffer");
	}
}
开发者ID:kikuchi-hiroshi,项目名称:moyai,代码行数:45,代码来源:Layer_D3D.cpp


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