Graphics: Clear instances in Clear method
Former-commit-id: 66b0db92e353312b6cf3d68526417b5fb77c0bef [formerly 897579017072102b658dc637b91bc52d80a061cd] [formerly 7685fb2c3c18c030ce5a3ac6a29129bd39de88c8 [formerly 7ba2bc156951247f5f7ba7ebfb3d65bced1731e7]] Former-commit-id: a1eb128bba2d28589a7988f6f98a860839c07cfe [formerly 1fed3d7b8cbc84c528ce27db61123ce8fc562e97] Former-commit-id: cc56728a6e0a6b84c4969850287109c8e92281cd
This commit is contained in:
@@ -278,6 +278,36 @@ namespace Nz
|
||||
Layer& layer = it->second;
|
||||
if (layer.clearCount++ >= 100)
|
||||
it = layers.erase(it);
|
||||
else
|
||||
{
|
||||
for (auto& pipelinePair : layer.opaqueModels)
|
||||
{
|
||||
const MaterialPipeline* pipeline = pipelinePair.first;
|
||||
auto& pipelineEntry = pipelinePair.second;
|
||||
|
||||
if (pipelineEntry.maxInstanceCount > 0)
|
||||
{
|
||||
for (auto& materialPair : pipelineEntry.materialMap)
|
||||
{
|
||||
auto& matEntry = materialPair.second;
|
||||
|
||||
if (matEntry.enabled)
|
||||
{
|
||||
MeshInstanceContainer& meshInstances = matEntry.meshMap;
|
||||
|
||||
for (auto& meshIt : meshInstances)
|
||||
{
|
||||
auto& meshEntry = meshIt.second;
|
||||
|
||||
meshEntry.instances.clear();
|
||||
}
|
||||
matEntry.enabled = false;
|
||||
}
|
||||
}
|
||||
pipelineEntry.maxInstanceCount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user