OpenSubdiv
Loading...
Searching...
No Matches
CpuPatchTable Class Reference

Cpu patch table. More...

#include <cpuPatchTable.h>

Public Member Functions

 CpuPatchTable (const Far::PatchTable *patchTable)
 
 ~CpuPatchTable ()
 
const PatchArrayGetPatchArrayBuffer () const
 
const int * GetPatchIndexBuffer () const
 
const PatchParamGetPatchParamBuffer () const
 
size_t GetNumPatchArrays () const
 
size_t GetPatchIndexSize () const
 
size_t GetPatchParamSize () const
 
const PatchArrayGetVaryingPatchArrayBuffer () const
 
const int * GetVaryingPatchIndexBuffer () const
 
size_t GetVaryingPatchIndexSize () const
 
int GetNumFVarChannels () const
 
const PatchArrayGetFVarPatchArrayBuffer (int fvarChannel=0) const
 
const int * GetFVarPatchIndexBuffer (int fvarChannel=0) const
 
size_t GetFVarPatchIndexSize (int fvarChannel=0) const
 
const PatchParamGetFVarPatchParamBuffer (int fvarChannel=0) const
 
size_t GetFVarPatchParamSize (int fvarChannel=0) const
 

Static Public Member Functions

static CpuPatchTableCreate (const Far::PatchTable *patchTable, void *deviceContext=NULL)
 

Protected Attributes

PatchArrayVector _patchArrays
 
std::vector< int > _indexBuffer
 
PatchParamVector _patchParamBuffer
 
PatchArrayVector _varyingPatchArrays
 
std::vector< int > _varyingIndexBuffer
 
std::vector< PatchArrayVector_fvarPatchArrays
 
std::vector< std::vector< int > > _fvarIndexBuffers
 
std::vector< PatchParamVector_fvarParamBuffers
 

Detailed Description

Cpu patch table.

XXX: We can use just Far::PatchTable for typical CpuEval use cases.

Currently this class exists because of the template resolution for the CpuEvaluator's generic interface functions (glEvalLimit example uses), and device-specific patch tables such as GLPatchTables internally use as a staging buffer to splice patcharray and interleave sharpnesses.

Ideally Far::PatchTables should have the same data representation and accessors so that we don't have to copy data unnecessarily.

Definition at line 59 of file cpuPatchTable.h.

Constructor & Destructor Documentation

◆ CpuPatchTable()

CpuPatchTable ( const Far::PatchTable patchTable)
explicit

◆ ~CpuPatchTable()

~CpuPatchTable ( )
inline

Definition at line 68 of file cpuPatchTable.h.

Member Function Documentation

◆ Create()

static CpuPatchTable * Create ( const Far::PatchTable patchTable,
void *  deviceContext = NULL 
)
inlinestatic

Definition at line 61 of file cpuPatchTable.h.

◆ GetFVarPatchArrayBuffer()

const PatchArray * GetFVarPatchArrayBuffer ( int  fvarChannel = 0) const
inline

Definition at line 109 of file cpuPatchTable.h.

◆ GetFVarPatchIndexBuffer()

const int * GetFVarPatchIndexBuffer ( int  fvarChannel = 0) const
inline

Definition at line 112 of file cpuPatchTable.h.

◆ GetFVarPatchIndexSize()

size_t GetFVarPatchIndexSize ( int  fvarChannel = 0) const
inline

Definition at line 115 of file cpuPatchTable.h.

◆ GetFVarPatchParamBuffer()

const PatchParam * GetFVarPatchParamBuffer ( int  fvarChannel = 0) const
inline

Definition at line 118 of file cpuPatchTable.h.

◆ GetFVarPatchParamSize()

size_t GetFVarPatchParamSize ( int  fvarChannel = 0) const
inline

Definition at line 121 of file cpuPatchTable.h.

◆ GetNumFVarChannels()

int GetNumFVarChannels ( ) const
inline

Definition at line 106 of file cpuPatchTable.h.

◆ GetNumPatchArrays()

size_t GetNumPatchArrays ( ) const
inline

Definition at line 80 of file cpuPatchTable.h.

◆ GetPatchArrayBuffer()

const PatchArray * GetPatchArrayBuffer ( ) const
inline

Definition at line 70 of file cpuPatchTable.h.

◆ GetPatchIndexBuffer()

const int * GetPatchIndexBuffer ( ) const
inline

Definition at line 73 of file cpuPatchTable.h.

◆ GetPatchIndexSize()

size_t GetPatchIndexSize ( ) const
inline

Definition at line 83 of file cpuPatchTable.h.

◆ GetPatchParamBuffer()

const PatchParam * GetPatchParamBuffer ( ) const
inline

Definition at line 76 of file cpuPatchTable.h.

◆ GetPatchParamSize()

size_t GetPatchParamSize ( ) const
inline

Definition at line 86 of file cpuPatchTable.h.

◆ GetVaryingPatchArrayBuffer()

const PatchArray * GetVaryingPatchArrayBuffer ( ) const
inline

Definition at line 90 of file cpuPatchTable.h.

◆ GetVaryingPatchIndexBuffer()

const int * GetVaryingPatchIndexBuffer ( ) const
inline

Definition at line 96 of file cpuPatchTable.h.

◆ GetVaryingPatchIndexSize()

size_t GetVaryingPatchIndexSize ( ) const
inline

Definition at line 102 of file cpuPatchTable.h.

Member Data Documentation

◆ _fvarIndexBuffers

std::vector< std::vector<int> > _fvarIndexBuffers
protected

Definition at line 134 of file cpuPatchTable.h.

◆ _fvarParamBuffers

std::vector< PatchParamVector > _fvarParamBuffers
protected

Definition at line 135 of file cpuPatchTable.h.

◆ _fvarPatchArrays

std::vector< PatchArrayVector > _fvarPatchArrays
protected

Definition at line 133 of file cpuPatchTable.h.

◆ _indexBuffer

std::vector<int> _indexBuffer
protected

Definition at line 127 of file cpuPatchTable.h.

◆ _patchArrays

PatchArrayVector _patchArrays
protected

Definition at line 126 of file cpuPatchTable.h.

◆ _patchParamBuffer

PatchParamVector _patchParamBuffer
protected

Definition at line 128 of file cpuPatchTable.h.

◆ _varyingIndexBuffer

std::vector<int> _varyingIndexBuffer
protected

Definition at line 131 of file cpuPatchTable.h.

◆ _varyingPatchArrays

PatchArrayVector _varyingPatchArrays
protected

Definition at line 130 of file cpuPatchTable.h.


The documentation for this class was generated from the following file: