OpenSubdiv: GLXFBEvaluator Class Reference

| OpenSubdiv

Loading...
Searching...
No Matches
GLXFBEvaluator Class Reference

`#include <glXFBEvaluator.h>`

## Public Types
using | ID = unsigned int
using | LOCATION = int
using | Instantiatable = bool

## Public Member Functions
| GLXFBEvaluator (bool interleavedDerivativeBuffers=false)
| Constructor.
| ~GLXFBEvaluator ()
| Destructor. note that the GL context must be made current.
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable) const
| Generic stencil function.
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable) const
| Generic stencil function.
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable) const
| Generic stencil function.
bool | EvalStencils (ID srcBuffer, BufferDescriptor const &srcDesc, ID dstBuffer, BufferDescriptor const &dstDesc, ID duBuffer, BufferDescriptor const &duDesc, ID dvBuffer, BufferDescriptor const &dvDesc, ID sizesBuffer, ID offsetsBuffer, ID indicesBuffer, ID weightsBuffer, ID duWeightsBuffer, ID dvWeightsBuffer, int start, int end) const
| Dispatch the GLSL XFB kernel on on GPU asynchronously returns false if the kernel hasn't been compiled yet.
bool | EvalStencils (ID srcBuffer, BufferDescriptor const &srcDesc, ID dstBuffer, BufferDescriptor const &dstDesc, ID duBuffer, BufferDescriptor const &duDesc, ID dvBuffer, BufferDescriptor const &dvDesc, ID duuBuffer, BufferDescriptor const &duuDesc, ID duvBuffer, BufferDescriptor const &duvDesc, ID dvvBuffer, BufferDescriptor const &dvvDesc, ID sizesBuffer, ID offsetsBuffer, ID indicesBuffer, ID weightsBuffer, ID duWeightsBuffer, ID dvWeightsBuffer, ID duuWeightsBuffer, ID duvWeightsBuffer, ID dvvWeightsBuffer, int start, int end) const
| Dispatch the GLSL XFB kernel on on GPU asynchronously returns false if the kernel hasn't been compiled yet.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.
bool | EvalPatches (ID srcBuffer, BufferDescriptor const &srcDesc, ID dstBuffer, BufferDescriptor const &dstDesc, ID duBuffer, BufferDescriptor const &duDesc, ID dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, ID patchCoordsBuffer, const PatchArrayVector &patchArrays, ID patchIndexBuffer, ID patchParamsBuffer) const
bool | EvalPatches (ID srcBuffer, BufferDescriptor const &srcDesc, ID dstBuffer, BufferDescriptor const &dstDesc, ID duBuffer, BufferDescriptor const &duDesc, ID dvBuffer, BufferDescriptor const &dvDesc, ID duuBuffer, BufferDescriptor const &duuDesc, ID duvBuffer, BufferDescriptor const &duvDesc, ID dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, ID patchCoordsBuffer, const PatchArrayVector &patchArrays, ID patchIndexBuffer, ID patchParamsBuffer) const
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0) const
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
bool | Compile (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc=BufferDescriptor(), BufferDescriptor const &dvDesc=BufferDescriptor(), BufferDescriptor const &duuDesc=BufferDescriptor(), BufferDescriptor const &duvDesc=BufferDescriptor(), BufferDescriptor const &dvvDesc=BufferDescriptor())

## Static Public Member Functions
template<typename DEVICE_CONTEXT>
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, DEVICE_CONTEXT deviceContext)
| Generic creator template.
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, void *deviceContext)
| Specialization to allow creation without a device context.
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, bool interleavedDerivativeBuffers=false)
template<typename DEVICE_CONTEXT>
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, DEVICE_CONTEXT deviceContext)
| Generic creator template.
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, void *deviceContext)
| Specialization to allow creation without a device context.
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, bool interleavedDerivativeBuffers=false)
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>
static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>
static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLXFBEvaluator const *instance, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
static void | Synchronize (void *kernel)
| Wait the dispatched kernel finishes.

## Detailed Description

Definition at line 82 of file glXFBEvaluator.h.

## Member Typedef Documentation

## ◆ ID

using ID = unsigned int

Definition at line 84 of file glXFBEvaluator.h.

## ◆ Instantiatable

using Instantiatable = bool

Definition at line 86 of file glXFBEvaluator.h.

## ◆ LOCATION

using LOCATION = int

Definition at line 85 of file glXFBEvaluator.h.

## Constructor & Destructor Documentation

## ◆ GLXFBEvaluator()

GLXFBEvaluator | ( | bool | interleavedDerivativeBuffers = false | ) |

Constructor.

The transform feedback evaluator can make more sparing use of transform feeback buffer bindings when it is known that evaluator output buffers are shared and the corresponding buffer descriptors are interleaved. When interleavedDerivativeBuffers is true then evaluation requires that either 1st derivative outputs are interleaved and 2nd derivative output are interleaved separately or that both 1st derivative and 2nd derivative outputs are interleaved together. This reduces the maximum number of required transform feedback buffer bindings to 3 instead of 6 which is significant, since most transform feedback implementations support a maximum of 4 bindings.

## ◆ ~GLXFBEvaluator()

~GLXFBEvaluator | ( |  | ) |

Destructor. note that the GL context must be made current.

## Member Function Documentation

## ◆ Compile()

bool Compile | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc = BufferDescriptor(),
|  | BufferDescriptor const & | dvDesc = BufferDescriptor(),
|  | BufferDescriptor const & | duuDesc = BufferDescriptor(),
|  | BufferDescriptor const & | duvDesc = BufferDescriptor(),
|  | BufferDescriptor const & | dvvDesc = BufferDescriptor() )

Other methods

Configure GLSL kernel. A valid GL context must be made current before calling this function. Returns false if it fails to compile the kernel.

## ◆ Create() [1/6]

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | bool | interleavedDerivativeBuffers = false )
| inlinestatic

Definition at line 112 of file glXFBEvaluator.h.

## ◆ Create() [2/6]

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | BufferDescriptor const & | duuDesc,
|  | BufferDescriptor const & | duvDesc,
|  | BufferDescriptor const & | dvvDesc,
|  | bool | interleavedDerivativeBuffers = false )
| inlinestatic

Definition at line 156 of file glXFBEvaluator.h.

## ◆ Create() [3/6]

template<typename DEVICE_CONTEXT>

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | BufferDescriptor const & | duuDesc,
|  | BufferDescriptor const & | duvDesc,
|  | BufferDescriptor const & | dvvDesc,
|  | DEVICE_CONTEXT | deviceContext )
| inlinestatic

Generic creator template.

Definition at line 126 of file glXFBEvaluator.h.

## ◆ Create() [4/6]

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | BufferDescriptor const & | duuDesc,
|  | BufferDescriptor const & | duvDesc,
|  | BufferDescriptor const & | dvvDesc,
|  | void * | deviceContext )
| inlinestatic

Specialization to allow creation without a device context.

Definition at line 143 of file glXFBEvaluator.h.

## ◆ Create() [5/6]

template<typename DEVICE_CONTEXT>

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | DEVICE_CONTEXT | deviceContext )
| inlinestatic

Generic creator template.

Definition at line 90 of file glXFBEvaluator.h.

## ◆ Create() [6/6]

GLXFBEvaluator * Create | ( | BufferDescriptor const & | srcDesc,
|  | BufferDescriptor const & | dstDesc,
|  | BufferDescriptor const & | duDesc,
|  | BufferDescriptor const & | dvDesc,
|  | void * | deviceContext )
| inlinestatic

Specialization to allow creation without a device context.

Definition at line 103 of file glXFBEvaluator.h.

## ◆ EvalPatches() [1/8]

bool EvalPatches | ( | ID | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | ID | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | ID | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | ID | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | ID | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | ID | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | ID | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | ID | patchCoordsBuffer,
|  | const PatchArrayVector & | patchArrays,
|  | ID | patchIndexBuffer,
|  | ID | patchParamsBuffer ) const

## ◆ EvalPatches() [2/8]

bool EvalPatches | ( | ID | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | ID | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | ID | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | ID | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | ID | patchCoordsBuffer,
|  | const PatchArrayVector & | patchArrays,
|  | ID | patchIndexBuffer,
|  | ID | patchParamsBuffer ) const

## ◆ EvalPatches() [3/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | GLPatchTable or equivalent

Definition at line 1130 of file glXFBEvaluator.h.

## ◆ EvalPatches() [4/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 929 of file glXFBEvaluator.h.

## ◆ EvalPatches() [5/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | GLPatchTable or equivalent

Definition at line 1056 of file glXFBEvaluator.h.

## ◆ EvalPatches() [6/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 829 of file glXFBEvaluator.h.

## ◆ EvalPatches() [7/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent

Definition at line 1002 of file glXFBEvaluator.h.

## ◆ EvalPatches() [8/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatches | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Limit evaluations with PatchTable

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 751 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [1/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1962 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [2/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel = 0 ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel

Definition at line 2070 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [3/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1795 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [4/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel = 0 ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel

Definition at line 1875 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [5/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1665 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [6/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesFaceVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | int | fvarChannel = 0 ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel

Definition at line 1728 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [1/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent

Definition at line 1603 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [2/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1498 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [3/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent

Definition at line 1414 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [4/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1337 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [5/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable ) const
| inline

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent

Definition at line 1273 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [6/6]

template<typename SRC_BUFFER, typename DST_BUFFER, typename PATCHCOORD_BUFFER, typename PATCH_TABLE>

bool EvalPatchesVarying | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | PATCHCOORD_BUFFER * | patchCoords,
|  | PATCH_TABLE * | patchTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
  patchTable | GLPatchTable or equivalent
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLXFB evaluator

Definition at line 1213 of file glXFBEvaluator.h.

## ◆ EvalStencils() [1/8]

bool EvalStencils | ( | ID | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | ID | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | ID | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | ID | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | ID | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | ID | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | ID | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | ID | sizesBuffer,
|  | ID | offsetsBuffer,
|  | ID | indicesBuffer,
|  | ID | weightsBuffer,
|  | ID | duWeightsBuffer,
|  | ID | dvWeightsBuffer,
|  | ID | duuWeightsBuffer,
|  | ID | duvWeightsBuffer,
|  | ID | dvvWeightsBuffer,
|  | int | start,
|  | int | end ) const

Dispatch the GLSL XFB kernel on on GPU asynchronously returns false if the kernel hasn't been compiled yet.

Parameters

  srcBuffer | GL buffer of input primvar source data
  srcDesc | vertex buffer descriptor for the srcBuffer
  dstBuffer | GL buffer of output primvar destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | GL buffer of output derivative wrt u
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | GL buffer of output derivative wrt v
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | GL buffer of output 2nd derivative wrt u
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | GL buffer of output 2nd derivative wrt u and v
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | GL buffer of output 2nd derivative wrt v
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  sizesBuffer | GL buffer of the sizes in the stencil table
  offsetsBuffer | GL buffer of the offsets in the stencil table
  indicesBuffer | GL buffer of the indices in the stencil table
  weightsBuffer | GL buffer of the weights in the stencil table
  duWeightsBuffer | GL buffer of the du weights in the stencil table
  dvWeightsBuffer | GL buffer of the dv weights in the stencil table
  duuWeightsBuffer | GL buffer of the duu weights in the stencil table
  duvWeightsBuffer | GL buffer of the duv weights in the stencil table
  dvvWeightsBuffer | GL buffer of the dvv weights in the stencil table
  start | start index of stencil table
  end | end index of stencil table

## ◆ EvalStencils() [2/8]

bool EvalStencils | ( | ID | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | ID | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | ID | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | ID | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | ID | sizesBuffer,
|  | ID | offsetsBuffer,
|  | ID | indicesBuffer,
|  | ID | weightsBuffer,
|  | ID | duWeightsBuffer,
|  | ID | dvWeightsBuffer,
|  | int | start,
|  | int | end ) const

Dispatch the GLSL XFB kernel on on GPU asynchronously returns false if the kernel hasn't been compiled yet.

Parameters

  srcBuffer | GL buffer of input primvar source data
  srcDesc | vertex buffer descriptor for the srcBuffer
  dstBuffer | GL buffer of output primvar destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | GL buffer of output derivative wrt u
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | GL buffer of output derivative wrt v
  dvDesc | vertex buffer descriptor for the dvBuffer
  sizesBuffer | GL buffer of the sizes in the stencil table
  offsetsBuffer | GL buffer of the offsets in the stencil table
  indicesBuffer | GL buffer of the indices in the stencil table
  weightsBuffer | GL buffer of the weights in the stencil table
  duWeightsBuffer | GL buffer of the du weights in the stencil table
  dvWeightsBuffer | GL buffer of the dv weights in the stencil table
  start | start index of stencil table
  end | end index of stencil table

## ◆ EvalStencils() [3/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | STENCIL_TABLE const * | stencilTable ) const
| inline

Generic stencil function.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.

Definition at line 561 of file glXFBEvaluator.h.

## ◆ EvalStencils() [4/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | DST_BUFFER * | duuBuffer,
|  | BufferDescriptor const & | duuDesc,
|  | DST_BUFFER * | duvBuffer,
|  | BufferDescriptor const & | duvDesc,
|  | DST_BUFFER * | dvvBuffer,
|  | BufferDescriptor const & | dvvDesc,
|  | STENCIL_TABLE const * | stencilTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLSLTransformFeedback kernel

Definition at line 382 of file glXFBEvaluator.h.

## ◆ EvalStencils() [5/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | STENCIL_TABLE const * | stencilTable ) const
| inline

Generic stencil function.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.

Definition at line 492 of file glXFBEvaluator.h.

## ◆ EvalStencils() [6/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | DST_BUFFER * | duBuffer,
|  | BufferDescriptor const & | duDesc,
|  | DST_BUFFER * | dvBuffer,
|  | BufferDescriptor const & | dvDesc,
|  | STENCIL_TABLE const * | stencilTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
  dvDesc | vertex buffer descriptor for the dvBuffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLSLTransformFeedback kernel

Definition at line 292 of file glXFBEvaluator.h.

## ◆ EvalStencils() [7/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | STENCIL_TABLE const * | stencilTable ) const
| inline

Generic stencil function.

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.

Definition at line 443 of file glXFBEvaluator.h.

## ◆ EvalStencils() [8/8]

template<typename SRC_BUFFER, typename DST_BUFFER, typename STENCIL_TABLE>

bool EvalStencils | ( | SRC_BUFFER * | srcBuffer,
|  | BufferDescriptor const & | srcDesc,
|  | DST_BUFFER * | dstBuffer,
|  | BufferDescriptor const & | dstDesc,
|  | STENCIL_TABLE const * | stencilTable,
|  | GLXFBEvaluator const * | instance,
|  | void * | deviceContext = NULL )
| inlinestatic

Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.

Stencil evaluations with StencilTable

Parameters

  srcBuffer | Input primvar buffer. must have BindVBO() method returning a GL buffer object of source data
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a GL buffer object of destination data
  dstDesc | vertex buffer descriptor for the output buffer
  stencilTable | stencil table to be applied. The table must have Texture Buffer Object interfaces.
  instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem.
  deviceContext | not used in the GLSLTransformFeedback kernel

Definition at line 224 of file glXFBEvaluator.h.

## ◆ Synchronize()

void Synchronize | ( | void * | kernel | ) |
| static

Wait the dispatched kernel finishes.

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

- opensubdiv/osd/glXFBEvaluator.h