Java 结合画布和OpenGL ES渲染器?
我有一个应用程序,它使用一个带有扩展名SurfaceView的类来绘制画布,但我正在考虑转移到openGL。我注意到,如果我只是将SurfaceView扩展更改为GLSurfaceView,应用程序仍然运行相同的功能。我还能够使用openGL ES在另一个应用程序中开始基本绘图 我在下一步中为GLSurfaceView中的渲染器实例化了另一个类,并指示渲染器绘制三角形。这一切编译和运行都很好,但它的运行与原始应用程序完全相同,没有渲染三角形,但画布的其余部分绘制正确 我想不出它为什么不渲染,或者为什么不渲染。或者可能是渲染,但它只是被画布覆盖 我知道尝试使用这两种方法似乎有点奇怪,因为我的应用程序是实时的,我宁愿按照自己的速度将渲染切换到GL,这样我就不用花一个月的时间来完成下一次更新Java 结合画布和OpenGL ES渲染器?,java,android,opengl-es,canvas,rendering,Java,Android,Opengl Es,Canvas,Rendering,我有一个应用程序,它使用一个带有扩展名SurfaceView的类来绘制画布,但我正在考虑转移到openGL。我注意到,如果我只是将SurfaceView扩展更改为GLSurfaceView,应用程序仍然运行相同的功能。我还能够使用openGL ES在另一个应用程序中开始基本绘图 我在下一步中为GLSurfaceView中的渲染器实例化了另一个类,并指示渲染器绘制三角形。这一切编译和运行都很好,但它的运行与原始应用程序完全相同,没有渲染三角形,但画布的其余部分绘制正确 我想不出它为什么不渲染,或者
有人试过这么做吗?在画布上运行Gl渲染器 不能同时使用OpenGL和画布在单个SurfaceView上进行渲染。但是,您可以在SurfaceView顶部放置另一个视图以达到所需效果。尝试以下操作:
addContentView(SurfaceView);
addContentView(GLSurfaceView);
或者使用这两个视图创建一个相对布局。这里是我在OpenGL视图上添加画布时的示例代码,感谢@Audrius Butkevicius
mGLView = new MyOpenGLSurfaceView;
// SET OpenGL View
setContentView(myOpenGLView);
mCanvasOverlayView = new View(context)
mOverlayViewParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
// ADD Canvas view overlay
addContentView(mCanvasOverlayView, mOverlayViewParams );
好的,这听起来是个不错的开始。问题,这个概念如何与setContentView()方法一起工作?