...
The desired input parameter to the shader is selected by an integer paramId
, which is the ordinal position of the parameter in the parameter table returned by RixShadingPlugin::GetParamTable()
. Callers are expected to know the paramId
, the type of the associated parameter and are expected to pass a pointer to a pointer of the appropriate type to EvalParam()
.
...
In some circumstances, users of EvalParam()
that do not know the paramId
(perhaps due to the use of a dynamic parameter table) or the type of the parameter can introspect for the paramId or information about the parameter via the GetParamId()
and the GetParamInfo()
methods.
...
RixShadingContext
provides a fast memory allocation service tailored to shaders that need to execute quickly. The main provider of this service is the Allocate()
routine; the New()
routine and the class Allocator
are wrappers around Allocate()
. The backing store for this memory allocation are memory pools which are tailored specifically to the lifetime requirements of RixPattern
and RixBxdf
, with the latter category equating to the the lifetime the lifetime of the RixShadingContext
. Clients that use these memory management services should use "placement new" semantics, and should not rely on the invocation of a destructor.
...