Blender V4.3
evaluator_capi.cc File Reference
#include "opensubdiv_evaluator_capi.hh"
#include <opensubdiv/osd/glslPatchShaderSource.h>
#include "MEM_guardedalloc.h"
#include <new>
#include "internal/evaluator/evaluator_cache_impl.h"
#include "internal/evaluator/evaluator_impl.h"

Go to the source code of this file.

Functions

static void setSettings (struct OpenSubdiv_Evaluator *evaluator, const OpenSubdiv_EvaluatorSettings *settings)
 
static void setCoarsePositions (OpenSubdiv_Evaluator *evaluator, const float *positions, const int start_vertex_index, const int num_vertices)
 
static void setVertexData (OpenSubdiv_Evaluator *evaluator, const float *vertex_data, const int start_vertex_index, const int num_vertices)
 
static void setVaryingData (OpenSubdiv_Evaluator *evaluator, const float *varying_data, const int start_vertex_index, const int num_vertices)
 
static void setFaceVaryingData (OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, const float *face_varying_data, const int start_vertex_index, const int num_vertices)
 
static void setCoarsePositionsFromBuffer (OpenSubdiv_Evaluator *evaluator, const void *buffer, const int start_offset, const int stride, const int start_vertex_index, const int num_vertices)
 
static void setVaryingDataFromBuffer (OpenSubdiv_Evaluator *evaluator, const void *buffer, const int start_offset, const int stride, const int start_vertex_index, const int num_vertices)
 
static void setFaceVaryingDataFromBuffer (OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, const void *buffer, const int start_offset, const int stride, const int start_vertex_index, const int num_vertices)
 
static void refine (OpenSubdiv_Evaluator *evaluator)
 
static void evaluateLimit (OpenSubdiv_Evaluator *evaluator, const int ptex_face_index, const float face_u, const float face_v, float P[3], float dPdu[3], float dPdv[3])
 
static void evaluatePatchesLimit (OpenSubdiv_Evaluator *evaluator, const OpenSubdiv_PatchCoord *patch_coords, const int num_patch_coords, float *P, float *dPdu, float *dPdv)
 
static void evaluateVertexData (OpenSubdiv_Evaluator *evaluator, const int ptex_face_index, float face_u, float face_v, float vertex_data[3])
 
static void evaluateVarying (OpenSubdiv_Evaluator *evaluator, const int ptex_face_index, float face_u, float face_v, float varying[3])
 
static void evaluateFaceVarying (OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, const int ptex_face_index, float face_u, float face_v, float face_varying[2])
 
static void getPatchMap (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *patch_map_handles, struct OpenSubdiv_Buffer *patch_map_quadtree, int *min_patch_face, int *max_patch_face, int *max_depth, int *patches_are_triangular)
 
static void fillPatchArraysBuffer (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *patch_array_buffer)
 
static void wrapPatchIndexBuffer (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *patch_index_buffer)
 
static void wrapPatchParamBuffer (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *patch_param_buffer)
 
static void wrapSrcBuffer (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *src_buffer)
 
static void wrapSrcVertexDataBuffer (struct OpenSubdiv_Evaluator *evaluator, struct OpenSubdiv_Buffer *src_buffer)
 
static void fillFVarPatchArraysBuffer (struct OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, struct OpenSubdiv_Buffer *patch_array_buffer)
 
static void wrapFVarPatchIndexBuffer (struct OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, struct OpenSubdiv_Buffer *patch_index_buffer)
 
static void wrapFVarPatchParamBuffer (struct OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, struct OpenSubdiv_Buffer *patch_param_buffer)
 
static void wrapFVarSrcBuffer (struct OpenSubdiv_Evaluator *evaluator, const int face_varying_channel, struct OpenSubdiv_Buffer *src_buffer)
 
static bool hasVertexData (struct OpenSubdiv_Evaluator *evaluator)
 
static void assignFunctionPointers (OpenSubdiv_Evaluator *evaluator)
 
OpenSubdiv_EvaluatoropenSubdiv_createEvaluatorFromTopologyRefiner (blender::opensubdiv::TopologyRefinerImpl *topology_refiner, eOpenSubdivEvaluator evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache)
 
void openSubdiv_deleteEvaluator (OpenSubdiv_Evaluator *evaluator)
 
OpenSubdiv_EvaluatorCacheopenSubdiv_createEvaluatorCache (eOpenSubdivEvaluator evaluator_type)
 
void openSubdiv_deleteEvaluatorCache (OpenSubdiv_EvaluatorCache *evaluator_cache)
 
const char * openSubdiv_getGLSLPatchBasisSource (void)
 

Function Documentation

◆ assignFunctionPointers()

static void assignFunctionPointers ( OpenSubdiv_Evaluator * evaluator)
static

Definition at line 227 of file evaluator_capi.cc.

References evaluateFaceVarying(), OpenSubdiv_Evaluator::evaluateFaceVarying, evaluateLimit(), OpenSubdiv_Evaluator::evaluateLimit, evaluatePatchesLimit(), OpenSubdiv_Evaluator::evaluatePatchesLimit, evaluateVarying(), OpenSubdiv_Evaluator::evaluateVarying, evaluateVertexData(), OpenSubdiv_Evaluator::evaluateVertexData, fillFVarPatchArraysBuffer(), OpenSubdiv_Evaluator::fillFVarPatchArraysBuffer, fillPatchArraysBuffer(), OpenSubdiv_Evaluator::fillPatchArraysBuffer, getPatchMap(), OpenSubdiv_Evaluator::getPatchMap, hasVertexData(), OpenSubdiv_Evaluator::hasVertexData, OpenSubdiv_Evaluator::refine, refine(), OpenSubdiv_Evaluator::setCoarsePositions, setCoarsePositions(), OpenSubdiv_Evaluator::setCoarsePositionsFromBuffer, setCoarsePositionsFromBuffer(), OpenSubdiv_Evaluator::setFaceVaryingData, setFaceVaryingData(), OpenSubdiv_Evaluator::setFaceVaryingDataFromBuffer, setFaceVaryingDataFromBuffer(), OpenSubdiv_Evaluator::setSettings, setSettings(), OpenSubdiv_Evaluator::setVaryingData, setVaryingData(), OpenSubdiv_Evaluator::setVaryingDataFromBuffer, setVaryingDataFromBuffer(), OpenSubdiv_Evaluator::setVertexData, setVertexData(), OpenSubdiv_Evaluator::wrapFVarPatchIndexBuffer, wrapFVarPatchIndexBuffer(), OpenSubdiv_Evaluator::wrapFVarPatchParamBuffer, wrapFVarPatchParamBuffer(), OpenSubdiv_Evaluator::wrapFVarSrcBuffer, wrapFVarSrcBuffer(), OpenSubdiv_Evaluator::wrapPatchIndexBuffer, wrapPatchIndexBuffer(), OpenSubdiv_Evaluator::wrapPatchParamBuffer, wrapPatchParamBuffer(), OpenSubdiv_Evaluator::wrapSrcBuffer, wrapSrcBuffer(), OpenSubdiv_Evaluator::wrapSrcVertexDataBuffer, and wrapSrcVertexDataBuffer().

Referenced by openSubdiv_createEvaluatorFromTopologyRefiner().

◆ evaluateFaceVarying()

static void evaluateFaceVarying ( OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
const int ptex_face_index,
float face_u,
float face_v,
float face_varying[2] )
static

◆ evaluateLimit()

static void evaluateLimit ( OpenSubdiv_Evaluator * evaluator,
const int ptex_face_index,
const float face_u,
const float face_v,
float P[3],
float dPdu[3],
float dPdv[3] )
static

◆ evaluatePatchesLimit()

static void evaluatePatchesLimit ( OpenSubdiv_Evaluator * evaluator,
const OpenSubdiv_PatchCoord * patch_coords,
const int num_patch_coords,
float * P,
float * dPdu,
float * dPdv )
static

◆ evaluateVarying()

static void evaluateVarying ( OpenSubdiv_Evaluator * evaluator,
const int ptex_face_index,
float face_u,
float face_v,
float varying[3] )
static

◆ evaluateVertexData()

static void evaluateVertexData ( OpenSubdiv_Evaluator * evaluator,
const int ptex_face_index,
float face_u,
float face_v,
float vertex_data[3] )
static

