我有安卓游戏,使用libgdx框架在GooglePlay商店中有报告:java.lang.RuntimeException:eglSwapBuffersfailed:EGL_SUCCESSatandroid.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1085)atandroid.opengl.GLSurfaceView$EglHelper.swap(GLSurfaceView.java:1043)atandroid.opengl.GLSurfaceView$GLThread.guardedRu
我有一个Android应用程序可以将视频解码为yuv420p格式,然后使用OpenGLES渲染视频帧。我使用glTexSubImage2D()将y/u/v缓冲区上传到GPU,然后使用着色器进行YUV2RGB转换。所有EGL/OpenGL设置/渲染代码都是native代码。现在我并不是说我的代码没有问题,但考虑到相同的代码在iOS(iPad/iPhone)、Nexus7、KindleHD8.9、SamsungNote1和其他一些廉价的中国平板电脑上运行良好(A31/RockChip3188)运行Android4.0/4.1/4.2。我会说我的代码不太可能是错误的。在这些设备上,glTex
我在使用NDK和egl命令的Android平板电脑上遇到渲染时间非常短的问题。我对eglSwapBuffers进行了定时调用,并且花费的时间不定,经常超过设备帧速率。我知道它与刷新同步,但那是大约60FPS,这里的时间远低于此。我在交换调用之间发出的唯一命令是glClear,所以我知道不是我正在绘制的任何东西导致了问题。即使只是通过清除帧率下降到30FPS(虽然不稳定)。在同一台设备上,一个简单的JavaGL程序很容易以60FPS的速度呈现,因此我知道这根本不是硬件问题。我查看了用于设置GL上下文的AndroidJava代码,看不出有任何显着差异。我还尝试了每个配置属性,虽然有些人稍微
我正在为API级别>=7创建一个应用程序。一个屏幕通过ndk使用带有OpenGLES2.0的GLSurfaceView。如何检测opengl2.0是否可用?我不能在我的AndroidManifest.xml中使用android:glEsVersion="0x00020000"因为我必须支持API级别>=7的所有手机。如果不支持2.0,我将显示静态屏幕。我正在使用ndk附带的hello-gl2示例应用程序中的类似代码。在GL2JNIView中,当它设置Opengl上下文时,如果它没有找到合适的opengl配置(在我的例子中是一个需要opengles2.0的配置),它会抛出一个Illega
我想在Android上用native代码进行离屏图像处理,所以我需要通过EGL在native代码中创建openGL上下文。通过EGL,我们可以创建EGLSurface,我可以看到那里有三个选择:*EGL_WINDOW_BIT*EGL_PIXMAP_BIT*EGL_BUFFER_BIT第一个用于屏幕上处理,第二个用于屏幕外,所以我这样使用EGL_PIXMAP_BIT://Step1-Getthedefaultdisplay.EGLDisplayeglDisplay=eglGetDisplay((EGLNativeDisplayType)0);if((eglDisplay=eglGetDi
我正在阅读android源代码,因为我没有了解OPENGLES库的作用以及EGL库的作用。?这两个库有什么关系吗?我看过http://www.khronos.org/opengles/documentation/opengles1_0/html/但仍然没有得到。 最佳答案 EGL是OpenGLES和底层原生显示平台之间的接口(interface)。它用于创建和管理渲染表面和图形上下文。 关于android-OPENGLES和EGL库之间的混淆,我们在StackOverflow上找到一个类
我目前正在编写一个Android应用程序,我需要在其中缓存视频帧,以便我可以轻松地来回切换,几乎没有延迟。现在我让android解码视频帧,方法是为MediaCodec对象的Configure调用提供Surface,并调用releaseOutputBuffer并将渲染标志设置为真。我发现访问解码表面数据的唯一方法(除了解码返回的字节缓冲区,其格式似乎与设备相关)是调用SurfaceTexture上的updateTeximage链接到Surface,将其附加到GL_TEXTURE_EXTERNAL_OES目标并将其渲染到我自己创建的GL_TEXTURE2D目标纹理以缓存它。我想优化这个缓
我有大量JPG格式的纹理。我需要在实际绘图开始之前将它们预加载到opengl内存中。我问了一个问题,有人告诉我这样做的方法是将JPEG解包与对另一个线程的glTexImage2D(...)调用分开。问题是我不太确定该怎么做。执行glTexImage2D所需的OpenGL(处理程序?)仅在GLSurfaceView.Renderer的onSurfaceCreated和OnDrawFrame方法中可用。我无法解压我所有的纹理,然后在onSurfaceCreated(...)中将它们加载到opnegl中,因为它们可能不适合有限的虚拟机内存(20-40MB?)这意味着我必须一个接一个地解压和加
我是android的新手,我现在正在尝试实现一个WebView示例。在我的应用程序中,WebView重定向到网页。但在Logcat下面,这是它显示的错误。我试图解决它,但我不能。请帮我找到它。如果我的问题打扰到您,我真的很抱歉。这是错误:01-0222:46:42.764:E/chromium(1223):[ERROR:gl_surface_egl.cc(153)]NosuitableEGLconfigsfound.01-0222:46:42.764:E/chromium(1223):[ERROR:gl_surface_egl.cc(620)]GLSurfaceEGL::Initial
我有一个处理图像的动态壁纸应用。我在Play商店(但在fabric.io中没有)收到一些崩溃报告,其中包含此堆栈跟踪:************************************************Buildfingerprint:'samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXU1APDN:user/release-keys'Revision:'9'ABI:'arm64'pid:15250,tid:15331,name:RenderThread>>>com.xxxx.xxxxx我在互联网上找不到很多信息...似乎只是三