HDK
|
#include "pxr/pxr.h"
#include "pxr/imaging/hdSt/api.h"
#include "pxr/imaging/hdSt/computation.h"
#include "pxr/imaging/hdSt/extCompGpuComputationResource.h"
#include "pxr/imaging/hd/bufferSource.h"
#include "pxr/usd/sdf/path.h"
#include "pxr/base/tf/token.h"
#include "pxr/base/vt/value.h"
#include <memory>
#include <vector>
Go to the source code of this file.
Classes | |
class | HdStExtCompGpuComputation |
Typedefs | |
using | HdStGLSLProgramSharedPtr = std::shared_ptr< class HdStGLSLProgram > |
using | HdExtComputationPrimvarDescriptorVector = std::vector< struct HdExtComputationPrimvarDescriptor > |
using | HdStExtCompGpuComputationSharedPtr = std::shared_ptr< class HdStExtCompGpuComputation > |
Functions | |
HDST_API void | HdSt_GetExtComputationPrimvarsComputations (const SdfPath &id, HdSceneDelegate *sceneDelegate, HdExtComputationPrimvarDescriptorVector const &allCompPrimvars, HdDirtyBits dirtyBits, HdBufferSourceSharedPtrVector *sources, HdBufferSourceSharedPtrVector *reserveOnlySources, HdBufferSourceSharedPtrVector *separateComputationSources, HdStComputationComputeQueuePairVector *computations) |
using HdExtComputationPrimvarDescriptorVector = std::vector<struct HdExtComputationPrimvarDescriptor> |
Definition at line 48 of file extCompGpuComputation.h.
using HdStExtCompGpuComputationSharedPtr = std::shared_ptr<class HdStExtCompGpuComputation> |
Definition at line 51 of file extCompGpuComputation.h.
using HdStGLSLProgramSharedPtr = std::shared_ptr<class HdStGLSLProgram> |
Definition at line 46 of file extCompGpuComputation.h.
HDST_API void HdSt_GetExtComputationPrimvarsComputations | ( | const SdfPath & | id, |
HdSceneDelegate * | sceneDelegate, | ||
HdExtComputationPrimvarDescriptorVector const & | allCompPrimvars, | ||
HdDirtyBits | dirtyBits, | ||
HdBufferSourceSharedPtrVector * | sources, | ||
HdBufferSourceSharedPtrVector * | reserveOnlySources, | ||
HdBufferSourceSharedPtrVector * | separateComputationSources, | ||
HdStComputationComputeQueuePairVector * | computations | ||
) |
Obtains a set of ExtComputation primvar source computations needed for this Rprim.
The list of computed primvar descriptors for an interpolation mode is passed in.
The scene delegate also provides information about which output on which computation is providing the source of the primvar.
Based on the information, the function creates the necessary computations and appends them on to the sources list (the sources vector need not be empty).
The caller is expected to pass these computation on these computations onto the resource registry (associating them with BARs if it is expected the primvar will be downloaded) Additional sources that should be associated with BARs but do not otherwise need to be scheduled for commit will be returned in reserveOnlySources.
The computation may also need to add sources that are resolved against internal BARs that are not to be associated with the primvar BAR. Those are returned in the separateComputationSources vector. The caller is expected to add them to the resource registry if the computation is needed.