Blender V4.3
blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT > Class Template Reference

#include <eval_output.h>

Inherits blender::opensubdiv::EvalOutputAPI::EvalOutput.

Public Types

typedef OpenSubdiv::Osd::EvaluatorCacheT< EVALUATOR > EvaluatorCache
 
typedef FaceVaryingVolatileEval< EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT > FaceVaryingEval
 

Public Member Functions

 VolatileEvalOutput (const StencilTable *vertex_stencils, const StencilTable *varying_stencils, const std::vector< const StencilTable * > &all_face_varying_stencils, const int face_varying_width, const PatchTable *patch_table, EvaluatorCache *evaluator_cache=NULL, DEVICE_CONTEXT *device_context=NULL)
 
 ~VolatileEvalOutput () override
 
void updateSettings (const OpenSubdiv_EvaluatorSettings *settings) override
 
void updateData (const float *src, int start_vertex, int num_vertices) override
 
void updateVaryingData (const float *src, int start_vertex, int num_vertices) override
 
void updateVertexData (const float *src, int start_vertex, int num_vertices) override
 
void updateFaceVaryingData (const int face_varying_channel, const float *src, int start_vertex, int num_vertices) override
 
bool hasVaryingData () const
 
bool hasFaceVaryingData () const
 
bool hasVertexData () const override
 
void refine () override
 
void evalPatches (const PatchCoord *patch_coord, const int num_patch_coords, float *P) override
 
void evalPatchesWithDerivatives (const PatchCoord *patch_coord, const int num_patch_coords, float *P, float *dPdu, float *dPdv) override
 
void evalPatchesVarying (const PatchCoord *patch_coord, const int num_patch_coords, float *varying) override
 
void evalPatchesVertexData (const PatchCoord *patch_coord, const int num_patch_coords, float *data) override
 
void evalPatchesFaceVarying (const int face_varying_channel, const PatchCoord *patch_coord, const int num_patch_coords, float face_varying[2]) override
 
SRC_VERTEX_BUFFER * getSrcBuffer () const
 
SRC_VERTEX_BUFFER * getSrcVertexDataBuffer () const
 
PATCH_TABLE * getPatchTable () const
 
SRC_VERTEX_BUFFER * getFVarSrcBuffer (const int face_varying_channel) const
 
int getFVarSrcBufferOffset (const int face_varying_channel) const
 
PATCH_TABLE * getFVarPatchTable (const int face_varying_channel) const
 
- Public Member Functions inherited from blender::opensubdiv::EvalOutputAPI::EvalOutput
virtual ~EvalOutput ()=default
 
virtual void fillPatchArraysBuffer (OpenSubdiv_Buffer *)
 
virtual void wrapPatchIndexBuffer (OpenSubdiv_Buffer *)
 
virtual void wrapPatchParamBuffer (OpenSubdiv_Buffer *)
 
virtual void wrapSrcBuffer (OpenSubdiv_Buffer *)
 
virtual void wrapSrcVertexDataBuffer (OpenSubdiv_Buffer *)
 
virtual void fillFVarPatchArraysBuffer (const int, OpenSubdiv_Buffer *)
 
virtual void wrapFVarPatchIndexBuffer (const int, OpenSubdiv_Buffer *)
 
virtual void wrapFVarPatchParamBuffer (const int, OpenSubdiv_Buffer *)
 
virtual void wrapFVarSrcBuffer (const int, OpenSubdiv_Buffer *)
 

Detailed Description

template<typename SRC_VERTEX_BUFFER, typename EVAL_VERTEX_BUFFER, typename STENCIL_TABLE, typename PATCH_TABLE, typename EVALUATOR, typename DEVICE_CONTEXT = void>
class blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >

Definition at line 311 of file eval_output.h.

Member Typedef Documentation

◆ EvaluatorCache

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
typedef OpenSubdiv::Osd::EvaluatorCacheT<EVALUATOR> blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::EvaluatorCache

Definition at line 313 of file eval_output.h.

◆ FaceVaryingEval

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
typedef FaceVaryingVolatileEval<EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT> blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::FaceVaryingEval

Definition at line 319 of file eval_output.h.

Constructor & Destructor Documentation

