GLSurfaceView

时间:2015-08-22 10:45:14

标签: android glsurfaceview egl

我正在配置GLSurfaceView以使用 EGL_RECORDABLE_ANDROID 。 但是在渲染循环中,我在LogCat中得到了一个 EGL_BAD_ALLOC ,当然屏幕是黑色的。

我的第一个假设是,测试GPU( Adreno 220 )可能不支持此类标记,但egl报告支持配置。 到目前为止,任何其他经过测试的GPU模型都不会出现这个问题。

获取/测试EGLConfig的方法:

public EGLConfig chooseConfig(final EGL10 egl, final EGLDisplay display)
{
    // OpenGL ES 2 bit. EGL14.EGL_OPENGL_ES2_BIT
    final int EGL_OPENGL_ES2_BIT = 0x0004;

    // Extension for surface record
    final int EGL_RECORDABLE_ANDROID = 0x3142;

    final int[] attribList = { EGL10.EGL_RED_SIZE, 8, //
            EGL10.EGL_GREEN_SIZE, 8, //
            EGL10.EGL_BLUE_SIZE, 8, //
            EGL10.EGL_ALPHA_SIZE, 8, //
            EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, //
            EGL_RECORDABLE_ANDROID, 1, //
            EGL10.EGL_NONE };

    final EGLConfig[] configs = new EGLConfig[1];
    final int[] numberConfigs = new int[1];

    if (egl.eglChooseConfig(display, attribList, configs, configs.length, numberConfigs) == false)
    {
        return null;
    }

    return configs[0];
}

0 个答案:

没有答案