我有一个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 引起的。在初始化线程中初始化网格并在主线程中渲染会导致此错误。但我不知道如何解决它。
你有什么想法来解决这个问题吗?