Diligent Engine
Loading...
Searching...
No Matches
Diligent::IRadientAnimationBinding Struct Referenceabstract

#include <RadientAnimation.h>

Inheritance diagram for Diligent::IRadientAnimationBinding:
Diligent.IObject

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

Detailed Description

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.

Member Function Documentation

◆ Evaluate()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientAnimationBinding::Evaluate ( const RadientAnimationEvaluateInfo & Info)
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.

Returns
RADIENT_STATUS_OK when the nonempty binding was evaluated, RADIENT_STATUS_NO_CHANGE when the binding is empty, RADIENT_STATUS_INVALID_ARGUMENT when Info is invalid, or a destination failure.