◆ VolatileEvalOutput()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::VolatileEvalOutput ( const StencilTable * vertex_stencils,
const StencilTable * varying_stencils,
const std::vector< const StencilTable * > & all_face_varying_stencils,
const int face_varying_width,
const PatchTable * patch_table,
EvaluatorCache * evaluator_cache = NULL,
DEVICE_CONTEXT * device_context = NULL )
inline

Definition at line 321 of file eval_output.h.

◆ ~VolatileEvalOutput()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::~VolatileEvalOutput ( )
inlineoverride

Definition at line 363 of file eval_output.h.

Member Function Documentation

◆ evalPatches()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::evalPatches ( const PatchCoord * patch_coord,
const int num_patch_coords,
float * P )
inlineoverridevirtual

◆ evalPatchesFaceVarying()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::evalPatchesFaceVarying ( const int face_varying_channel,
const PatchCoord * patch_coord,
const int num_patch_coords,
float face_varying[2] )
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 583 of file eval_output.h.

◆ evalPatchesVarying()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::evalPatchesVarying ( const PatchCoord * patch_coord,
const int num_patch_coords,
float * varying )
inlineoverridevirtual

◆ evalPatchesVertexData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::evalPatchesVertexData ( const PatchCoord * patch_coord,
const int num_patch_coords,
float * data )
inlineoverridevirtual

◆ evalPatchesWithDerivatives()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::evalPatchesWithDerivatives ( const PatchCoord * patch_coord,
const int num_patch_coords,
float * P,
float * dPdu,
float * dPdv )
inlineoverridevirtual

◆ getFVarPatchTable()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
PATCH_TABLE * blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getFVarPatchTable ( const int face_varying_channel) const
inline

Definition at line 619 of file eval_output.h.

◆ getFVarSrcBuffer()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
SRC_VERTEX_BUFFER * blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getFVarSrcBuffer ( const int face_varying_channel) const
inline

Definition at line 609 of file eval_output.h.

◆ getFVarSrcBufferOffset()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
int blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getFVarSrcBufferOffset ( const int face_varying_channel) const
inline

Definition at line 614 of file eval_output.h.

◆ getPatchTable()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
PATCH_TABLE * blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getPatchTable ( ) const
inline

Definition at line 604 of file eval_output.h.

◆ getSrcBuffer()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
SRC_VERTEX_BUFFER * blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getSrcBuffer ( ) const
inline

Definition at line 594 of file eval_output.h.

◆ getSrcVertexDataBuffer()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
SRC_VERTEX_BUFFER * blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::getSrcVertexDataBuffer ( ) const
inline

Definition at line 599 of file eval_output.h.

◆ hasFaceVaryingData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
bool blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::hasFaceVaryingData ( ) const
inline

◆ hasVaryingData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
bool blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::hasVaryingData ( ) const
inline

◆ hasVertexData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
bool blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::hasVertexData ( ) const
inlineoverridevirtual

Reimplemented from blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 432 of file eval_output.h.

◆ refine()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::refine ( )
inlineoverridevirtual

◆ updateData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::updateData ( const float * src,
int start_vertex,
int num_vertices )
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 395 of file eval_output.h.

◆ updateFaceVaryingData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::updateFaceVaryingData ( const int face_varying_channel,
const float * src,
int start_vertex,
int num_vertices )
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 410 of file eval_output.h.

◆ updateSettings()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::updateSettings ( const OpenSubdiv_EvaluatorSettings * settings)
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 376 of file eval_output.h.

References NULL.

◆ updateVaryingData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::updateVaryingData ( const float * src,
int start_vertex,
int num_vertices )
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 400 of file eval_output.h.

◆ updateVertexData()

template<typename SRC_VERTEX_BUFFER , typename EVAL_VERTEX_BUFFER , typename STENCIL_TABLE , typename PATCH_TABLE , typename EVALUATOR , typename DEVICE_CONTEXT = void>
void blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::updateVertexData ( const float * src,
int start_vertex,
int num_vertices )
inlineoverridevirtual

Implements blender::opensubdiv::EvalOutputAPI::EvalOutput.

Definition at line 405 of file eval_output.h.


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