OpenSubdiv中的Osd.CpuVertexBuffer类是一个CPU内存上的缓存类,用于存储网格的顶点数据。此类主要用于配合Osd.CpuComputeContext类进行顶点数据的计算和更新。
class CpuVertexBuffer : public Far::VertexEditTablesFactory<CpuVertexBuffer> {
public:
/// 构造函数
CpuVertexBuffer(int numElements, int numVertices);
/// 析构函数
virtual ~CpuVertexBuffer();
/// 返回这个缓存中存储的元素数量
int GetNumElements() const;
/// 返回这个缓存中存储的顶点数量
int GetNumVertices() const;
/// 获取指定元素和顶点的值
void* BindCpuBuffer() const;
/// 获取指定元素和顶点的值
template<class T>
T* BindCpuBuffer() const;
};
CpuVertexBuffer(int numElements, int numVertices)
参数:
numElements
:缓存中每个顶点的元素数量numVertices
:缓存中顶点的数量构造一个指定大小的CPU内存缓存。
virtual ~CpuVertexBuffer()
释放CPU内存缓存。
int GetNumElements() const
获取缓存中每个顶点的元素数量。
int GetNumVertices() const
获取缓存中顶点的数量。
void* BindCpuBuffer() const
获取指定元素和顶点的值。
返回值:返回缓存中保存的元素值的指针。
template<class T>
T* BindCpuBuffer() const
获取指定元素和顶点的值。
返回值:返回缓存中保存的元素值的指针。