MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / getDebugContent

Method getDebugContent

Source/Falcor/Scene/SceneBuilderDump.cpp:82–299  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80} // namespace
81
82std::map<std::string, std::string> SceneBuilderDump::getDebugContent(const SceneBuilder& sceneBuilder)
83{
84 struct FullMeshDesc
85 {
86 MeshID id;
87 const SceneBuilder::MeshSpec* meshSpec;
88 const CachedMesh* cachedMesh{nullptr};
89 const CachedCurve* cachedCurve{nullptr}; // when using polytube hair
90 std::string deduplicatedName;
91 };
92
93 struct FullCurveDesc
94 {
95 CurveID id;
96 const SceneBuilder::CurveSpec* curveSpec;
97 const CachedCurve* cachedCurve{nullptr};
98 std::string deduplicatedName;
99 };
100
101 std::vector<FullMeshDesc> sortedMeshes(sceneBuilder.mMeshes.size());
102 std::vector<FullCurveDesc> sortedCurves(sceneBuilder.mCurves.size());
103
104 for (size_t i = 0; i < sceneBuilder.mMeshes.size(); ++i)
105 {
106 sortedMeshes[i].id = MeshID{i};
107 sortedMeshes[i].meshSpec = &sceneBuilder.mMeshes[i];
108 }
109
110 for (size_t i = 0; i < sceneBuilder.mCurves.size(); ++i)
111 {
112 sortedCurves[i].id = CurveID{i};
113 sortedCurves[i].curveSpec = &sceneBuilder.mCurves[i];
114 }
115
116 for (size_t i = 0; i < sceneBuilder.mSceneData.cachedCurves.size(); ++i)
117 {
118 const CachedCurve& cached = sceneBuilder.mSceneData.cachedCurves[i];
119 if (cached.tessellationMode == CurveTessellationMode::LinearSweptSphere)
120 {
121 sortedCurves[cached.geometryID.get()].cachedCurve = &sceneBuilder.mSceneData.cachedCurves[i];
122 }
123 else
124 {
125 sortedMeshes[cached.geometryID.get()].cachedCurve = &sceneBuilder.mSceneData.cachedCurves[i];
126 }
127 }
128
129 for (size_t i = 0; i < sceneBuilder.mSceneData.cachedMeshes.size(); ++i)
130 {
131 const CachedMesh& cached = sceneBuilder.mSceneData.cachedMeshes[i];
132 sortedMeshes[cached.meshID.get()].cachedCurve = &sceneBuilder.mSceneData.cachedCurves[i];
133 }
134
135 std::sort(
136 sortedMeshes.begin(),
137 sortedMeshes.end(),
138 [](const FullMeshDesc& lhs, const FullMeshDesc& rhs) { return lhs.meshSpec->name < rhs.meshSpec->name; }
139 );

Callers

nothing calls this directly

Calls 14

hash64Function · 0.85
printMatrixFunction · 0.85
eraseMethod · 0.80
getMaterialMethod · 0.80
isSkinnedMethod · 0.80
InvalidEnum · 0.50
sizeMethod · 0.45
getMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
getNameMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected