![]() |
#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 |
| 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... | |
| static void | Synchronize (void *kernel) |
| Wait the dispatched kernel finishes. More... | |
Definition at line 92 of file glXFBEvaluator.h.
| typedef bool Instantiatable |
Definition at line 94 of file glXFBEvaluator.h.
| GLXFBEvaluator | ( | ) |
Constructor.
| ~GLXFBEvaluator | ( | ) |
Destructor. note that the GL context must be made current.
| 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.
|
inlinestatic |
Definition at line 95 of file glXFBEvaluator.h.
|
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
| 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.
|
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.
| 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.
|
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.
| srcBuffer | Input primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCudaBuffer() 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 BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory. |
| patchTable | GLPatchTable or equivalent |
Definition at line 554 of file glXFBEvaluator.h.
|
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.
| srcBuffer | Input primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCudaBuffer() method returning a float pointer for write |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output s-derivatives buffer must have BindCudaBuffer() method returning a float pointer for write |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output t-derivatives buffer must have BindCudaBuffer() 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.
| 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 |
|
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
| 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.
|
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.
| 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.
|
inline |
Generic eval stencils function.
| 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.
|
inline |
Generic eval stencils function with derivative evaluation.
| 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.
| 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.
| 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 |
|
static |
Wait the dispatched kernel finishes.