gpt4 book ai didi

c++ - 顶点开关 DX

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:04:03 26 4
gpt4 key购买 nike

所以我的问题有点简单。我有一个顶点缓冲区,我用

创建它
    pDevice->CreateVertexBuffer(
m_dwCount * sizeof(CUSTOMVERTEX)),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&m_pVB, NULL);

然后假设出于测试目的,我想修改所有这些并将它们相乘。我究竟如何锁定所有这些然后将它们相乘?我试图锁定它

    CUSTOMVERTEX* pVoid;
pVB->Lock(0, 0, (void**)&pVoid, 0);

但我假设不会锁定整个缓冲区。我是 DirectX 的新手,所以如果问题太愚蠢,我很抱歉,但是感谢任何人的帮助。

最佳答案

首先创建您的多重顶点(例如称为 newVertices)。然后您需要锁定您的顶点缓冲区并获取指向当前顶点指针的指针,如下所示:

CUSTOMVERTEX* pVertices;
HRESULT hr = m_pVB->Lock(0, 0, reinterpret_cast<void**>(&pVertices), 0);

然后你可以使用 memcpy 像这样将你的新顶点替换成它:

if(hr == S_OK)
memcpy(pVertices, newVertices, num_of_vertices * sizeof(CUSTOMVERTEX));

然后像这样解锁你的顶点缓冲区:

hr = m_pVB->Unlock();

关于c++ - 顶点开关 DX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53924464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com