nebula
nebula copied to clipboard
Memleak in visibilitycontext or modelcontext
Can be reproduced with ex.:
static int frameIndex = 0;
static Graphics::GraphicsEntityId gids[10000];
if (frameIndex % 4 == 0)
{
for (int i = 0; i < 10000; i++)
{
gids[i] = Graphics::CreateEntity();
Graphics::RegisterEntity<Models::ModelContext, Visibility::ObservableContext>(gids[i]);
Models::ModelContext::Setup(gids[i], "mdl:system/placeholder.n3", "ExampleScene", [i]()
{
Visibility::ObservableContext::Setup(gids[i], Visibility::VisibilityEntityType::Model);
Models::ModelContext::SetTransform(gids[i], Math::translation(Math::vec3(5, 0, 0)));
});
}
}
else if (frameIndex % 2 == 0)
{
for (int i = 0; i < 10000; i++)
{
if (Models::ModelContext::IsEntityRegistered(gids[i]))
{
Visibility::ObservableContext::DeregisterEntity(gids[i]);
Models::ModelContext::DeregisterEntity(gids[i]);
Graphics::DestroyEntity(gids[i]);
}
}
}
frameIndex++;