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: Unity.Cloud.Gltfast
Assembly: Unity.Cloud.Gltfast.dll
Syntax
[MovedFrom(true, "GLTFast", "glTFast", null)]
public interface IDeferAgent
Methods
BreakPointAsync()
Conditional yield. May continue right away or yield once, based on time.
Declaration
Task BreakPointAsync()
Returns
| Type | Description |
|---|---|
| Task | If ShouldDefer() returns true, returns Task.Yield(). Otherwise returns sync |
BreakPointAsync(float)
Conditional yield. May continue right away or yield once, based on time and duration.
Declaration
Task BreakPointAsync(float duration)
Parameters
| Type | Name | Description |
|---|---|---|
| float | duration | Predicted duration of upcoming processing in seconds |
Returns
| Type | Description |
|---|---|
| Task | If ShouldDefer(float) 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 |
|---|---|
| bool | True if the remaining work of the loading procedure should be deferred to the next frame/Update loop invocation. False if work can continue. Must eventually return false, otherwise the procedure may stall indefinitely (imports never complete, tasks never finish, no error is raised). |
ShouldDefer(float)
Indicates if upcoming work should be deferred to the next frame.
Declaration
bool ShouldDefer(float duration)
Parameters
| Type | Name | Description |
|---|---|---|
| float | duration | Predicted duration of upcoming processing in seconds |
Returns
| Type | Description |
|---|---|
| bool | True if the remaining work of the loading procedure should be deferred to the next frame/Update loop invocation. False if work can continue. Must eventually return false, otherwise the procedure may stall indefinitely (imports never complete, tasks never finish, no error is raised). |