Interface IDeferAgent
An IDeferAgent decides whether to interrupt a preempt-able procedure running on the main thread at the current point in time. This decision manages the trade-off between minimum procedure duration and a responsive frame rate.
Namespace: GLTFast
Syntax
public interface IDeferAgent
Methods
BreakPoint()
Conditional yield. May continue right away or yield once, based on time.
Declaration
Task BreakPoint()
Returns
Type | Description |
---|---|
Task | If ShouldDefer() returns true, returns Task.Yield(). Otherwise returns sync |
BreakPoint(Single)
Conditional yield. May continue right away or yield once, based on time and duration.
Declaration
Task BreakPoint(float duration)
Parameters
Type | Name | Description |
---|---|---|
Single | duration | Predicted duration of upcoming processing in seconds |
Returns
Type | Description |
---|---|
Task | If ShouldDefer(Single) returns true, returns Task.Yield(). Otherwise returns sync |
ShouldDefer()
This will be called at various points in the loading procedure.
Declaration
bool ShouldDefer()
Returns
Type | Description |
---|---|
Boolean | True if the remaining work of the loading procedure should be deferred to the next frame/Update loop invocation. False if work can continue. |
ShouldDefer(Single)
Indicates if upcoming work should be deferred to the next frame.
Declaration
bool ShouldDefer(float duration)
Parameters
Type | Name | Description |
---|---|---|
Single | duration | Predicted duration of upcoming processing in seconds |
Returns
Type | Description |
---|---|
Boolean | True if the remaining work of the loading procedure should be deferred to the next frame/Update loop invocation. False if work can continue. |