Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Main MDL API Interface and C access function

The main MDL API Interface and the unique public access point. More...

Namespaces

 mi
 Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
 

Classes

class  mi::neuraylib::IAllocator
 The Allocator interface class supports allocating and releasing memory dynamically and querying the amount of extra memory used in the integrating application. More...
 
class  mi::neuraylib::INeuray
 This is an object representing the MDL API library. More...
 

Functions

mi::neuraylib::INeuraymi_neuray_factory_deprecated (mi::neuraylib::IAllocator *allocator=0, mi::Uint32 version=MI_NEURAYLIB_API_VERSION)
 Unique public access point to the MDL API. More...
 
mi::base::IInterfacemi_factory (const mi::base::Uuid &iid)
 Unique public access point to the MDL API. More...
 

Detailed Description

The main MDL API Interface and the unique public access point.

Function Documentation

mi::base::IInterface* mi_factory ( const mi::base::Uuid iid)

Unique public access point to the MDL API.

This factory function is the only public access point to all algorithms and data structures in the MDL API library. It returns a pointer to an instance of the class identified by the given UUID. Currently the function supports the following interfaces:

  • an instance of the main mi::neuraylib::INeuray interface, which is used to configure, to start up, to operate and to shut down the MDL API. This interface can be requested only once.
  • an instance of the mi::neuraylib::IVersion class.
Parameters
iidUUID of the requested interface
Returns
A pointer to an instance of the requested interface, or NULL if there is no interface with the requested UUID. This can happen if the library used at runtime does not match the headers used at compile time. In addition, NULL is returned if the interface mi::neuraylib::INeuray is requested a second time.
mi::neuraylib::INeuray* mi_neuray_factory_deprecated ( mi::neuraylib::IAllocator allocator = 0,
mi::Uint32  version = MI_NEURAYLIB_API_VERSION 
)

Unique public access point to the MDL API.

This factory function is the only public access point to all algorithms and data structures in the MDL API library. It returns a pointer to an instance of the main mi::neuraylib::INeuray interface, which is used to configure, to start up, to operate, and to shut down the MDL API. The mi_neuray_factory_deprecated() function may be called only once. This function is deprecated. Please use mi_factory() instead.

Parameters
allocatorThe memory allocator to be used. This feature is not yet supported.
versionThe desired version of mi::neuraylib::INeuray. The parameter is an integer number that specifies the desired API version, which is set by default to the current API version given in the symbolic constant MI_NEURAYLIB_API_VERSION. This parameter supports the use case where an application uses an older MDL API version but links with a newer MDL API library. In this case, the newer library can still support the older API in a binary compatible fashion. Only in rare circumstances do you need to set the API version number explicitly.
Returns
A pointer to an instance of the main mi::neuraylib::INeuray interface, or NULL in case of failures. Possible reasons for failures are
  • allocator is not NULL,
  • the valued passed for version is not supported by this library, or
  • the function is called a second time. A typical cause for the second reason is that the library used at runtime does not match the headers used at compile time.