Blender  V3.3
Public Types | Public Member Functions | List of all members
blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT > Class Template Reference

#include <eval_output.h>

Inheritance diagram for blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >:
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 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 340 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 342 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 348 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 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 350 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 392 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

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

Definition at line 519 of file eval_output.h.

References P().

◆ 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 612 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

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

Definition at line 571 of file eval_output.h.

◆ 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

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

Definition at line 592 of file eval_output.h.

References data.

◆ 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

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

Definition at line 539 of file eval_output.h.

References P().

◆ 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 648 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 638 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 643 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 633 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 623 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 628 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 461 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 424 of file eval_output.h.

References src.

◆ 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 439 of file eval_output.h.

References src.

◆ 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

◆ 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 429 of file eval_output.h.

References src.

◆ 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 434 of file eval_output.h.

References src.


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