7 #ifndef PXR_EXEC_EXEC_SYSTEM_H 8 #define PXR_EXEC_EXEC_SYSTEM_H 12 #include "pxr/exec/exec/api.h" 21 PXR_NAMESPACE_OPEN_SCOPE
27 class Exec_RequestTracker;
33 template <
typename>
class TfSpan;
78 const VdfRequest &computeRequest);
86 const VdfRequest &computeRequest,
87 ExecValueOverrideVector &&valueOverrides);
106 std::pair<std::vector<VdfMaskedOutput>, std::vector<const EfLeafNode*>>
111 bool _HasPendingRecompilation()
const;
117 void _InvalidateAll();
121 void _InvalidateDisconnectedInputs();
129 void _InvalidateMetadataValues(
130 TfSpan<
const std::pair<SdfPath, TfToken>> invalidObjects);
136 void _InvalidateUnknownValues();
141 std::unique_ptr<Exec_Program> _program;
142 std::unique_ptr<Exec_Runtime> _runtime;
144 std::unique_ptr<Exec_RequestTracker> _requestTracker;
147 PXR_NAMESPACE_CLOSE_SCOPE
Holds an implementation of EsfStageInterface in a fixed-size buffer.
EXEC_API ExecSystem(EsfStage &&stage)
Construct an exec system for computing values on stage.
Base implementation of a system to procedurally compute values based on scene description and computa...
EXEC_API std::unique_ptr< VdfExecutorInterface > _ComputeWithOverrides(const VdfSchedule &schedule, const VdfRequest &computeRequest, ExecValueOverrideVector &&valueOverrides)
Computes the values in the computeRequest using the provided schedule in the presence of valueOverrid...
EXEC_API void _Compute(const VdfSchedule &schedule, const VdfRequest &computeRequest)
Computes the values in the computeRequest using the provided schedule.
Public API to deliver scene changes from ExecSystem derived classes.
A terminal node, which is never executed.
This class provides a non-owning reference to a type-erased callable object with a specified signatur...
A class that represents a point in time for execution.
Token for efficient comparison, assignment, and hashing of known strings.
Contains a specification of how to execute a particular VdfNetwork.
Represents a range of contiguous elements.
Utility class with various diagnostic functions for ExecSystem.
Specifies a computed value.
Contains data structures necessary to implement exec requests that are independent of scene descripti...
A path value used to locate objects in layers or scenegraphs.
Class to hold on to an externally owned output and a mask.
EXEC_API void _ParallelForEachRequest(TfFunctionRef< void(Exec_RequestImpl &)> f) const
Invoke f on each outstanding exec request.
EXEC_API void _Compile(TfSpan< const ExecValueKey > valueKeys)
Compiles outputs for the value keys in the request.
EXEC_API void _ChangeTime(const EfTime &time)
Changes time on the system.
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values.