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

The MDL compiler allows to register builtin modules. More...

#include <imdl_compiler.h>

Inheritance diagram for mi::neuraylib::IMdl_compiler:

Public Member Functions

virtual Sint32 add_builtin_module (const char *module_name, const char *module_source)=0
 Adds a builtin MDL module. 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< 0x8fff0a2d, ... >
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< 0x8fff0a2d, ... >
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

The MDL compiler allows to register builtin modules.

Member Function Documentation

 add_builtin_module()

virtual Sint32 mi::neuraylib::IMdl_compiler::add_builtin_module ( const char *  module_name,
const char *  module_source 
)
pure virtual

Adds a builtin MDL module.

Builtin modules allow to use the native() annotation which is not possible for regular modules. Builtin modules can only be added before the first regular module has been loaded.

Note
After adding a builtin module it is still necessary to load it using mi::neuraylib::IMdl_impexp_api::load_module() before it can actually be used.
Parameters
module_nameThe MDL name of the module.
module_sourceThe MDL source code of the module.
Returns
  • 0: Success.
  • -1: Possible failure reasons: invalid parameters (NULL pointer), module_name is not a valid module name, failure to compile the module, or a regular module has already been loaded.