◆ fillFVarPatchArraysBuffer()

static void fillFVarPatchArraysBuffer ( struct OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
struct OpenSubdiv_Buffer * patch_array_buffer )
static

◆ fillPatchArraysBuffer()

static void fillPatchArraysBuffer ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * patch_array_buffer )
static

◆ getPatchMap()

static void getPatchMap ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * patch_map_handles,
struct OpenSubdiv_Buffer * patch_map_quadtree,
int * min_patch_face,
int * max_patch_face,
int * max_depth,
int * patches_are_triangular )
static

◆ hasVertexData()

static bool hasVertexData ( struct OpenSubdiv_Evaluator * evaluator)
static

◆ openSubdiv_createEvaluatorCache()

OpenSubdiv_EvaluatorCache * openSubdiv_createEvaluatorCache ( eOpenSubdivEvaluator evaluator_type)

◆ openSubdiv_createEvaluatorFromTopologyRefiner()

◆ openSubdiv_deleteEvaluator()

◆ openSubdiv_deleteEvaluatorCache()

void openSubdiv_deleteEvaluatorCache ( OpenSubdiv_EvaluatorCache * evaluator_cache)

◆ openSubdiv_getGLSLPatchBasisSource()

const char * openSubdiv_getGLSLPatchBasisSource ( void )

Definition at line 301 of file evaluator_capi.cc.

Referenced by blender::draw::get_patch_evaluation_shader().

◆ refine()

◆ setCoarsePositions()

static void setCoarsePositions ( OpenSubdiv_Evaluator * evaluator,
const float * positions,
const int start_vertex_index,
const int num_vertices )
static

◆ setCoarsePositionsFromBuffer()

static void setCoarsePositionsFromBuffer ( OpenSubdiv_Evaluator * evaluator,
const void * buffer,
const int start_offset,
const int stride,
const int start_vertex_index,
const int num_vertices )
static

◆ setFaceVaryingData()

static void setFaceVaryingData ( OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
const float * face_varying_data,
const int start_vertex_index,
const int num_vertices )
static

◆ setFaceVaryingDataFromBuffer()

static void setFaceVaryingDataFromBuffer ( OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
const void * buffer,
const int start_offset,
const int stride,
const int start_vertex_index,
const int num_vertices )
static

◆ setSettings()

static void setSettings ( struct OpenSubdiv_Evaluator * evaluator,
const OpenSubdiv_EvaluatorSettings * settings )
static

◆ setVaryingData()

static void setVaryingData ( OpenSubdiv_Evaluator * evaluator,
const float * varying_data,
const int start_vertex_index,
const int num_vertices )
static

◆ setVaryingDataFromBuffer()

static void setVaryingDataFromBuffer ( OpenSubdiv_Evaluator * evaluator,
const void * buffer,
const int start_offset,
const int stride,
const int start_vertex_index,
const int num_vertices )
static

◆ setVertexData()

static void setVertexData ( OpenSubdiv_Evaluator * evaluator,
const float * vertex_data,
const int start_vertex_index,
const int num_vertices )
static

◆ wrapFVarPatchIndexBuffer()

static void wrapFVarPatchIndexBuffer ( struct OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
struct OpenSubdiv_Buffer * patch_index_buffer )
static

◆ wrapFVarPatchParamBuffer()

static void wrapFVarPatchParamBuffer ( struct OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
struct OpenSubdiv_Buffer * patch_param_buffer )
static

◆ wrapFVarSrcBuffer()

static void wrapFVarSrcBuffer ( struct OpenSubdiv_Evaluator * evaluator,
const int face_varying_channel,
struct OpenSubdiv_Buffer * src_buffer )
static

◆ wrapPatchIndexBuffer()

static void wrapPatchIndexBuffer ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * patch_index_buffer )
static

◆ wrapPatchParamBuffer()

static void wrapPatchParamBuffer ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * patch_param_buffer )
static

◆ wrapSrcBuffer()

static void wrapSrcBuffer ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * src_buffer )
static

◆ wrapSrcVertexDataBuffer()

static void wrapSrcVertexDataBuffer ( struct OpenSubdiv_Evaluator * evaluator,
struct OpenSubdiv_Buffer * src_buffer )
static