9#include <opensubdiv/version.h>
11#include <opensubdiv/osd/nonCopyable.h>
12#include <opensubdiv/osd/types.h>
14using OpenSubdiv::Far::PatchTable;
15using OpenSubdiv::Osd::NonCopyable;
16using OpenSubdiv::Osd::PatchArrayVector;
21class GPUPatchTable :
private OpenSubdiv::Osd::NonCopyable<GPUPatchTable> {
85 bool allocate(PatchTable
const *farPatchTable);
std::vector< gpu::StorageBuf * > _fvarParamBuffers
PatchArrayVector const & GetVaryingPatchArrays() const
Returns the patch arrays for varying index buffer data.
std::vector< gpu::StorageBuf * > _fvarIndexBuffers
gpu::StorageBuf * GetFVarPatchParamBuffer(int fvarChannel=0) const
Returns the GL index buffer containing face-varying patch params.
gpu::StorageBuf * _varyingIndexBuffer
gpu::StorageBuf * _patchParamBuffer
static GPUPatchTable * Create(PatchTable const *farPatchTable, void *deviceContext=NULL)
PatchArrayVector const & GetFVarPatchArrays(int fvarChannel=0) const
Returns the patch arrays for face-varying index buffer data.
gpu::StorageBuf * _patchIndexBuffer
gpu::StorageBuf * GetPatchParamBuffer() const
Returns the GL index buffer containing the patch parameter.
PatchArrayVector _patchArrays
PatchArrayVector const & GetPatchArrays() const
Returns the patch arrays for vertex index buffer data.
bool allocate(PatchTable const *farPatchTable)
gpu::StorageBuf * GetFVarPatchIndexBuffer(int fvarChannel=0) const
Returns the GL index buffer containing face-varying control vertices.
gpu::StorageBuf * GetPatchIndexBuffer() const
Returns the GL index buffer containing the patch control vertices.
gpu::StorageBuf * GetVaryingPatchIndexBuffer() const
Returns the GL index buffer containing the varying control vertices.
std::vector< PatchArrayVector > _fvarPatchArrays
int GetNumFVarChannels() const
Returns the number of face-varying channel buffers.
PatchArrayVector _varyingPatchArrays