mi::shader::Interface Class Reference
top level C++ mental ray interface extensions More...
#include <mi_shader_if.h>
List of
all members.
|
Public Member Functions
|
virtual Options * |
getOptions (miTag
options_tag) |
|
access string options
|
virtual LightList * |
createLightList
(miState *state, miTag *slist=0, int n=0) |
|
get light list, used internally by light
iterators
|
virtual void |
release () |
|
release (delete) the instance of the
interface
|
Static Public Member Functions
|
Interface * |
get (int
version=mi_ray_interface_version) |
|
acquire an instance of the interface
|
Detailed Description
top level C++ mental ray interface extensions
This class is the top level access to the C++ shader interface
extensions. All other C++ extensions like mi::shader::Options and
mi::shader::LightIterator
are accessible through this class.
An instance of the Interface must be
acquired by calling mi_get_shader_interface() or the
static method Interface::get(). When
the interface is no more needed, it must be released by calling
Interface::release():
The C++ interface extensions are implemented as virtual
functions in this interface class in order to avoid linking and
symbol lookup problems. The interface is defined in the header file
mi_shader_if.h.
Member Function Documentation
virtual LightList*
mi::shader::Interface::createLightList |
( |
miState * |
state, |
|
|
miTag * |
slist =
0 , |
|
|
int |
n = 0 |
|
) |
[virtual] |
|
|
get light list, used internally by light iterators
This may be used to generate light iterators.
|
Interface*
mi::shader::Interface::get |
( |
int |
version =
mi_ray_interface_version |
) |
[inline, static] |
|
|
acquire an instance of the interface
This static method is equivalent to the function mi_get_shader_interface(), see
there fore more information. This static function can be used as
follows:
- Parameters:
-
|
version |
is the version number of the requested interface class, usually
no version argument needs to be passed. |
- Returns:
- The returned pointer points to an object in mental ray which
contains the interface functions as virtual methods (hence it is
possible to call the interface routines from a dynamically loaded
library without resolving the routine in a symbol table). The
caller may not attempt to modify or delete the returned object but
should call the mi::shader::Interface::release()
method when done.
|
virtual Options*
mi::shader::Interface::getOptions |
( |
miTag |
options_tag |
) |
[virtual] |
|
|
access string options
This may later be extended to also access all other options from
the miOptions structure.
- Parameters:
-
|
options_tag |
is the tag of the miOptions structure to be read or modified.
It must be valid through the use of the Options instance. |
- Returns:
- A pointer to an interface class. The Options::release()
method should be called when done.
|
virtual void
mi::shader::Interface::release |
( |
|
) |
[virtual] |
|
|
release (delete) the instance of the interface
An interface acquired with mi_get_shader_interface() must be
released with this call when done. The call may delete the object,
and the interface may no longer be used afterwards.
|
The documentation for this class was generated from the following
file:
Copyright © 1986-2006 by mental images GmbH