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

Method getMeshVerticesAndIndices

Source/Falcor/Scene/Scene.cpp:4058–4079  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4056 }
4057
4058 void Scene::getMeshVerticesAndIndices(MeshID meshID, const std::map<std::string, ref<Buffer>>& buffers)
4059 {
4060 if (!mpLoadMeshPass)
4061 mpLoadMeshPass = ComputePass::create(mpDevice, kMeshIOShaderFilename, "getMeshVerticesAndIndices", getSceneDefines());
4062 const auto& meshDesc = getMesh(meshID);
4063
4064 // Bind variables.
4065 auto var = mpLoadMeshPass->getRootVar()["meshLoader"];
4066 var["vertexCount"] = meshDesc.vertexCount;
4067 var["vbOffset"] = meshDesc.vbOffset;
4068 var["triangleCount"] = meshDesc.getTriangleCount();
4069 var["ibOffset"] = meshDesc.ibOffset;
4070 var["use16BitIndices"] = meshDesc.use16BitIndices();
4071 bindShaderData(var["scene"]);
4072 for (const auto& name : kMeshLoaderRequiredBufferNames)
4073 {
4074 FALCOR_CHECK(buffers.find(name) != buffers.end(), "Mesh data buffer '{}' is missing.", name);
4075 var[name] = buffers.at(name);
4076 }
4077
4078 mpLoadMeshPass->execute(mpDevice->getRenderContext(), std::max(meshDesc.vertexCount, meshDesc.getTriangleCount()), 1, 1);
4079 }
4080
4081 void Scene::setMeshVertices(MeshID meshID, const std::map<std::string, ref<Buffer>>& buffers)
4082 {

Callers 1

Calls 7

getRootVarMethod · 0.80
getTriangleCountMethod · 0.80
bindShaderDataFunction · 0.70
createFunction · 0.50
maxFunction · 0.50
endMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected