GLXFBEvaluator Class Reference

Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
GLXFBEvaluator Class Reference

`#include <glXFBEvaluator.h>`

## Public Types
typedef bool | Instantiatable

## Public Member Functions
| GLXFBEvaluator ()
| Constructor. More...
| ~GLXFBEvaluator ()
| Destructor. note that the GL context must be made current. More...
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 eval stencils function. More...
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 eval stencils function with derivative evaluation. More...
bool | EvalStencils (GLuint srcBuffer, BufferDescriptor const &srcDesc, GLuint dstBuffer, BufferDescriptor const &dstDesc, GLuint duBuffer, BufferDescriptor const &duDesc, GLuint dvBuffer, BufferDescriptor const &dvDesc, GLuint sizesBuffer, GLuint offsetsBuffer, GLuint indicesBuffer, GLuint weightsBuffer, GLuint duWeightsBuffer, GLuint dvWeightsBuffer, int start, int end) const
| dispatch eval stencils function with derivatives. dispatch the GLSL XFB kernel on on GPU asynchronously. More...
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. More...
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. More...
bool | EvalPatches (GLuint srcBuffer, BufferDescriptor const &srcDesc, GLuint dstBuffer, BufferDescriptor const &dstDesc, GLuint duBuffer, BufferDescriptor const &duDesc, GLuint dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, GLuint patchCoordsBuffer, const PatchArrayVector &patchArrays, GLuint patchIndexBuffer, GLuint 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. More...
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. More...
bool | Compile (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc)

## Static Public Member Functions
static GLXFBEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, void *deviceContext=NULL)
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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
static void | Synchronize (void *kernel)
| Wait the dispatched kernel finishes. More...

## Detailed Description

Definition at line 92 of file glXFBEvaluator.h.

## Member Typedef Documentation

## ◆ Instantiatable

typedef bool Instantiatable

Definition at line 94 of file glXFBEvaluator.h.

## Constructor & Destructor Documentation

## ◆ GLXFBEvaluator()

GLXFBEvaluator | ( |  | ) |

Constructor.

## ◆ ~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 const & | dvDesc
| ) |  |

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()

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

Definition at line 95 of file glXFBEvaluator.h.

## ◆ EvalPatches() [1/5]

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`
| ) |  |
| 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 418 of file glXFBEvaluator.h.

## ◆ EvalPatches() [2/5]

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`
| ) |  |
| 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 |
  duDesc |
  dvBuffer |
  dvDesc |
  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 492 of file glXFBEvaluator.h.

## ◆ EvalPatches() [3/5]

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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  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 cuda memory.
  patchTable | GLPatchTable or equivalent

Definition at line 554 of file glXFBEvaluator.h.

## ◆ EvalPatches() [4/5]

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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output s-derivatives buffer must have BindVBO() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output t-derivatives buffer must have BindVBO() method returning a float pointer for write
  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 608 of file glXFBEvaluator.h.

## ◆ EvalPatches() [5/5]

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

## ◆ EvalPatchesFaceVarying() [1/2]

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`
| ) |  |
| 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 788 of file glXFBEvaluator.h.

## ◆ EvalPatchesFaceVarying() [2/2]

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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  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 cuda memory.
  patchTable | GLPatchTable or equivalent
  fvarChannel | face-varying channel

Definition at line 851 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [1/2]

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`
| ) |  |
| 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 673 of file glXFBEvaluator.h.

## ◆ EvalPatchesVarying() [2/2]

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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  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 cuda memory.
  patchTable | GLPatchTable or equivalent

Definition at line 733 of file glXFBEvaluator.h.

## ◆ EvalStencils() [1/5]

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`
| ) |  |
| 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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  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 148 of file glXFBEvaluator.h.

## ◆ EvalStencils() [2/5]

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`
| ) |  |
| 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 const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindVBO() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output U-derivative buffer must have BindVBO() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the du output buffer
  dvBuffer | Output V-derivative buffer must have BindVBO() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dv 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 216 of file glXFBEvaluator.h.

## ◆ EvalStencils() [3/5]

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

Generic eval stencils 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 for destination data
  dstDesc | vertex buffer descriptor for the output buffer
  stencilTable | stencil table to be applied.

Definition at line 265 of file glXFBEvaluator.h.

## ◆ EvalStencils() [4/5]

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 eval stencils function with derivative evaluation.

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 for destination data
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | GL buffer of output U-derivatives.
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | GL buffer of output V-derivatives.
  dvDesc | vertex buffer descriptor for the dvBuffer
  stencilTable | stencil table to be applied.

Definition at line 309 of file glXFBEvaluator.h.

## ◆ EvalStencils() [5/5]

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

dispatch eval stencils function with derivatives. dispatch the GLSL XFB kernel on on GPU asynchronously.

Parameters

  srcBuffer | GL buffer of input primvars.
  srcDesc | vertex buffer descriptor for the srcBuffer
  dstBuffer | GL buffer of output primvars.
  dstDesc | vertex buffer descriptor for the dstBuffer
  duBuffer | GL buffer of output U-derivatives.
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | GL buffer of output V-derivatives.
  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

## ◆ Synchronize()

static 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