SceneCloner
The SceneTracer class provides an interface for performing Node Clone operations initiated by shaders. To execute a clone operation, the clone_graph_node() or clone_graph_nodes() GLSL function must be used, and the clone action will be completed on the next frame. For low-level control, the CloneParameters structure can be used, where the first element of the clone buffer contains the clone index, transform index, and the maximum number of transforms. The SceneManager class offers a clone callback interface that allows subscriptions to clone events.
info
The SceneCloner is available for GraphVarying shaders.
#include <scene/TellusimSceneCloner.h>
Constructors
SceneCloner()
Methods
Cloner parameters.
uint32_t getMaxNodes() const
Cloner buffers.
Buffer getCloneBuffer() const
Buffer getTransformBuffer() const
Cloner queries.
Query getQuery(QueryType type) const
static const char *getQueryName(QueryType type)
Dispatch cloner.
void dispatch(Compute compute, Flags flags = FlagNone)
Cloner nodes.
void addNode(const Node &reference, Node &node)
bool removeNodes(const Node &reference)
Enums
Flags
Cloner flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagQuery | (1 << 0) | Time query profiler. |
DefaultFlags | FlagNone | |
NumFlags | 1 |
QueryType
Query types.
Name | Value | Description |
---|---|---|
QueryTransform | 0 | Node transform time. |
NumQueries | 1 |
Structs
CloneParameters
Clone parameters.
Variables
Type | Name | Description |
---|---|---|
uint64_t | graph_address | Clone graph address. |
uint16_t | node_index | Clone node index. |
uint16_t | num_nodes | Number of nodes. |
uint32_t | base_transform | Base transform index. |
uint32_t | callback_index | Scene callback index. |
uint32_t | payload | Payload data. |
Clone
Cloner clone.
Variables
Type | Name | Description |
---|---|---|
uint32_t | reference_index | Reference node index. |
uint32_t | node_index | Cloned node index. |