该函数可以打印出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属性集 配置) |