我遇到了一个OpenGL集成的问题。需求是在地图(由OpenGL引擎呈现)之上显示一个复杂的UI组件。当地图移动时,这个UI组件应该定位到特定的点。
一个直接的解决方案是通过OpenGL引擎呈现复杂的UI组件。但是,布局/渲染和事件处理需要付出很大的努力。
我提出的另一种方法是在OenpGL地图上放置一个覆盖UI组件,并在地图平移时使其移动。如您所知,对于GLSurfaceView,呈现发生在一个单独的线程中,而UI组件在主UI线程中呈现。我可以让它在功能上发挥作用。但是,,它总是在UI组件和映射之间有一个小小的转变,因为它们实际上是在两个线程中运行。
你有什么办法克服这个问题吗?
我想的两个方向是:
发布于 2014-05-09 23:18:26
1,可能不是。
至于2,您不能触摸ui线程之外的任何ui组件.
您的问题非常类似于Vsync-鼠标滞后问题。就我有限的知识而言,他们解决了这个问题(嗯,不是完全解决了,而是.)通过保留鼠标的最后N个位置,并通过外推预测N+1的第四个位置。您可以实现这样的东西。
我也建议你看看多线程渲染的东西。从字面上讲,这就是你想要做的。
https://stackoverflow.com/questions/23575078
复制相似问题