Skip to content

Commit a71f76e

Browse files
unhyperbolicpixar-oss
authored andcommitted
HdRenderDelegateInfo: moving it into own file adding helper to HdLegacyRenderControl so that clients do not need to construct HdRenderDelegateInfo itself.
(Internal change: 2383553) (Internal change: 2383598)
1 parent f1a90fe commit a71f76e

File tree

7 files changed

+74
-30
lines changed

7 files changed

+74
-30
lines changed

pxr/imaging/hd/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ pxr_library(hd
103103
legacyDisplayStyleSchema
104104
legacyGeomSubsetSceneIndex
105105
legacyPrimSceneIndex
106+
legacyRenderControlInterface
106107
legacyTaskFactory
107108
legacyTaskSchema
108109
lensDistortionSchema
@@ -222,7 +223,7 @@ pxr_library(hd
222223
driver.h
223224
invalidatableContainerDataSource.h
224225
materialNetworkInterface.h
225-
legacyRenderControlInterface.h
226+
renderDelegateInfo.h
226227
rendererCreateArgs.h
227228
schemaTypeDefs.h
228229
vectorSchemaTypeDefs.h
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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+
#include "pxr/imaging/hd/legacyRenderControlInterface.h"
9+
10+
#include "pxr/imaging/hd/renderDelegateInfo.h"
11+
12+
PXR_NAMESPACE_OPEN_SCOPE
13+
14+
HdRenderDelegateInfo
15+
HdLegacyRenderControlInterface::GetRenderDelegateInfo() const
16+
{
17+
HdRenderDelegateInfo info;
18+
19+
info.materialBindingPurpose = GetMaterialBindingPurpose();
20+
info.materialRenderContexts = GetMaterialRenderContexts();
21+
info.renderSettingsNamespaces = GetRenderSettingsNamespaces();
22+
info.isPrimvarFilteringNeeded = IsPrimvarFilteringNeeded();
23+
info.shaderSourceTypes = GetShaderSourceTypes();
24+
info.isCoordSysSupported = IsCoordSysSupported();
25+
26+
return info;
27+
}
28+
29+
PXR_NAMESPACE_CLOSE_SCOPE

pxr/imaging/hd/legacyRenderControlInterface.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99

1010
#include "pxr/pxr.h"
1111

12+
#include "pxr/imaging/hd/api.h"
13+
1214
#include "pxr/imaging/hd/aov.h"
15+
#include "pxr/imaging/hd/command.h"
1316
#include "pxr/usd/sdf/path.h"
1417

1518
PXR_NAMESPACE_OPEN_SCOPE
1619

20+
struct HdRenderDelegateInfo;
1721
class HdRenderBuffer;
1822
using HdRenderSettingDescriptorList =
1923
std::vector<struct HdRenderSettingDescriptor>;
@@ -106,11 +110,12 @@ class HdLegacyRenderControlInterface
106110
virtual TfTokenVector GetRenderSettingsNamespaces() const = 0;
107111
virtual bool IsPrimvarFilteringNeeded() const = 0;
108112
virtual TfTokenVector GetShaderSourceTypes() const = 0;
109-
110113
/// This is for UsdImagingDelegate::_coordSysEnabled that has a
111114
/// surprising performance impact.
112115
virtual bool IsCoordSysSupported() const = 0;
113116

117+
HD_API
118+
HdRenderDelegateInfo GetRenderDelegateInfo() const;
114119
/// @}
115120

116121
/// \name Misc
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
#ifndef PXR_IMAGING_HD_RENDER_DELEGATE_INFO_H
8+
#define PXR_IMAGING_HD_RENDER_DELEGATE_INFO_H
9+
10+
#include "pxr/base/tf/token.h"
11+
12+
PXR_NAMESPACE_OPEN_SCOPE
13+
14+
class HdRenderDelegate;
15+
16+
struct HdRenderDelegateInfo
17+
{
18+
TfToken materialBindingPurpose;
19+
TfTokenVector materialRenderContexts;
20+
TfTokenVector renderSettingsNamespaces;
21+
bool isPrimvarFilteringNeeded;
22+
TfTokenVector shaderSourceTypes;
23+
bool isCoordSysSupported;
24+
};
25+
26+
PXR_NAMESPACE_CLOSE_SCOPE
27+
#endif

pxr/imaging/hd/renderIndexAdapterSceneIndex.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "pxr/imaging/hd/renderIndexAdapterSceneIndex.h"
99

1010
#include "pxr/imaging/hd/renderDelegate.h"
11+
#include "pxr/imaging/hd/renderDelegateInfo.h"
1112
#include "pxr/imaging/hd/renderIndex.h"
1213

1314
PXR_NAMESPACE_OPEN_SCOPE
@@ -43,7 +44,7 @@ class _NullRenderDelegateForAdapter : public HdRenderDelegate
4344
{
4445
public:
4546
_NullRenderDelegateForAdapter(
46-
const HdRenderIndexAdapterSceneIndex::RenderDelegateInfo &info)
47+
const HdRenderDelegateInfo &info)
4748
: _info(info)
4849
{
4950
}
@@ -119,13 +120,13 @@ class _NullRenderDelegateForAdapter : public HdRenderDelegate
119120
void CommitResources(HdChangeTracker*) override {}
120121

121122
private:
122-
const HdRenderIndexAdapterSceneIndex::RenderDelegateInfo _info;
123+
const HdRenderDelegateInfo _info;
123124
};
124125

125126
}
126127

