OpenGL ES 调试信息函数

该函数可以打印出OpenGL ES选中的config的一些信息,调用的时候直接传入参数即可

static void printEGLConfigAttribs(EGLDisplay dpy, EGLConfig config)
{
    int value = 0;
    eglGetConfigAttrib(dpy, config, EGL_RED_SIZE, &value);
    printf("eglconfig: EGL_RED_SIZE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_GREEN_SIZE, &value);
    printf("eglconfig: EGL_GREEN_SIZE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_BLUE_SIZE, &value);
    printf("eglconfig: EGL_BLUE_SIZE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_ALPHA_SIZE, &value);
    printf("eglconfig: EGL_ALPHA_SIZE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_DEPTH_SIZE, &value);
    printf("eglconfig: EGL_DEPTH_SIZE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_RENDERABLE_TYPE, &value);
    printf("eglconfig: EGL_RENDERABL_TYPE: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_SAMPLE_BUFFERS, &value);
    printf("eglconfig: EGL_SAMPLE_BUFFERS: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_SAMPLES, &value);
    printf("eglconfig: EGL_SAMPLES: %d\n" , value);

    eglGetConfigAttrib(dpy, config, EGL_STENCIL_SIZE, &value);
    printf("eglconfig: EGL_STENCIL_SIZE: %d\n" , value);
}

输出信息如下

eglconfig: EGL_RED_SIZE: 8
eglconfig: EGL_GREEN_SIZE: 8
eglconfig: EGL_BLUE_SIZE: 8
eglconfig: EGL_ALPHA_SIZE: 8
eglconfig: EGL_DEPTH_SIZE: 24
eglconfig: EGL_RENDERABL_TYPE: 5
eglconfig: EGL_SAMPLE_BUFFERS: 0
eglconfig: EGL_SAMPLES: 0
eglconfig: EGL_STENCIL_SIZE: 8

Error的一些的值

变量 说明
EGL_NO_SURFACE context创建失败
EGL_BAD_DISPLAY display不是EGL显示连接
EGL_NOT_INITIALIZED display尚未初始化
EGL_BAD_CONFIG config不是EGL帧缓冲区配置
EGL_BAD_ATTRIBUTE attrib_list包含无效的像素缓冲区属性,或者属性值未被识别或超出范围
EGL_BAD_ATTRIBUTE attrib_list包含任何属性EGL_MIPMAP_TEXTURE,EGL_TEXTURE_FORMAT,或EGL_TEXTURE_TARGET的,和配置不支持的OpenGL ES渲染(例如,EGL版本是1.2或更高,和配置的EGL_RENDERABLE_TYPE属性不包括EGL_OPENGL_ES_BIT或EGL_OPENGL_ES2_BIT中的至少一种)
EGL_BAD_ALLOC 没有足够的资源分配新surface
EGL_BAD_MATCH 配置不支持渲染像素缓冲区(EGL_SURFACE_TYPE属性不包含EGL_PBUFFER_BIT)
EGL_BAD_MATCH EGL_TEXTURE_FORMAT属性不是EGL_NO_TEXTURE,并且EGL_WIDTH和/或EGL_HEIGHT指定了无效的大小(例如,纹理大小不是2的幂,并且底层OpenGL ES实现不支持非幂次幂纹理)
EGL_BAD_MATCH EGL_TEXTURE_FORMAT属性是EGL_NO_TEXTURE,而EGL_TEXTURE_TARGET是EGL_NO_TEXTURE以外的东西; 或者,EGL_TEXTURE_FORMAT不是EGL_NO_TEXTURE,而EGL_TEXTURE_TARGET是EGL_NO_TEXTURE
EGL_BAD_MATCH 配置不支持所指定的OpenVG的alpha格式属性(EGL_VG_ALPHA_FORMAT的值是EGL_VG_ALPHA_FORMAT_PRE和EGL_VG_ALPHA_FORMAT_PRE_BIT未配置的EGL_SURFACE_TYPE属性集)或colorspace属性(EGL_VG_COLORSPACE的值是EGL_VG_COLORSPACE_LINEAR和EGL_VG_COLORSPACE_LINEAR_IT未在EGL_SURFACE_TYPE属性集 配置)
发布了30 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/anyuliuxing/article/details/79345751