У меня есть класс GameScreen
, который отображает мою игру.
но прежде чем начинать визуализировать игру, ей необходимо прочитать файлы и инициализировать, что требует много времени.
Поэтому мне нужно показать/отобразить еще один класс Screen
под названием LoadingScreen
, чтобы потратить некоторое время и одновременно прочитать мои файлы и выполнить инициализацию процесса для моего GameScreen
, а после инициализации завершено изменение экрана, вызвав setScreen(gameScreen)
.
Мне нужно использовать поток для выполнения этой параллельной работы, теперь проблема в том, что если я использую поток для чтения файлов и инициализации; При переключении на GameScreen
openGl дает мне эту ошибку:
javax.media.opengl.GLException: Error: no OpenGL buffer object appears to be bound to target 0x8892
at com.sun.opengl.impl.GLBufferSizeTracker.setBufferSize(GLBufferSizeTracker.java:118)
Мне известно, что оба потока не используют графические ресурсы одновременно.
Я обнаружил, что проблема возникает с помощью Mesh
es. Инициализация Mesh в потоке инициализации и рендеринг в основном потоке вызывает эту ошибку. Но я не знаю, как его решить.
Есть ли у вас идеи решить эту проблему?