HDK
|
#include <oslParser.h>
Public Types | |
typedef HOSL::OSLQuery::Parameter | OslParameter |
Public Member Functions | |
SDROSL_API | SdrOslParserPlugin () |
SDROSL_API | ~SdrOslParserPlugin () |
SDROSL_API NdrNodeUniquePtr | Parse (const NdrNodeDiscoveryResult &discoveryResult) override |
SDROSL_API const NdrTokenVec & | GetDiscoveryTypes () const override |
SDROSL_API const TfToken & | GetSourceType () const override |
Public Member Functions inherited from NdrParserPlugin | |
NDR_API | NdrParserPlugin () |
virtual NDR_API | ~NdrParserPlugin () |
Public Member Functions inherited from TfWeakBase | |
TfWeakBase () | |
TfWeakBase (const TfWeakBase &) | |
const TfWeakBase & | __GetTfWeakBase__ () const |
const TfWeakBase & | operator= (const TfWeakBase &) |
void | EnableNotification2 () const |
TF_API void const * | GetUniqueIdentifier () const |
Additional Inherited Members | |
Static Public Member Functions inherited from NdrParserPlugin | |
static NDR_API NdrNodeUniquePtr | GetInvalidNode (const NdrNodeDiscoveryResult &dr) |
Protected Member Functions inherited from TfWeakBase | |
~TfWeakBase () | |
TfRefPtr< Tf_Remnant > | _Register () const |
template<class T > | |
TfRefPtr< Tf_Remnant > | _Register (T *tempRmnt) const |
bool | _HasRemnant () const |
Parses OSL nodes. For more information on parser plugins, see the documentation for NdrParserPlugin
.
The following metadata is pulled out of the shader and available on the destination as outlined below.
OSL Metadata Key | Destination |
---|---|
category | GetCategory() |
departments | GetDepartments() |
help | GetHelp() |
label | GetLabel() |
primvars | GetPrimvars(), GetAdditionalPrimvarProperties() |
_everything else_ | GetMetadata() |
OSL Metadata Key | Destination |
---|---|
connectable | IsConnectable() |
sdrDefinitionName | renames parameter, sends original osl param name to |
| SdrShaderProperty::GetImplementationName() page | GetPage() help | GetHelp() label | GetLabel() isDynamicArray | IsDynamicArray() options | GetOptions() vstructMemberName | GetVStructMemberName() vstructMemberOf | GetVStructMemberOf() everything else | GetMetadata()
Multiple options are separated with the pipe '|' character; options can be specified in one of two ways:
In the first case, where the values are not specified, the value of the option will be available on the node as an empty string.
Multiple primvars are separated with the pipe '|' character; primvars can be specified in one of two ways:
Definition at line 111 of file oslParser.h.
typedef HOSL::OSLQuery::Parameter SdrOslParserPlugin::OslParameter |
Definition at line 114 of file oslParser.h.
SDROSL_API SdrOslParserPlugin::SdrOslParserPlugin | ( | ) |
SDROSL_API SdrOslParserPlugin::~SdrOslParserPlugin | ( | ) |
|
overridevirtual |
Returns the types of nodes that this plugin can parse.
"Type" here is the discovery type (in the case of files, this will probably be the file extension, but in other systems will be data that can be determined during discovery). This type should only be used to match up a NdrNodeDiscoveryResult
to its parser plugin; this value is not exposed in the node's API.
Implements NdrParserPlugin.
|
overridevirtual |
Returns the source type that this parser operates on.
A source type is the most general type for a node. The parser plugin is responsible for parsing all discovery results that have the types declared under GetDiscoveryTypes()
, and those types are collectively identified as one "source type".
Implements NdrParserPlugin.
|
overridevirtual |
Takes the specified NdrNodeDiscoveryResult
instance, which was a result of the discovery process, and generates a new NdrNode
. The node's name, source type, and family must match.
Implements NdrParserPlugin.