HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
discoveryPlugin.h
Go to the documentation of this file.
1
//
2
// Copyright 2025 Pixar
3
//
4
// Licensed under the terms set forth in the LICENSE.txt file available at
5
// https://openusd.org/license.
6
//
7
8
#ifndef PXR_USD_SDR_DISCOVERY_PLUGIN_H
9
#define PXR_USD_SDR_DISCOVERY_PLUGIN_H
10
11
/// \file sdr/discoveryPlugin.h
12
///
13
/// \note
14
/// All Ndr objects are deprecated in favor of the corresponding Sdr objects
15
/// in this file. All existing pxr/usd/ndr implementations will be moved to
16
/// pxr/usd/sdr.
17
18
#include "
pxr/pxr.h
"
19
#include "
pxr/usd/sdr/api.h
"
20
#include "
pxr/base/tf/declarePtrs.h
"
21
#include "
pxr/base/tf/type.h
"
22
#include "
pxr/base/tf/weakBase.h
"
23
#include "
pxr/usd/sdr/declare.h
"
24
#include "
pxr/usd/ndr/discoveryPlugin.h
"
25
#include "
pxr/usd/sdr/shaderNodeDiscoveryResult.h
"
26
27
PXR_NAMESPACE_OPEN_SCOPE
28
29
/// Register a discovery plugin (`DiscoveryPluginClass`) with the plugin system.
30
/// If registered, the discovery plugin will execute its discovery process when
31
/// the registry is instantiated.
32
#define SDR_REGISTER_DISCOVERY_PLUGIN(DiscoveryPluginClass) \
33
TF_REGISTRY_FUNCTION(TfType) \
34
{ \
35
TfType::Define<DiscoveryPluginClass, TfType::Bases<SdrDiscoveryPlugin>>() \
36
.SetFactory<SdrDiscoveryPluginFactory<DiscoveryPluginClass>>(); \
37
}
38
39
TF_DECLARE_WEAK_AND_REF_PTRS
(
SdrDiscoveryPluginContext
);
40
41
/// A context for discovery. Discovery plugins can use this to get
42
/// a limited set of non-local information without direct coupling
43
/// between plugins.
44
class
SdrDiscoveryPluginContext
:
public
NdrDiscoveryPluginContext
{
45
public
:
46
SDR_API
47
virtual
~SdrDiscoveryPluginContext
() =
default
;
48
};
49
50
TF_DECLARE_WEAK_AND_REF_PTRS
(
SdrDiscoveryPlugin
);
51
52
class
SdrDiscoveryPlugin
:
public
NdrDiscoveryPlugin
{
53
public
:
54
using
Context
=
SdrDiscoveryPluginContext
;
55
56
SDR_API
57
SdrDiscoveryPlugin
();
58
SDR_API
59
virtual
~SdrDiscoveryPlugin
();
60
61
/// Finds and returns all nodes that the implementing plugin should be
62
/// aware of.
63
/// \deprecated
64
/// Deprecated in favor of
65
/// DiscoverShaderNodes(const SdrDiscoveryPluginContext&).
66
SDR_API
67
NdrNodeDiscoveryResultVec
DiscoverNodes
(
68
const
NdrDiscoveryPluginContext
&) override final;
69
70
/// Finds and returns all nodes that the implementing plugin should be
71
/// aware of.
72
SDR_API
73
virtual
SdrShaderNodeDiscoveryResultVec
DiscoverShaderNodes
(
74
const
Context
&) = 0;
75
};
76
77
78
/// \cond
79
/// Factory classes should be hidden from the documentation.
80
using SdrDiscoveryPluginFactoryBase = NdrDiscoveryPluginFactoryBase;
81
82
template <
class
T
>
83
using SdrDiscoveryPluginFactory = NdrDiscoveryPluginFactory<
T
>;
84
85
/// \endcond
86
87
PXR_NAMESPACE_CLOSE_SCOPE
88
89
#endif // PXR_USD_SDR_DISCOVERY_PLUGIN_H
SdrShaderNodeDiscoveryResultVec
std::vector< SdrShaderNodeDiscoveryResult > SdrShaderNodeDiscoveryResultVec
Definition:
shaderNodeDiscoveryResult.h:188
SdrDiscoveryPlugin::DiscoverNodes
SDR_API NdrNodeDiscoveryResultVec DiscoverNodes(const NdrDiscoveryPluginContext &) overridefinal
declarePtrs.h
class
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
Definition:
thread.h:632
SdrDiscoveryPlugin::SdrDiscoveryPlugin
SDR_API SdrDiscoveryPlugin()
SdrDiscoveryPlugin
Definition:
discoveryPlugin.h:52
NdrNodeDiscoveryResultVec
std::vector< NdrNodeDiscoveryResult > NdrNodeDiscoveryResultVec
Definition:
nodeDiscoveryResult.h:135
SdrDiscoveryPlugin::DiscoverShaderNodes
virtual SDR_API SdrShaderNodeDiscoveryResultVec DiscoverShaderNodes(const Context &)=0
shaderNodeDiscoveryResult.h
SdrDiscoveryPluginContext
Definition:
discoveryPlugin.h:44
declare.h
NdrDiscoveryPlugin
Definition:
discoveryPlugin.h:138
pxr.h
NdrDiscoveryPluginContext
Definition:
discoveryPlugin.h:48
TF_DECLARE_WEAK_AND_REF_PTRS
TF_DECLARE_WEAK_AND_REF_PTRS(NdrDiscoveryPluginContext)
discoveryPlugin.h
OBJ_MatchTransform::T
SdrDiscoveryPluginContext::~SdrDiscoveryPluginContext
virtual SDR_API ~SdrDiscoveryPluginContext()=default
PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition:
path.h:1425
api.h
SdrDiscoveryPlugin::~SdrDiscoveryPlugin
virtual SDR_API ~SdrDiscoveryPlugin()
PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition:
pxr.h:74
SDR_API
#define SDR_API
Definition:
api.h:23
weakBase.h
type.h
pxr
usd
sdr
discoveryPlugin.h
Generated on Fri Sep 5 2025 02:37:46 for HDK by
1.8.6