8#ifndef PXR_USD_SDR_PARSER_PLUGIN_H
9#define PXR_USD_SDR_PARSER_PLUGIN_H
14#include "pxr/base/tf/type.h"
17#include "pxr/usd/sdr/api.h"
21PXR_NAMESPACE_OPEN_SCOPE
27#define SDR_REGISTER_PARSER_PLUGIN(ParserPluginClass) \
28TF_REGISTRY_FUNCTION(TfType) \
30 TfType::Define<ParserPluginClass, TfType::Bases<SdrParserPlugin>>() \
31 .SetFactory<SdrParserPluginFactory<ParserPluginClass>>(); \
160class SdrParserPluginFactory :
public SdrParserPluginFactoryBase
171PXR_NAMESPACE_CLOSE_SCOPE
Interface for parser plugins.
virtual SDR_API SdrShaderNodeUniquePtr ParseShaderNode(const SdrShaderNodeDiscoveryResult &discoveryResult)=0
Takes the specified SdrShaderNodeDiscoveryResult instance, which was a result of the discovery proces...
virtual SDR_API const SdrTokenVec & GetDiscoveryTypes() const =0
Returns the types of nodes that this plugin can parse.
static SDR_API SdrShaderNodeUniquePtr GetInvalidShaderNode(const SdrShaderNodeDiscoveryResult &dr)
Gets an invalid node based on the discovery result provided.
virtual SDR_API const TfToken & GetSourceType() const =0
Returns the source type that this parser operates on.
Token for efficient comparison, assignment, and hashing of known strings.
Base class of all factory types.
Enable a concrete base class for use with TfWeakPtr.
Represents the raw data of a node, and some other bits of metadata, that were determined via a SdrDis...
Pointer storage with deletion detection.