MDL backends allow to transform compiled material instances or function calls into target code. More...
#include <imdl_backend.h>
Public Member Functions | |
virtual Sint32 | set_option (const char *name, const char *value)=0 |
Sets a backend option. More... | |
virtual Sint32 | set_option_binary (const char *name, const char *data, Size size)=0 |
Sets a binary backend option. More... | |
virtual const Uint8 * | get_device_library (Size &size) const =0 |
Returns the representation of a device library for this backend if one exists. More... | |
virtual const ITarget_code * | translate_environment (ITransaction *transaction, const IFunction_call *call, const char *fname, IMdl_execution_context *context)=0 |
Transforms an MDL environment function call into target code. More... | |
virtual const ITarget_code * | translate_material_expression (ITransaction *transaction, const ICompiled_material *material, const char *path, const char *fname, IMdl_execution_context *context)=0 |
Transforms an expression that is part of an MDL material instance to target code. More... | |
virtual const ITarget_code * | translate_material_df (ITransaction *transaction, const ICompiled_material *material, const char *path, const char *base_fname, IMdl_execution_context *context)=0 |
Transforms an MDL distribution function to target code. More... | |
virtual const ITarget_code * | translate_material (ITransaction *transaction, const ICompiled_material *material, Target_function_description *function_descriptions, Size description_count, IMdl_execution_context *context)=0 |
Transforms (multiple) distribution functions and expressions of a material to target code. More... | |
virtual ILink_unit * | create_link_unit (ITransaction *transaction, IMdl_execution_context *context)=0 |
Creates a new link unit. More... | |
virtual const ITarget_code * | translate_link_unit (const ILink_unit *lu, IMdl_execution_context *context)=0 |
Transforms a link unit to target code. More... | |
virtual const ITarget_code * | deserialize_target_code (ITransaction *transaction, const IBuffer *buffer, IMdl_execution_context *context) const =0 |
Restores an instance of ITarget_code from a buffer. More... | |
virtual const ITarget_code * | deserialize_target_code (ITransaction *transaction, const Uint8 *buffer_data, Size buffer_size, IMdl_execution_context *context) const =0 |
Restores an instance of ITarget_code from a buffer. More... | |
Public Member Functions inherited from mi::base::IInterface | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
Public Types inherited from mi::base::Interface_declare< 0x9ecdd747, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> | IID |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x9ecdd747, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::IInterface | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
MDL backends allow to transform compiled material instances or function calls into target code.