#include <RadientAnimation.h>
Public Member Functions | |
| virtual IRadientAnimationClipAsset *DILIGENT_CALL_TYPE | GetClip () const =0 |
| Returns a borrowed pointer to the clip retained by this binding. | |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | Evaluate (const RadientAnimationEvaluateInfo &Info)=0 |
| Public Member Functions inherited from Diligent.IObject | |
| virtual void DILIGENT_CALL_TYPE | QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0 |
| Queries the specific interface. | |
| template<typename DerivedType, typename = typename std::enable_if<std::is_base_of<IObject, DerivedType>::value>::type> | |
| void | QueryInterface (const INTERFACE_ID &IID, DerivedType **ppInterface) |
| virtual ReferenceCounterValueType DILIGENT_CALL_TYPE | AddRef ()=0 |
| Increments the number of strong references by 1. | |
| virtual ReferenceCounterValueType DILIGENT_CALL_TYPE | Release ()=0 |
| virtual IReferenceCounters *DILIGENT_CALL_TYPE | GetReferenceCounters () const =0 |
Compiled connection between an immutable clip and runtime destinations.
A binding owns destination-specific sampling and write plans and may keep reusable scratch memory for values shared by multiple destinations. Evaluate performs no schema, object, or property lookup and samples directly into destination outputs when possible. The binding and all of its destinations are externally synchronized and must not be accessed concurrently. If evaluation of a multi-destination binding fails, updates already applied to earlier destinations are not rolled back.
|
pure virtual |
Samples the clip and writes all compiled destinations according to Info. Each distinct (sampler, value-semantic) pair is sampled once, and each compiled destination binding receives one BeginUpdate()/EndUpdate() pair in descriptor order. A successful BeginUpdate() is always paired with EndUpdate(), and all of its outputs are written before EndUpdate(). No schema, object, property, or interface lookup occurs during this method. Info.Time must be finite.
Evaluation stops at the first destination failure. Updates already applied to earlier destinations are not rolled back, and later destinations are not called.