entities renderer: add on rendering thread

That fixes/workarounds deadlocks
This commit is contained in:
Moritz Zwerger 2023-10-29 17:23:47 +01:00
parent c13f2f3445
commit 28abad23c3
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -38,6 +38,7 @@ class EntityRendererManager(val renderer: EntitiesRenderer) : Iterable<EntityRen
fun init() { fun init() {
renderer.connection.world.entities::entities.observeSet(this) { renderer.connection.world.entities::entities.observeSet(this) {
renderer.queue.add {
for (entity in it.adds) { for (entity in it.adds) {
this += entity this += entity
} }
@ -46,6 +47,7 @@ class EntityRendererManager(val renderer: EntitiesRenderer) : Iterable<EntityRen
} }
} }
} }
}
private fun Entity.createRenderer() = when { private fun Entity.createRenderer() = when {
this is EntityModelFactory<*> -> create(this@EntityRendererManager.renderer) this is EntityModelFactory<*> -> create(this@EntityRendererManager.renderer)