这段代码曾用于我的Nexus 7 2012 KitKat:
int[] maxSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
Run Code Online (Sandbox Code Playgroud)
在KitKat中我可以正确获取最大像素值,但在升级到工厂映像Lollipop后,这段代码会导致问题,因为它只返回0.当达到此方法时,logcat显示此输出:
E/libEGL? call to OpenGL ES API with no current context (logged once per thread)
Run Code Online (Sandbox Code Playgroud)
我已经android:hardwareAccelerated="true"在我的Manifest.xml中了.是否有任何我不知道的API更改,导致上述代码无法使用?请指教.
我想在我的应用程序的后台运行Android OpenGL-ES表面,为应用程序提供动态图形资源(位图等).OpenGl GLSurfaceView不是我的应用程序的可见屏幕; 它仅用作渲染工厂来制造供主要活动使用的图形.
有没有人知道如何在不是活动视图的情况下运行Android GLSurfaceView?Google Android文档很清楚,当GLSurfaceView失去其作为主视图的状态时,表面将与其所有资源一起被销毁.
有什么方法可以保持GLSurfaceView及其相关的GLSurfaceView.Renderer在它(而且从不是)应用程序的主视图时正常运行?
我想使用OpenGL ES 2和着色器进行一些背景图像处理,但是没有绘制到表面(即仅在屏幕外渲染到帧缓冲区).虽然我已经在iOS上这样做了,但我在Android上正在努力解决这个问题.
我想我已经接近创建一个有效的OpenGL上下文了,但是没有找到如何在没有SurfaceView的情况下做到这一点.