MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::IMdl_backend Class Referenceabstract

MDL backends allow to transform compiled material instances or function calls into target code. More...

#include <imdl_backend.h>

Inheritance diagram for mi::neuraylib::IMdl_backend:

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 Uint8get_device_library (Size &size) const =0
 Returns the representation of a device library for this backend if one exists. More...
 
virtual const ITarget_codetranslate_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_codetranslate_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_codetranslate_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_codetranslate_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_unitcreate_link_unit (ITransaction *transaction, IMdl_execution_context *context)=0
 Creates a new link unit. More...
 
virtual const ITarget_codetranslate_link_unit (const ILink_unit *lu, IMdl_execution_context *context)=0
 Transforms a link unit to target code. More...
 
virtual const ITarget_codedeserialize_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_codedeserialize_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 IInterfaceget_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 IInterfaceget_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...
 

Detailed Description

MDL backends allow to transform compiled material instances or function calls into target code.