127128
HdRenderIndexAdapterSceneIndex::HdRenderIndexAdapterSceneIndex(
128-
const RenderDelegateInfo &info)
129+
const HdRenderDelegateInfo &info)
129130
: _renderDelegate(std::make_unique<_NullRenderDelegateForAdapter>(info))
130131
, _renderIndex(HdRenderIndex::New(_renderDelegate.get()))
131132
, _observer(this)

pxr/imaging/hd/renderIndexAdapterSceneIndex.h

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ PXR_NAMESPACE_OPEN_SCOPE
1515

1616
class HdRenderDelegate;
1717
class HdRenderIndex;
18+
struct HdRenderDelegateInfo;
1819
TF_DECLARE_REF_PTRS(HdRenderIndexAdapterSceneIndex);
1920

2021
/// \class HdRenderIndexAdapterSceneIndex
@@ -26,18 +27,8 @@ TF_DECLARE_REF_PTRS(HdRenderIndexAdapterSceneIndex);
2627
class HdRenderIndexAdapterSceneIndex : public HdSceneIndexBase
2728
{
2829
public:
29-
struct RenderDelegateInfo
30-
{
31-
TfToken materialBindingPurpose;
32-
TfTokenVector materialRenderContexts;
33-
TfTokenVector renderSettingsNamespaces;
34-
bool isPrimvarFilteringNeeded;
35-
TfTokenVector shaderSourceTypes;
36-
bool isCoordSysSupported;
37-
};
38-
3930
static HdRenderIndexAdapterSceneIndexRefPtr New(
40-
const RenderDelegateInfo &info)
31+
const HdRenderDelegateInfo &info)
4132
{
4233
return TfCreateRefPtr(new HdRenderIndexAdapterSceneIndex(info));
4334
}
@@ -55,7 +46,7 @@ class HdRenderIndexAdapterSceneIndex : public HdSceneIndexBase
5546

5647
private:
5748
HD_API
58-
HdRenderIndexAdapterSceneIndex(const RenderDelegateInfo &info);
49+
HdRenderIndexAdapterSceneIndex(const HdRenderDelegateInfo &info);
5950

6051
std::unique_ptr<HdRenderDelegate> const _renderDelegate;
6152
std::unique_ptr<HdRenderIndex> const _renderIndex;

pxr/usdImaging/usdImagingGL/engine.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "pxr/imaging/hd/noticeBatchingSceneIndex.h"
2727
#include "pxr/imaging/hd/prefixingSceneIndex.h"
2828
#include "pxr/imaging/hd/renderBuffer.h"
29+
#include "pxr/imaging/hd/renderDelegateInfo.h"
2930
#include "pxr/imaging/hd/renderIndexAdapterSceneIndex.h"
3031
#include "pxr/imaging/hd/renderer.h"
3132
#include "pxr/imaging/hd/rendererCreateArgsSchema.h"
@@ -1723,22 +1724,11 @@ UsdImagingGLEngine::_CreateSceneIndicesAndRenderer(HdRendererPluginHandle const
17231724
} else {
17241725
TRACE_SCOPE("UsdImaging scene delegate");
17251726

1726-
HdRenderIndexAdapterSceneIndex::RenderDelegateInfo info;
1727+
HdRenderDelegateInfo info;
17271728

17281729
if (HdLegacyRenderControlInterface * const renderControl =
17291730
_renderer->GetLegacyRenderControl()) {
1730-
info.materialBindingPurpose =
1731-
renderControl->GetMaterialBindingPurpose();
1732-
info.materialRenderContexts =
1733-
renderControl->GetMaterialRenderContexts();
1734-
info.renderSettingsNamespaces =
1735-
renderControl->GetRenderSettingsNamespaces();
1736-
info.isPrimvarFilteringNeeded =
1737-
renderControl->IsPrimvarFilteringNeeded();
1738-
info.shaderSourceTypes =
1739-
renderControl->GetShaderSourceTypes();
1740-
info.isCoordSysSupported =
1741-
renderControl->IsCoordSysSupported();
1731+
info = renderControl->GetRenderDelegateInfo();
17421732
}
17431733

17441734
auto const adapter =

0 commit comments

Comments
 (0)