Go to the documentation of this file.
12 #ifndef OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
13 #define OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
21 #include <unordered_map>
23 class TestVolumeExecutable;
26 class ExecutionEngine;
42 using Ptr = std::shared_ptr<VolumeExecutable>;
103 friend class ::TestVolumeExecutable;
117 const std::shared_ptr<const llvm::ExecutionEngine>& engine,
120 const std::unordered_map<std::string, uint64_t>& functions);
125 const std::shared_ptr<const llvm::LLVMContext> mContext;
126 const std::shared_ptr<const llvm::ExecutionEngine> mExecutionEngine;
129 const std::unordered_map<std::string, uint64_t> mFunctionAddresses;
130 std::unique_ptr<Settings> mSettings;
137 #endif // OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
VolumeExecutable(const VolumeExecutable &other)
Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an exec...
std::shared_ptr< const CustomData > ConstPtr
Definition: CustomData.h:47
std::shared_ptr< VolumeExecutable > Ptr
Definition: VolumeExecutable.h:42
Definition: Compiler.h:31
void setCreateMissing(const bool flag)
Set the behaviour when missing grids are accessed. Default behaviour is true, which creates them with...
size_t getGrainSize() const
Index getTreeExecutionLevel() const
@ ALL
Definition: IndexIterator.h:43
Index32 Index
Definition: openvdb/Types.h:32
Access to the CustomData class which can provide custom user user data to the OpenVDB AX Compiler.
Library and file format version numbers.
void execute(openvdb::GridPtrVec &grids) const
Execute AX code on target grids.
Abstract base class for typed grids.
Definition: Grid.h:78
void execute(openvdb::GridBase &grid) const
void setTreeExecutionLevel(const Index level)
Set the execution level for this executable. This controls what nodes are processed when execute is c...
The compiler class. This holds an llvm context and set of compiler options, and constructs executable...
Definition: Compiler.h:50
Object that encapsulates compiled AX code which can be executed on a collection of VDB volume grids.
Definition: VolumeExecutable.h:40
IterType
Definition: VolumeExecutable.h:81
void setValueIterator(const IterType &iter)
Set the value iterator type to use with this executable. Options are ON, OFF, ALL....
void setGrainSize(const size_t grain)
Set the threading grain size. Default is 1. A value of 0 has the effect of disabling multi-threading.
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:514
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:153
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h:101
IterType getValueIterator() const
bool getCreateMissing() const
These classes contain lists of expected attributes and volumes which are populated by compiler during...
Definition: openvdb/Exceptions.h:13
std::shared_ptr< const AttributeRegistry > ConstPtr
Definition: AttributeRegistry.h:40