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

Represents target code of an MDL backend. More...

#include <imdl_backend.h>

Inheritance diagram for mi::neuraylib::ITarget_code:

Public Types

enum  State_usage_property {
  SU_POSITION = 0x0001u ,
  SU_NORMAL = 0x0002u ,
  SU_GEOMETRY_NORMAL = 0x0004u ,
  SU_MOTION = 0x0008u ,
  SU_TEXTURE_COORDINATE = 0x0010u ,
  SU_TEXTURE_TANGENTS = 0x0020u ,
  SU_TANGENT_SPACE = 0x0040u ,
  SU_GEOMETRY_TANGENTS = 0x0080u ,
  SU_DIRECTION = 0x0100u ,
  SU_ANIMATION_TIME = 0x0200u ,
  SU_ROUNDED_CORNER_NORMAL = 0x0400u ,
  SU_ALL_VARYING_MASK = 0x07FFu ,
  SU_TRANSFORMS = 0x0800u ,
  SU_OBJECT_ID = 0x1000u ,
  SU_ALL_UNIFORM_MASK = 0x1800u ,
  SU_FORCE_32_BIT = 0xFFFFFFFFu
}
 The potential state usage properties. More...
 
enum  Texture_shape {
  Texture_shape_invalid = 0 ,
  Texture_shape_2d = 1 ,
  Texture_shape_3d = 2 ,
  Texture_shape_cube = 3 ,
  Texture_shape_ptex = 4 ,
  Texture_shape_bsdf_data = 5 ,
  Texture_shape_FORCE_32_BIT = 0xFFFFFFFFu
}
 
enum  Prototype_language
 Language to use for the callable function prototype. More...
 
enum  Distribution_kind
 Possible kinds of distribution functions. More...
 
enum  Function_kind
 Possible kinds of callable functions. More...
 
enum  Gamma_mode
 Possible texture gamma modes. More...
 
- Public Types inherited from mi::base::Interface_declare< 0xefca46ae, ... >
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...
 

Public Member Functions

virtual IMdl_backend_api::Mdl_backend_kind get_backend_kind () const =0
 Returns the kind of backend this information belongs to. More...
 
virtual const char * get_code () const =0
 Returns the represented target code in ASCII representation. More...
 
virtual Size get_code_size () const =0
 Returns the length of the represented target code. More...
 
virtual Size get_callable_function_count () const =0
 Returns the number of callable functions in the target code. More...
 
virtual const char * get_callable_function (Size index) const =0
 Returns the name of a callable function in the target code. More...
 
Textures
virtual Size get_texture_count () const =0
 Returns the number of texture resources used by the target code. More...
 
virtual const char * get_texture (Size index) const =0
 Returns the name of a texture resource used by the target code. More...
 
virtual const char * get_texture_url (Size index) const =0
 Returns the MDL file path of a texture resource used by the target code if no database element is associated to the resource. More...
 
virtual const char * get_texture_owner_module (Size index) const =0
 Returns the owner module name of a relative texture file path. More...
 
virtual bool get_texture_is_body_resource (Size index) const =0
 Check whether the texture resource is coming from the body of expressions (not solely from material arguments). More...
 
virtual Gamma_mode get_texture_gamma (Size index) const =0
 Returns the gamma mode of a texture resource used by the target code. More...
 
virtual const char * get_texture_selector (Size index) const =0
 Returns the selector mode of a texture resource used by the target code. More...
 
virtual Texture_shape get_texture_shape (Size index) const =0
 Returns the texture shape of a given texture resource used by the target code. More...
 
virtual Df_data_kind get_texture_df_data_kind (Size index) const =0
 Returns the distribution function data kind of a given texture resource used by the target code. More...
 
virtual const Float32get_texture_df_data (Size index, Size &rx, Size &ry, Size &rz) const =0
 Returns the distribution function data this texture refers to. More...
 
Light profiles
virtual Size get_light_profile_count () const =0
 Returns the number of light profile resources used by the target code. More...
 
virtual const char * get_light_profile (Size index) const =0
 Returns the name of a light profile resource used by the target code. More...
 
virtual const char * get_light_profile_url (Size index) const =0
 Returns the MDL file path of a light profile resource used by the target code if no database element is associated to the resource. More...
 
virtual const char * get_light_profile_owner_module (Size index) const =0
 Returns the owner module name of a relative light profile file path. More...
 
virtual bool get_light_profile_is_body_resource (Size index) const =0
 Check whether the light profile resource is coming from the body of expressions (not solely from material arguments). More...
 
BSDF measurements
virtual Size get_bsdf_measurement_count () const =0
 Returns the number of bsdf measurement resources used by the target code. More...
 
virtual const char * get_bsdf_measurement (Size index) const =0
 Returns the name of a bsdf measurement resource used by the target code. More...
 
virtual const char * get_bsdf_measurement_url (Size index) const =0
 Returns the MDL file path of a BSDF measurement resource used by the target code if no database element is associated to the resource. More...
 
virtual const char * get_bsdf_measurement_owner_module (Size index) const =0
 Returns the owner module name of a relative BSDF measurement file path. More...
 
virtual bool get_bsdf_measurement_is_body_resource (Size index) const =0
 Check whether the BSDF measurement resource is coming from the body of expressions (not solely from material arguments). More...
 
virtual Size get_ro_data_segment_count () const =0
 Returns the number of constant data initializers. More...
 
virtual const char * get_ro_data_segment_name (Size index) const =0
 Returns the name of the constant data segment at the given index. More...
 
