7#ifndef MI_NEURAYLIB_IMDL_MODULE_BUILDER_H
8#define MI_NEURAYLIB_IMDL_MODULE_BUILDER_H
20class IAnnotation_block;
21class IAnnotation_list;
23class IExpression_list;
24class IMdl_execution_context;
34 base::Interface_declare<0x2357f2f8,0x4428,0x47e5,0xaa,0x92,0x97,0x98,0x25,0x5d,0x26,0x57>
59 const char* prototype_name,
67#ifdef MI_NEURAYLIB_DEPRECATED_15_0
70 const char* prototype_name,
132#ifdef MI_NEURAYLIB_DEPRECATED_15_0
146 name, body, 0, parameters, defaults, parameter_annotations, annotations,
147 return_annotations, is_exported,
false, frequency_qualifier, context);
239#ifdef MI_NEURAYLIB_DEPRECATED_15_0
This interface represents static arrays, i.e., arrays with a fixed number of elements.
Definition: iarray.h:37
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
An annotation block is an array of annotations.
Definition: iexpression.h:575
An ordered collection of annotation blocks identified by name or index.
Definition: iexpression.h:603
An ordered collection of expressions identified by name or index.
Definition: iexpression.h:317
The interface to MDL expressions.
Definition: iexpression.h:50
The execution context can be used to query status information like error and warning messages concern...
Definition: imdl_execution_context.h:131
The module builder allows to create new MDL modules.
Definition: imdl_module_builder.h:35
virtual Sint32 add_struct_type(const char *name, const IType_list *fields, const IExpression_list *field_defaults, const IAnnotation_list *field_annotations, const IAnnotation_block *annotations, bool is_exported, bool is_declarative, const IStruct_category *struct_category, IMdl_execution_context *context)=0
Adds a struct type to the module.
virtual Sint32 set_module_annotations(const IAnnotation_block *annotations, IMdl_execution_context *context)=0
Sets the annotations of the module itself.
virtual Sint32 add_annotation(const char *name, const IType_list *parameters, const IExpression_list *defaults, const IAnnotation_list *parameter_annotations, const IAnnotation_block *annotations, bool is_exported, IMdl_execution_context *context)=0
Adds an annotation to the module.
virtual Sint32 add_function(const char *name, const IExpression *body, const IExpression_list *temporaries, const IType_list *parameters, const IExpression_list *defaults, const IAnnotation_list *parameter_annotations, const IAnnotation_block *annotations, const IAnnotation_block *return_annotations, bool is_exported, bool is_declarative, IType::Modifier frequency_qualifier, IMdl_execution_context *context)=0
Adds a material or function to the module.
virtual Sint32 remove_entity(const char *name, Size index, IMdl_execution_context *context)=0
Removes a material, function, enum or struct type from the module.
virtual Sint32 add_struct_category(const char *name, const IAnnotation_block *annotations, bool is_exported, IMdl_execution_context *context)=0
Adds a struct category the module.
virtual Sint32 add_variant(const char *name, const char *prototype_name, const IExpression_list *defaults, const IAnnotation_block *annotations, const IAnnotation_block *return_annotations, bool is_exported, bool is_declarative, IMdl_execution_context *context)=0
Adds a variant to the module.
virtual Sint32 add_constant(const char *name, const IExpression *expr, const IAnnotation_block *annotations, bool is_exported, IMdl_execution_context *context)=0
Adds a constant to the module.
virtual const IArray * analyze_uniform(const IExpression *root_expr, bool root_expr_uniform, IMdl_execution_context *context)=0
Analyzes which parameters need to be uniform.
virtual Sint32 add_enum_type(const char *name, const IExpression_list *enumerators, const IAnnotation_list *enumerator_annotations, const IAnnotation_block *annotations, bool is_exported, IMdl_execution_context *context)=0
Adds an enum type to the module.
virtual Sint32 clear_module(IMdl_execution_context *context)=0
Clears the module, i.e., removes all entities from the module.
Represents the optional struct category for struct types.
Definition: itype.h:49
An ordered collection of types identified by name or index.
Definition: itype.h:646
Modifier
The possible kinds of type modifiers.
Definition: itype.h:198
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Mixin class template for deriving new interface declarations.
Types of the MDL type system.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
Major and minor version number and an optional qualifier.