Blender  V3.3
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
blender::opensubdiv::GLComputeEvaluator Class Reference

#include <gl_compute_evaluator.h>

Public Types

typedef bool Instantiatable
 

Public Member Functions

 GLComputeEvaluator ()
 Constructor. More...
 
 ~GLComputeEvaluator ()
 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable) const
 Generic stencil function. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
bool EvalStencils (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable) const
 Generic stencil function. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
bool EvalStencils (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable) const
 Generic stencil function. More...
 
bool EvalStencils (GLuint srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, GLuint dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, GLuint duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, GLuint dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, GLuint sizesBuffer, GLuint offsetsBuffer, GLuint indicesBuffer, GLuint weightsBuffer, GLuint duWeightsBuffer, GLuint dvWeightsBuffer, int start, int end) const
 Dispatch the GLSL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet. More...
 
bool EvalStencils (GLuint srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, GLuint dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, GLuint duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, GLuint dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, GLuint duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, GLuint duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, GLuint dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, GLuint sizesBuffer, GLuint offsetsBuffer, GLuint indicesBuffer, GLuint weightsBuffer, GLuint duWeightsBuffer, GLuint dvWeightsBuffer, GLuint duuWeightsBuffer, GLuint duvWeightsBuffer, GLuint dvvWeightsBuffer, int start, int end) const
 Dispatch the GLSL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatches (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::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...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatches (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::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. More...
 
bool EvalPatches (GLuint srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, GLuint dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, GLuint duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, GLuint dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, int numPatchCoords, GLuint patchCoordsBuffer, const OpenSubdiv::Osd::PatchArrayVector &patchArrays, GLuint patchIndexBuffer, GLuint patchParamsBuffer) const
 
bool EvalPatches (GLuint srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, GLuint dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, GLuint duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, GLuint dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, GLuint duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, GLuint duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, GLuint dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, int numPatchCoords, GLuint patchCoordsBuffer, const OpenSubdiv::Osd::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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::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 EvalPatchesVarying (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatchesVarying (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::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...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::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. More...
 
bool Compile (OpenSubdiv::Osd::BufferDescriptor const &srcDesc, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, OpenSubdiv::Osd::BufferDescriptor const &duDesc=OpenSubdiv::Osd::BufferDescriptor(), OpenSubdiv::Osd::BufferDescriptor const &dvDesc=OpenSubdiv::Osd::BufferDescriptor(), OpenSubdiv::Osd::BufferDescriptor const &duuDesc=OpenSubdiv::Osd::BufferDescriptor(), OpenSubdiv::Osd::BufferDescriptor const &duvDesc=OpenSubdiv::Osd::BufferDescriptor(), OpenSubdiv::Osd::BufferDescriptor const &dvvDesc=OpenSubdiv::Osd::BufferDescriptor())
 

Static Public Member Functions

static GLComputeEvaluatorCreate (OpenSubdiv::Osd::BufferDescriptor const &srcDesc, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, OpenSubdiv::Osd::BufferDescriptor const &duDesc, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, void *deviceContext=NULL)
 
static GLComputeEvaluatorCreate (OpenSubdiv::Osd::BufferDescriptor const &srcDesc, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, OpenSubdiv::Osd::BufferDescriptor const &duDesc, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, void *deviceContext=NULL)
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool EvalStencils (SRC_BUFFER *srcBuffer, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLComputeEvaluator 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, OpenSubdiv::Osd::BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, OpenSubdiv::Osd::BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, OpenSubdiv::Osd::BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, OpenSubdiv::Osd::BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, OpenSubdiv::Osd::BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, OpenSubdiv::Osd::BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, GLComputeEvaluator 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 *deviceContext)
 Wait the dispatched kernel finishes. More...
 

Detailed Description

Definition at line 127 of file gl_compute_evaluator.h.

Member Typedef Documentation

◆ Instantiatable

Definition at line 129 of file gl_compute_evaluator.h.

Constructor & Destructor Documentation

◆ GLComputeEvaluator()

blender::opensubdiv::GLComputeEvaluator::GLComputeEvaluator ( )

Constructor.

Definition at line 141 of file gl_compute_evaluator.cc.

Referenced by Create().

◆ ~GLComputeEvaluator()

blender::opensubdiv::GLComputeEvaluator::~GLComputeEvaluator ( )

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

Definition at line 147 of file gl_compute_evaluator.cc.

Member Function Documentation

◆ Compile()

bool blender::opensubdiv::GLComputeEvaluator::Compile ( OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc = OpenSubdiv::Osd::BufferDescriptor(),
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc = OpenSubdiv::Osd::BufferDescriptor(),
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc = OpenSubdiv::Osd::BufferDescriptor(),
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc = OpenSubdiv::Osd::BufferDescriptor(),
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc = OpenSubdiv::Osd::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.

Definition at line 221 of file gl_compute_evaluator.cc.

◆ Create() [1/2]

static GLComputeEvaluator* blender::opensubdiv::GLComputeEvaluator::Create ( OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
void deviceContext = NULL 
)
inlinestatic

Definition at line 146 of file gl_compute_evaluator.h.

References GLComputeEvaluator(), instance, NULL, and void.

◆ Create() [2/2]

static GLComputeEvaluator* blender::opensubdiv::GLComputeEvaluator::Create ( OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
void deviceContext = NULL 
)
inlinestatic

◆ EvalPatches() [1/8]

bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( GLuint  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
GLuint  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
GLuint  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
GLuint  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
GLuint  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
GLuint  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
GLuint  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
int  numPatchCoords,
GLuint  patchCoordsBuffer,
const OpenSubdiv::Osd::PatchArrayVector &  patchArrays,
GLuint  patchIndexBuffer,
GLuint  patchParamsBuffer 
) const

◆ EvalPatches() [2/8]

bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( GLuint  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
GLuint  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
GLuint  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
GLuint  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
int  numPatchCoords,
GLuint  patchCoordsBuffer,
const OpenSubdiv::Osd::PatchArrayVector &  patchArrays,
GLuint  patchIndexBuffer,
GLuint  patchParamsBuffer 
) const

◆ EvalPatches() [3/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableGLPatchTable or equivalent

Definition at line 1241 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatches() [4/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 998 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatches() [5/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableGLPatchTable or equivalent

Definition at line 1157 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatches() [6/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 881 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatches() [7/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent

Definition at line 1095 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatches() [8/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatches ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 801 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

Referenced by EvalPatches(), EvalPatchesFaceVarying(), and EvalPatchesVarying().

◆ EvalPatchesFaceVarying() [1/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
int  fvarChannel,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 2216 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatchesFaceVarying() [2/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel

Definition at line 2348 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesFaceVarying() [3/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
int  fvarChannel,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 2023 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatchesFaceVarying() [4/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel

Definition at line 2119 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesFaceVarying() [5/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
int  fvarChannel,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 1873 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatchesFaceVarying() [6/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesFaceVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
fvarChannelface-varying channel

Definition at line 1948 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesVarying() [1/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent

Definition at line 1795 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesVarying() [2/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 1668 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatchesVarying() [3/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent

Definition at line 1574 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesVarying() [4/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 1483 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalPatchesVarying() [5/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent

Definition at line 1411 of file gl_compute_evaluator.h.

References EvalPatches().

◆ EvalPatchesVarying() [6/6]

template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableGLPatchTable or equivalent
instancecached 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.
deviceContextnot used in the GLXFB evaluator

Definition at line 1351 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalStencils() [1/8]

bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( GLuint  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
GLuint  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
GLuint  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
GLuint  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
GLuint  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
GLuint  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
GLuint  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
GLuint  sizesBuffer,
GLuint  offsetsBuffer,
GLuint  indicesBuffer,
GLuint  weightsBuffer,
GLuint  duWeightsBuffer,
GLuint  dvWeightsBuffer,
GLuint  duuWeightsBuffer,
GLuint  duvWeightsBuffer,
GLuint  dvvWeightsBuffer,
int  start,
int  end 
) const

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

Parameters
srcBufferGL buffer of input primvar source data
srcDescvertex buffer descriptor for the srcBuffer
dstBufferGL buffer of output primvar destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferGL buffer of output derivative wrt u
duDescvertex buffer descriptor for the duBuffer
dvBufferGL buffer of output derivative wrt v
dvDescvertex buffer descriptor for the dvBuffer
duuBufferGL buffer of output 2nd derivative wrt u
duuDescvertex buffer descriptor for the duuBuffer
duvBufferGL buffer of output 2nd derivative wrt u and v
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferGL buffer of output 2nd derivative wrt v
dvvDescvertex buffer descriptor for the dvvBuffer
sizesBufferGL buffer of the sizes in the stencil table
offsetsBufferGL buffer of the offsets in the stencil table
indicesBufferGL buffer of the indices in the stencil table
weightsBufferGL buffer of the weights in the stencil table
duWeightsBufferGL buffer of the du weights in the stencil table
dvWeightsBufferGL buffer of the dv weights in the stencil table
duuWeightsBufferGL buffer of the duu weights in the stencil table
duvWeightsBufferGL buffer of the duv weights in the stencil table
dvvWeightsBufferGL buffer of the dvv weights in the stencil table
startstart index of stencil table
endend index of stencil table

◆ EvalStencils() [2/8]

bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( GLuint  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
GLuint  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
GLuint  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
GLuint  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
GLuint  sizesBuffer,
GLuint  offsetsBuffer,
GLuint  indicesBuffer,
GLuint  weightsBuffer,
GLuint  duWeightsBuffer,
GLuint  dvWeightsBuffer,
int  start,
int  end 
) const

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

Parameters
srcBufferGL buffer of input primvar source data
srcDescvertex buffer descriptor for the srcBuffer
dstBufferGL buffer of output primvar destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferGL buffer of output derivative wrt u
duDescvertex buffer descriptor for the duBuffer
dvBufferGL buffer of output derivative wrt v
dvDescvertex buffer descriptor for the dvBuffer
sizesBufferGL buffer of the sizes in the stencil table
offsetsBufferGL buffer of the offsets in the stencil table
indicesBufferGL buffer of the indices in the stencil table
weightsBufferGL buffer of the weights in the stencil table
duWeightsBufferGL buffer of the du weights in the stencil table
dvWeightsBufferGL buffer of the dv weights in the stencil table
startstart index of stencil table
endend index of stencil table

◆ EvalStencils() [3/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
STENCIL_TABLE const *  stencilTable 
) const
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.

Definition at line 585 of file gl_compute_evaluator.h.

References EvalStencils().

◆ EvalStencils() [4/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
DST_BUFFER *  duuBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duuDesc,
DST_BUFFER *  duvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duvDesc,
DST_BUFFER *  dvvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvvDesc,
STENCIL_TABLE const *  stencilTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a GL buffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.
instancecached 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.
deviceContextnot used in the GLSL kernel

Definition at line 374 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalStencils() [5/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
STENCIL_TABLE const *  stencilTable 
) const
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.

Definition at line 509 of file gl_compute_evaluator.h.

References EvalStencils().

◆ EvalStencils() [6/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
DST_BUFFER *  duBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  duDesc,
DST_BUFFER *  dvBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dvDesc,
STENCIL_TABLE const *  stencilTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a GL buffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a GL buffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.
instancecached 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.
deviceContextnot used in the GLSL kernel

Definition at line 271 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

◆ EvalStencils() [7/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
STENCIL_TABLE const *  stencilTable 
) const
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.

Definition at line 455 of file gl_compute_evaluator.h.

References EvalStencils().

◆ EvalStencils() [8/8]

template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool blender::opensubdiv::GLComputeEvaluator::EvalStencils ( SRC_BUFFER *  srcBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
OpenSubdiv::Osd::BufferDescriptor const &  dstDesc,
STENCIL_TABLE const *  stencilTable,
GLComputeEvaluator 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
srcBufferInput primvar buffer. must have BindVBO() method returning a GL buffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a GL buffer object of destination data
dstDescvertex buffer descriptor for the output buffer
stencilTablestencil table to be applied. The table must have SSBO interfaces.
instancecached 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.
deviceContextnot used in the GLSL kernel

Definition at line 203 of file gl_compute_evaluator.h.

References Create(), instance, r, and void.

Referenced by EvalStencils().

◆ Synchronize()

void blender::opensubdiv::GLComputeEvaluator::Synchronize ( void deviceContext)
static

Wait the dispatched kernel finishes.

Definition at line 251 of file gl_compute_evaluator.cc.


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