diff --git a/src/main/kotlin/solve/rendering/engine/core/renderers/FramesRenderer.kt b/src/main/kotlin/solve/rendering/engine/core/renderers/FramesRenderer.kt index f7632071..f98658d0 100644 --- a/src/main/kotlin/solve/rendering/engine/core/renderers/FramesRenderer.kt +++ b/src/main/kotlin/solve/rendering/engine/core/renderers/FramesRenderer.kt @@ -26,7 +26,7 @@ import solve.rendering.engine.utils.toIntVector import solve.scene.controller.SceneController import solve.scene.model.VisualizationFrame import solve.utils.ceilToInt -import java.util.Collections.synchronizedList +import java.util.concurrent.CopyOnWriteArrayList import kotlin.math.abs import kotlin.math.min @@ -58,7 +58,7 @@ class FramesRenderer( private var cameraLastGridCellPosition = getScreenCenterGridCellPosition() - private val bufferFramesToUpload = synchronizedList(mutableListOf()) + private val bufferFramesToUpload = CopyOnWriteArrayList(mutableListOf()) private val framesLoadingCoroutineScope = CoroutineScope(Dispatchers.Default) private var needToReinitializeBuffers = false @@ -166,9 +166,7 @@ class FramesRenderer( private fun uploadLoadedFramesToBuffers() { bufferFramesToUpload.forEach { frame -> - synchronized(bufferFramesToUpload) { - bufferFramesToUpload.remove(frame) - } + bufferFramesToUpload.remove(frame) bufferFramesArrayTexture?.uploadTexture(frame.textureData, frame.bufferIndex) Texture2D.freeData(frame.textureData) } @@ -293,9 +291,7 @@ class FramesRenderer( return@launch } - synchronized(bufferFramesToUpload) { - bufferFramesToUpload.add(LoadedBufferFrameData(textureData, index)) - } + bufferFramesToUpload.add(LoadedBufferFrameData(textureData, index)) } } diff --git a/src/main/kotlin/solve/scene/SceneFacade.kt b/src/main/kotlin/solve/scene/SceneFacade.kt index 6eedd2ab..46a0173c 100644 --- a/src/main/kotlin/solve/scene/SceneFacade.kt +++ b/src/main/kotlin/solve/scene/SceneFacade.kt @@ -25,7 +25,7 @@ import tornadofx.find * Transforms common application data models into scene data and applies it. */ object SceneFacade { - val lastVisualizationKeepSettingsProperty = SimpleObjectProperty(false) + val lastVisualizationKeepSettingsProperty = SimpleObjectProperty(true) private var lastVisualizationKeepSettings: Boolean get() = lastVisualizationKeepSettingsProperty.value private set(value) {