1
我现在正在使用Scala和Akka在使用LWJGL的应用程序中使用。众所周知,您不能在应用程序主线程之外发布OpenGL调用。如果我想用任何角色进行渲染(例如,单个主要角色,例如,耗尽渲染命令队列,或者有多个角色可能随时发出任意OpenGL命令),则会出现问题,因为我没有看到一种在特定线程上运行任何actor的方法。通过将特定角色固定到线程,或通过指示角色在某个特定线程上运行。 (一个Objective-C的performSelectorOnMainThread)Pin/Run Akka演员到主线程
有没有办法将一个“渲染”actor绑定到主线程,或者在将来的某个点上有任何actor在主线程上运行,能够发出OpenGL调用? (或者甚至是一些其他的解决方案,我打开思路)
阿卡可能不这是一个很好的用例。虽然它确实提供了您要求的内容,但它仅用于单元测试。 http://doc.akka.io/docs/akka/2.2.1/scala/testing.html#scala-callingthreaddispatcher – Ryan
您可以在主线程中创建一个消息循环,并简单地使用来自actors的消息。它可以坐在某种'Runnable'的队列上。 –