Blender V5.0
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

using EvaluatorCache = OpenSubdiv::Osd::EvaluatorCacheT<EVALUATOR>
using 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 get_face_varying_source_offset (const int face_varying_channel) const override
PATCH_TABLE * getFVarPatchTable (const int face_varying_channel) const
Public Member Functions inherited from blender::opensubdiv::EvalOutputAPI::EvalOutput
virtual ~EvalOutput ()=default
virtual gpu::StorageBufcreate_patch_arrays_buf ()
virtual gpu::StorageBufget_patch_index_buf ()
virtual gpu::StorageBufget_patch_param_buf ()
virtual gpu::VertBufget_source_buf ()
virtual gpu::VertBufget_source_data_buf ()
virtual gpu::StorageBufcreate_face_varying_patch_array_buf (const int)
virtual gpu::StorageBufget_face_varying_patch_index_buf (const int)
virtual gpu::StorageBufget_face_varying_patch_param_buf (const int)
virtual gpu::VertBufget_face_varying_source_buf (const int)

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 329 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>
using blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::EvaluatorCache = OpenSubdiv::Osd::EvaluatorCacheT<EVALUATOR>

Definition at line 331 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>
using blender::opensubdiv::VolatileEvalOutput< SRC_VERTEX_BUFFER, EVAL_VERTEX_BUFFER, STENCIL_TABLE, PATCH_TABLE, EVALUATOR, DEVICE_CONTEXT >::FaceVaryingEval
Initial value:
FaceVaryingVolatileEval<EVAL_VERTEX_BUFFER,
STENCIL_TABLE,
PATCH_TABLE,
EVALUATOR,
DEVICE_CONTEXT>

Definition at line 332 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 338 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 380 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 600 of file eval_output.h.

References assert.

◆ 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

◆ get_face_varying_source_offset()

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 >::get_face_varying_source_offset ( const int face_varying_channel) const
inlineoverridevirtual

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

Definition at line 631 of file eval_output.h.

◆ 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 636 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 626 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 621 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 611 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 616 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

Definition at line 444 of file eval_output.h.

Referenced by refine().

◆ 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

Definition at line 437 of file eval_output.h.

Referenced by refine().

◆ 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 449 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 412 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 427 of file eval_output.h.

References assert.

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


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