Blender V4.3
blender::opensubdiv::GpuEvalOutput Class Reference

#include <eval_output_gpu.h>

Inherits blender::opensubdiv::VolatileEvalOutput< GLVertexBuffer, GLVertexBuffer, GLStencilTableSSBO, GLPatchTable, GLComputeEvaluator >.

Public Member Functions

 GpuEvalOutput (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)
 
void fillPatchArraysBuffer (OpenSubdiv_Buffer *patch_arrays_buffer) override
 
void wrapPatchIndexBuffer (OpenSubdiv_Buffer *patch_index_buffer) override
 
void wrapPatchParamBuffer (OpenSubdiv_Buffer *patch_param_buffer) override
 
void wrapSrcBuffer (OpenSubdiv_Buffer *src_buffer) override
 
void wrapSrcVertexDataBuffer (OpenSubdiv_Buffer *src_buffer) override
 
void fillFVarPatchArraysBuffer (const int face_varying_channel, OpenSubdiv_Buffer *patch_arrays_buffer) override
 
void wrapFVarPatchIndexBuffer (const int face_varying_channel, OpenSubdiv_Buffer *patch_index_buffer) override
 
void wrapFVarPatchParamBuffer (const int face_varying_channel, OpenSubdiv_Buffer *patch_param_buffer) override
 
void wrapFVarSrcBuffer (const int face_varying_channel, OpenSubdiv_Buffer *src_buffer) override
 
- Public Member Functions inherited from blender::opensubdiv::VolatileEvalOutput< GLVertexBuffer, GLVertexBuffer, GLStencilTableSSBO, GLPatchTable, GLComputeEvaluator >
 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, void *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
 
GLVertexBuffer * getSrcBuffer () const
 
GLVertexBuffer * getSrcVertexDataBuffer () const
 
GLPatchTable * getPatchTable () const
 
GLVertexBuffer * getFVarSrcBuffer (const int face_varying_channel) const
 
int getFVarSrcBufferOffset (const int face_varying_channel) const
 
GLPatchTable * getFVarPatchTable (const int face_varying_channel) const
 
- Public Member Functions inherited from blender::opensubdiv::EvalOutputAPI::EvalOutput
virtual ~EvalOutput ()=default
 

Additional Inherited Members

- Public Types inherited from blender::opensubdiv::VolatileEvalOutput< GLVertexBuffer, GLVertexBuffer, GLStencilTableSSBO, GLPatchTable, GLComputeEvaluator >
typedef OpenSubdiv::Osd::EvaluatorCacheT< GLComputeEvaluatorEvaluatorCache
 
typedef FaceVaryingVolatileEval< GLVertexBuffer, GLStencilTableSSBO, GLPatchTable, GLComputeEvaluator, void > FaceVaryingEval
 

Detailed Description

Definition at line 20 of file eval_output_gpu.h.

Constructor & Destructor Documentation

◆ GpuEvalOutput()

blender::opensubdiv::GpuEvalOutput::GpuEvalOutput ( 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 )

Definition at line 27 of file eval_output_gpu.cc.

Member Function Documentation

◆ fillFVarPatchArraysBuffer()

void blender::opensubdiv::GpuEvalOutput::fillFVarPatchArraysBuffer ( const int face_varying_channel,
OpenSubdiv_Buffer * patch_arrays_buffer )
overridevirtual

◆ fillPatchArraysBuffer()

◆ wrapFVarPatchIndexBuffer()

void blender::opensubdiv::GpuEvalOutput::wrapFVarPatchIndexBuffer ( const int face_varying_channel,
OpenSubdiv_Buffer * patch_index_buffer )
overridevirtual

◆ wrapFVarPatchParamBuffer()

void blender::opensubdiv::GpuEvalOutput::wrapFVarPatchParamBuffer ( const int face_varying_channel,
OpenSubdiv_Buffer * patch_param_buffer )
overridevirtual

◆ wrapFVarSrcBuffer()

◆ wrapPatchIndexBuffer()

◆ wrapPatchParamBuffer()

◆ wrapSrcBuffer()

◆ wrapSrcVertexDataBuffer()


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