我有一个名为cube的对象,我有一个顶点向量。在我的主要DX11项目中,我正在制作D3D11_SUBRESOURCE_DATA以创建顶点缓冲区。当我创建一个子资源时,我需要引用这样的向量:
subresourcedata.pSysMem =& vertices;
但是现在顶点在一个对象中我不知道怎么做(cube.vertices不一样),对象必须是一个指针,所以我可以使用 - >代替 。引用它们还是有一种简单的方法来做我正在使用普通对象做的事情?
由于
答案 0 :(得分:3)
只需在类中添加一个存取器即可将顶点公开为指针。所以,假设你有一个Vertex
结构,比如:
class CMyCube
{
// ... blah blah
public:
const Vertex* GetVertices() const { return &m_pVertices[0]; }
// ... blah blah
private:
std::vector<Vertex> m_pVertices;
};
然后你可以这样做:
pSubResource.pSysMem = pSomeCubeInstance.GetVertices();
答案 1 :(得分:0)
你可以超载&amp;操作
class cube
{
public:
vertices* operator&() const { return &_vertices[0]; }
std::vector<vertices> _vertices;
};
然后你可以这样做:
立方体c;
subresourcedata.pSysMem =&amp; c;