virtual Size get_ro_data_segment_size (Size index) const =0
 Returns the size of the constant data segment at the given index. More...
 
virtual const char * get_ro_data_segment_data (Size index) const =0
 Returns the data of the constant data segment at the given index. More...
 
virtual Size get_code_segment_count () const =0
 Returns the number of code segments of the target code. More...
 
virtual const char * get_code_segment (Size index) const =0
 Returns the represented target code segment in ASCII representation. More...
 
virtual Size get_code_segment_size (Size index) const =0
 Returns the length of the represented target code segment. More...
 
virtual const char * get_code_segment_description (Size index) const =0
 Returns the description of the target code segment. More...
 
virtual State_usage get_render_state_usage () const =0
 Returns the potential render state usage of the target code. More...
 
virtual Size get_argument_block_count () const =0
 Returns the number of target argument blocks. More...
 
virtual const ITarget_argument_blockget_argument_block (Size index) const =0
 Get a target argument block if available. More...
 
virtual ITarget_argument_blockcreate_argument_block (Size index, const ICompiled_material *material, ITarget_resource_callback *resource_callback) const =0
 Create a new target argument block of the class-compiled material for this target code. More...
 
virtual Size get_argument_layout_count () const =0
 Returns the number of target argument block layouts. More...
 
virtual const ITarget_value_layoutget_argument_block_layout (Size index) const =0
 Get a captured arguments block layout if available. More...
 
virtual Size get_string_constant_count () const =0
 Returns the number of string constants used by the target code. More...
 
virtual const char * get_string_constant (Size index) const =0
 Returns the string constant used by the target code. More...
 
virtual Uint32 get_known_resource_index (ITransaction *transaction, IValue_resource const *resource) const =0
 Returns the resource index for use in an ITarget_argument_block of resources already known when this ITarget_code object was generated. More...
 
virtual const char * get_callable_function_prototype (Size index, Prototype_language lang) const =0
 Returns the prototype of a callable function in the target code. More...
 
virtual Distribution_kind get_callable_function_distribution_kind (Size index) const =0
 Returns the distribution kind of a callable function in the target code. More...
 
virtual Function_kind get_callable_function_kind (Size index) const =0
 Returns the function kind of a callable function in the target code. More...
 
virtual Size get_callable_function_argument_block_index (Size index) const =0
 Get the index of the target argument block to use with a callable function. More...
 
virtual Sint32 execute_environment (Size index, const Shading_state_environment &state, Texture_handler_base *tex_handler, Spectrum_struct *result) const =0
 Run this code on the native CPU. More...
 
virtual Sint32 execute (Size index, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args, void *result) const =0
 Run this code on the native CPU with the given captured arguments block. More...
 
virtual Sint32 execute_bsdf_init (Size index, Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the BSDF init function for this code on the native CPU. More...
 
virtual Sint32 execute_bsdf_sample (Size index, Bsdf_sample_data *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the BSDF sample function for this code on the native CPU. More...
 
virtual Sint32 execute_bsdf_evaluate (Size index, Bsdf_evaluate_data_base *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the BSDF evaluation function for this code on the native CPU. More...
 
virtual Sint32 execute_bsdf_pdf (Size index, Bsdf_pdf_data *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the BSDF PDF calculation function for this code on the native CPU. More...
 
virtual Sint32 execute_bsdf_auxiliary (Size index, Bsdf_auxiliary_data_base *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the BSDF auxiliary calculation function for this code on the native CPU. More...
 
virtual Sint32 execute_edf_init (Size index, Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the EDF init function for this code on the native CPU. More...
 
virtual Sint32 execute_edf_sample (Size index, Edf_sample_data *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the EDF sample function for this code on the native CPU. More...
 
virtual Sint32 execute_edf_evaluate (Size index, Edf_evaluate_data_base *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the EDF evaluation function for this code on the native CPU. More...
 
virtual Sint32 execute_edf_pdf (Size index, Edf_pdf_data *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the EDF PDF calculation function for this code on the native CPU. More...
 
virtual Sint32 execute_edf_auxiliary (Size index, Edf_auxiliary_data_base *data, const Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the EDF auxiliary calculation function for this code on the native CPU. More...
 
virtual Size get_callable_function_df_handle_count (Size func_index) const =0
 Get the number of distribution function handles referenced by a callable function. More...
 
virtual const char * get_callable_function_df_handle (Size func_index, Size handle_index) const =0
 Get the name of a distribution function handle referenced by a callable function. More...
 
virtual bool supports_serialization () const =0
 Indicates whether the target code can be serialized. More...
 
virtual const IBufferserialize (IMdl_execution_context *context) const =0
 Stores the data of this object in a buffer that can written to an external cache. More...
 
virtual State_usage get_callable_function_render_state_usage (Size index) const =0
 Returns the potential render state usage of callable function in the target code. More...
 
virtual Sint32 execute_init (Size index, Shading_state_material &state, Texture_handler_base *tex_handler, const ITarget_argument_block *cap_args) const =0
 Run the init function for this code on the native CPU (single-init mode). More...
 
virtual Size MI_NEURAYLIB_DEPRECATED_METHOD_14_0() get_body_texture_count () const =0
 
virtual Size MI_NEURAYLIB_DEPRECATED_METHOD_14_0() get_body_light_profile_count () const =0
 
virtual Size MI_NEURAYLIB_DEPRECATED_METHOD_14_0() get_body_bsdf_measurement_count () const =0
 
- 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

- Static Public Member Functions inherited from mi::base::Interface_declare< 0xefca46ae, ... >
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

Represents target code of an MDL backend.