![]() |
CPU controler for limit surface evaluation. More...
#include <cpuEvalLimitController.h>
Classes | |
| struct | FacevaryingData |
| struct | FacevaryingData |
| struct | VaryingData |
| struct | VaryingData |
| struct | VertexData |
| struct | VertexData |
Public Member Functions | |
| CpuEvalLimitController () | |
| Constructor. More... | |
| ~CpuEvalLimitController () | |
| Destructor. More... | |
| template<class INPUT_BUFFER , class OUTPUT_BUFFER > | |
| void | BindVertexBuffers (VertexBufferDescriptor const &iDesc, INPUT_BUFFER *inQ, VertexBufferDescriptor const &oDesc, OUTPUT_BUFFER *outQ, OUTPUT_BUFFER *outdQu=0, OUTPUT_BUFFER *outdQv=0) |
| Binds control vertex data buffer. More... | |
| template<class INPUT_BUFFER , class OUTPUT_BUFFER > | |
| void | BindVaryingBuffers (VertexBufferDescriptor const &iDesc, INPUT_BUFFER *inQ, VertexBufferDescriptor const &oDesc, OUTPUT_BUFFER *outQ) |
| Binds the varying-interpolated data streams. More... | |
| template<class OUTPUT_BUFFER > | |
| void | BindFacevaryingBuffers (VertexBufferDescriptor const &iDesc, VertexBufferDescriptor const &oDesc, OUTPUT_BUFFER *outQ) |
| Binds the face-varying-interpolated data streams. More... | |
| int | EvalLimitSample (EvalCoords const &coord, CpuEvalLimitContext *context, VertexBufferDescriptor const &outDesc, float *outQ, float *outDQU, float *outDQV) const |
| Vertex interpolation of a single sample at the limit. More... | |
| int | EvalLimitSample (EvalCoords const &coords, CpuEvalLimitContext *context, unsigned int index) const |
| Vertex interpolation of samples at the limit. More... | |
| void | Unbind () |
CPU controler for limit surface evaluation.
A CPU-driven controller that can be called to evaluate samples on the limit surface for a given EvalContext.
Warning : this eval controller is re-entrant but it breaks the Osd API pattern by requiring client code to bind and unbind the data buffers to the Controller before calling evaluation methods.
Ex :
Definition at line 60 of file cpuEvalLimitController.h.
Constructor.
Destructor.
|
inline |
Binds the face-varying-interpolated data streams.
Note : currently we only support bilinear boundary interpolation rules for face-varying data. Although Hbr supports 3 addition smooth rule sets, the feature-adaptive patch interpolation code currently does not support them, and neither does this EvalContext
| iDesc | data descriptor shared by all input data buffers |
| oDesc | data descriptor shared by all output data buffers |
| outQ | output face-varying data |
Definition at line 131 of file cpuEvalLimitController.h.
|
inline |
Binds the varying-interpolated data streams.
| iDesc | data descriptor shared by all input data buffers |
| inQ | input varying data |
| oDesc | data descriptor shared by all output data buffers |
| outQ | output varying data |
Definition at line 108 of file cpuEvalLimitController.h.
|
inline |
Binds control vertex data buffer.
| iDesc | data descriptor shared by all input data buffers |
| inQ | input vertex data |
| oDesc | data descriptor shared by all output data buffers |
| outQ | output vertex data |
| outdQu | output derivative along "u" of the vertex data (optional) |
| outdQv | output derivative along "v" of the vertex data (optional) |
Definition at line 84 of file cpuEvalLimitController.h.
| int EvalLimitSample | ( | EvalCoords const & | coord, |
| CpuEvalLimitContext * | context, | ||
| VertexBufferDescriptor const & | outDesc, | ||
| float * | outQ, | ||
| float * | outDQU, | ||
| float * | outDQV | ||
| ) | const |
Vertex interpolation of a single sample at the limit.
Evaluates "vertex" interpolation of a single sample on the surface limit.
This function is re-entrant but does not require binding the output vertex buffers. Pointers to memory where the data is output are explicitly passed to the function.
| coord | location on the limit surface to be evaluated |
| context | the EvalLimitContext that the controller will evaluate |
| outDesc | data descriptor (offset, length, stride) |
| outQ | output vertex data |
| outDQU | output derivative along "u" of the vertex data (optional) |
| outDQV | output derivative along "v" of the vertex data (optional) |
|
inline |
Vertex interpolation of samples at the limit.
Evaluates "vertex" interpolation of a sample on the surface limit.
| coords | location on the limit surface to be evaluated |
| context | the EvalLimitContext that the controller will evaluate |
| index | the index of the vertex in the output buffers bound to the context |
Definition at line 182 of file cpuEvalLimitController.h.
|
inline |
Definition at line 193 of file cpuEvalLimitController.h.