r3mpproc
real/code/r3mpproc.h
r3code
Procedure body shader. This shader is a level which defines new kind of 'material properties' called 'parameters'. The shader coan constain any number of sub shaders. This shader corresponds to 'functions' in programming languages.
r3Mplevel
R3CLID_MPLEVEL
r3Mpprocedure
R3CLID_MPPROCEDURE - 822
ENUMPARAMETERS, NEWPARAMETER, DELPARAMETER, RENAMEPARAMETER, SETPARAMETERTYPE, GETPARAMETERTYPE, UPDATECHILDRENCALL,
int R3RegisterMPProcedureClass(R3APP *app);
R3MPPROCM_ENUMPARAMETERS
ENUMPARAMETERS
R3MPPROCM_ENUMPARAMETERS
R3OBJ*, callback object
R3INT, callback method
void*, user specific data
obj.ENUMPARAMETERS(p1, p2, p3);
Enumerates defined parameters. The callback method is send as follows: R3SendMsgA3((R3OBJ *)p1, (R3INT)p2, char *name, (R3INT)id, (void *)msg);
R3MPPROCM_NEWPARAMETER
NEWPARAMETER
R3MPPROCM_NEWPARAMETER
R3INT, parameter id unique in this shader
char*, name for the parameter
R3INT, type id
rc = obj.NEWPARAMETER(p1, p3);
Create a new parameter for the shader
R3MPPROCM_DELPARAMETER
DELPARAMETER
R3MPPROCM_DELPARAMETER
R3BOOL, TRUE if found
rc = obj.DELPARAMETER();
Delete parameter
R3MPPROCM_RENAMEPARAMETER
RENAMEPARAMETER
R3MPPROCM_RENAMEPARAMETER
R3BOOL, TRUE if found
rc = obj.RENAMEPARAMETER();
Rename parameter
R3MPPROCM_SETPARAMETERTYPE
SETPARAMETERTYPE
R3MPPROCM_SETPARAMETERTYPE
R3BOOL, TRUE if found
R3INT, type id
rc = obj.SETPARAMETERTYPE(p3);
Change the type of parameter
R3MPPROCM_GETPARAMETERTYPE
GETPARAMETERTYPE
R3MPPROCM_GETPARAMETERTYPE
R3INT, type id of the parameter, or NULL if a parameter with the given name is not defined
rc = obj.GETPARAMETERTYPE();
Change the type of parameter
R3MATPRPM_UPDATECHILDRENCALL
UPDATECHILDRENCALL
R3MATPRPM_UPDATECHILDRENCALL
obj.UPDATECHILDRENCALL();
used internally to notify children that they should update their name
Parameters
Parameters
R3MPPROCA_Parameters
r3List
R3LIST*
list of procedure parameters
jsobj.SetParameters(value);
value = jsobj.GetParameters();
R3LIST* value = ...;
R3SetAttrs(r3obj, R3MPPROCA_Parameters, value, R3TAG_END);
R3LIST* value;
R3GetAttrs(r3obj, R3MPPROCA_Parameters, &value, R3TAG_END);
CallName
CallName
R3MPPROCA_CallName
String
char*
call name
jsobj.SetCallName(value);
value = jsobj.GetCallName();
char* value = ...;
R3SetAttrs(r3obj, R3MPPROCA_CallName, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3MPPROCA_CallName, &value, R3TAG_END);
StackParamCount
StackParamCount
R3MPPROCA_StackParamCount
Integer
R3INT
number of local parameters in rendering stack
value = jsobj.GetStackParamCount();
R3INT value;
R3GetAttrs(r3obj, R3MPPROCA_StackParamCount, &value, R3TAG_END);