本文整理汇总了C++中VertexFormat::declareCoordVec3方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexFormat::declareCoordVec3方法的具体用法?C++ VertexFormat::declareCoordVec3怎么用?C++ VertexFormat::declareCoordVec3使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexFormat
的用法示例。
在下文中一共展示了VertexFormat::declareCoordVec3方法的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");
}
}