顶点开关DX
Vertex Switch DX
所以我的问题有点简单。我有一个顶点缓冲区,我用它创建
pDevice->CreateVertexBuffer(
m_dwCount * sizeof(CUSTOMVERTEX)),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&m_pVB, NULL);
然后假设出于测试目的,我想修改所有这些并将它们相乘。我究竟如何锁定所有这些然后将它们相乘?我试图锁定它
CUSTOMVERTEX* pVoid;
pVB->Lock(0, 0, (void**)&pVoid, 0);
但我认为这不会锁定整个缓冲区。我对 DirectX 有点陌生,所以如果这个问题太愚蠢,我很抱歉,但是感谢任何人的帮助。
首先创建乘法顶点(例如称为 newVertices
)。然后你需要lock
顶点缓冲区并获取指向当前顶点指针的指针,如下所示:
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));
然后unlock
像这样使用顶点缓冲区:
hr = m_pVB->Unlock();
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 为什么这个音频包络不能通过开关的情况?
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 在 c++ 中在开关情况下使用和不使用"break"时的不同输出
- 为什么我的开关/机箱在使用枚举时默认?
- 为什么布尔开关语句有编译器警告?
- 如何使用"equal to"以外的评估编写开关语句
- 为什么开关的优化方式与 c/c++ 中的链接不同?
- 无法找到简单的开关大小写枚举错误
- 未达到的情况会影响开关外壳性能
- C++:我的开关盒循环转到第一种情况
- 有没有办法在C++将字符串与开关语句一起使用?
- 开关:无外壳中断
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- 将编译器开关添加到 Eclipse CDT 内置编译器设置生成?
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 如何在开关的情况下使用右值引用
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 顶点开关DX