我遇到了将here-api中的mapView绘制到glSurfaceView中的问题(它应该是一个glSurfaceView,因为一些外部设备重新使用它以确保良好的性能)。
地图完美地绘制了一个普通的SurfaceView。
我执行以下步骤在GLSurfaceView中创建地图视图:
public class MapView extends GLSurfaceView
setRenderer(...)
Renderer renderer = new MapOffScreenRenderer(getContext()); renderer.setMap(map); //mapView, not null updateRendererSize(); //update the render size to the screen size renderer.start(getHolder(), surfaceUpdatedListener); // HERE COMES THE CRASH
如果我试图告诉他将地图绘制到glSurfaceView中,似乎MapOffscreenRenderer崩溃了。 崩溃是一般错误:" 12291 EGL_BAD_ALLOC在渲染过程中"。
如果我尝试调用renderer.start()func(没有holder param),那么一切都很好(唯一不好的是没有绘制地图)。
GlSurceView初始化本身很好,因为我能够将自己的几何图形绘制到其中。
非常感谢你的帮助。
答案 0 :(得分:0)
MapOffScreenRenderer在内部使用PBuffer支持的表面及其自己的渲染线程和EGL上下文。它不适合用于推入另一个GLSurfaceView表面。如果你真的想这样做,那么可以创建一个独立的OpenGL表面并在GLSurfaceView和MapOffScreenRenderer之间共享它。
您尝试使用此类设计完成了哪些用例?