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

Method Scene

Source/Falcor/Scene/Scene.cpp:163–270  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

161 }
162
163 Scene::Scene(ref<Device> pDevice, SceneData&& sceneData)
164 : mpDevice(pDevice)
165 {
166 // Copy/move scene data to member variables.
167 mImportPaths = sceneData.importPaths;
168 mImportDicts = sceneData.importDicts;
169 mRenderSettings = sceneData.renderSettings;
170 mCameras = std::move(sceneData.cameras);
171 mSelectedCamera = sceneData.selectedCamera;
172 mCameraSpeed = sceneData.cameraSpeed;
173 mLights = std::move(sceneData.lights);
174
175 mpMaterials = std::move(sceneData.pMaterials);
176 mGridVolumes = std::move(sceneData.gridVolumes);
177 mGrids = std::move(sceneData.grids);
178 mpEnvMap = sceneData.pEnvMap;
179 mSceneGraph = std::move(sceneData.sceneGraph);
180 mMetadata = std::move(sceneData.metadata);
181
182 // Merge all geometry instance lists into one.
183 mGeometryInstanceData.reserve(sceneData.meshInstanceData.size() + sceneData.curveInstanceData.size() + sceneData.sdfGridInstances.size());
184 mGeometryInstanceData.insert(std::end(mGeometryInstanceData), std::begin(sceneData.meshInstanceData), std::end(sceneData.meshInstanceData));
185 mGeometryInstanceData.insert(std::end(mGeometryInstanceData), std::begin(sceneData.curveInstanceData), std::end(sceneData.curveInstanceData));
186 mGeometryInstanceData.insert(std::end(mGeometryInstanceData), std::begin(sceneData.sdfGridInstances), std::end(sceneData.sdfGridInstances));
187
188 mMeshDesc = std::move(sceneData.meshDesc);
189 mMeshNames = std::move(sceneData.meshNames);
190 mMeshBBs = std::move(sceneData.meshBBs);
191 mMeshIdToInstanceIds = std::move(sceneData.meshIdToInstanceIds);
192 mMeshGroups = std::move(sceneData.meshGroups);
193
194 mUseCompressedHitInfo = sceneData.useCompressedHitInfo;
195 mHas16BitIndices = sceneData.has16BitIndices;
196 mHas32BitIndices = sceneData.has32BitIndices;
197
198 mCurveDesc = std::move(sceneData.curveDesc);
199 mCurveBBs = std::move(sceneData.curveBBs);
200 mCurveIndexData = std::move(sceneData.curveIndexData);
201 mCurveStaticData = std::move(sceneData.curveStaticData);
202
203 mSDFGrids = std::move(sceneData.sdfGrids);
204 mSDFGridDesc = std::move(sceneData.sdfGridDesc);
205 mSDFGridMaxLODCount = std::move(sceneData.sdfGridMaxLODCount);
206
207 mCustomPrimitiveDesc = std::move(sceneData.customPrimitiveDesc);
208 mCustomPrimitiveAABBs = std::move(sceneData.customPrimitiveAABBs);
209
210 mMeshIndexData = std::move(sceneData.meshIndexData);
211 mMeshStaticData = std::move(sceneData.meshStaticData);
212
213 mMeshIndexData.setBufferCountDefinePrefix("SCENE_INDEX");
214 mMeshIndexData.createGpuBuffers(mpDevice, ResourceBindFlags::Index | ResourceBindFlags::ShaderResource);
215 mMeshStaticData.setBufferCountDefinePrefix("SCENE_VERTEX");
216 mMeshStaticData.createGpuBuffers(mpDevice, ResourceBindFlags::ShaderResource | ResourceBindFlags::UnorderedAccess | ResourceBindFlags::Vertex);
217
218 // Setup additional resources.
219 mFrontClockwiseRS[RasterizerState::CullMode::None] = RasterizerState::create(RasterizerState::Desc().setFrontCounterCW(false).setCullMode(RasterizerState::CullMode::None));
220 mFrontClockwiseRS[RasterizerState::CullMode::Back] = RasterizerState::create(RasterizerState::Desc().setFrontCounterCW(false).setCullMode(RasterizerState::CullMode::Back));

Callers

nothing calls this directly

Calls 14

endFunction · 0.85
beginFunction · 0.85
createGpuBuffersMethod · 0.80
setCullModeMethod · 0.80
isDynamicMethod · 0.80
isAnimatedMethod · 0.80
createFunction · 0.50
DescClass · 0.50
reserveMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected