天天看点

OpenGL ES Shader相关API 总结【0】——获取绘制信息

获取绘制信息

======================

EGL的API作用分类:

用于与手机关联并获取手机支持的配置信息

用于根据需要生成手机支持的surface和context,并对surface和context进行关联

用于指定使用哪个版本的OpenGL ES,并与OpenGL ES建立关联

用于操作EGL上纹理,以及与多线程相关的高级功能

其他用处

常用API如下:

1.

EGLint eglGetError(void);      

功能:用于返回当前thread,如果EGL的API出错的话,最近一个错误所对应的错误代码

输出:错误代码

2.

EGLDsiplay eglGetDisplay(EGLNativeDisplayType display_id);      

功能:从EGL运行的操作系统中获取一个Display(获取手机屏幕)

输入:从操作系统中,得知的Display的ID

输出:用于显示图片绘制的Display

3.

EGLBoolean eglInitalize(EGLDisplay dpy, EGLint *major, EGLint *minor);      

功能:针对某display初始化一个某版本的EGL

输入:使用Display的handle特指某个Display,major和minor共同用于指定EGL的版本

输出:EGL初始化成功或者失败

4.

EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)      

功能:获取某display支持的配置信息

输入:display的handle,一个用于保存配置信息的指针,指针中存放的配置信息的数量,某display支持的配置信息数量

输出:配置信息获取成功或者失败

5.

EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig* configs, ELGint config_size, EGLint * num_config)      

功能:获取与需求匹配,且某display支持的配置信息(根据开发者的需要,获取一种手机支持的buffer格式)

输入:display的handle,用于匹配使用的需求信息,一个用于保存匹配信息的指针,指针中存放的配置信息的数量,匹配配置信息的数量

输出:匹配的配置信息获取成功或者失败

6.

EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);      

功能:创建一个可以显示在屏幕上的rendering surface(根据获取的格式,创建handle,用于包含手机系统提供的绘制所需的buffer)

输入:display的handle,用于创建surface的配置信息,窗口信息的handle,额外的需求信息

输出:创建的rendering surface的handle

7.  

EGLBoolean eglBindAPI(EGLenum api)      

功能:设置当前thread的绘制API(用于指定使用的绘制语言:EGL_OPENGL_ES_API)

输入:支持的绘制API

输出:API设置成功或者失败

8.

EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint* attrib_list)      

功能:针对当前的绘制API创建一个rendering context(创建调色板,用于保存状态集)

输入:display的handle,用于创建context的配置信息,指定一个context使得创建的context与其share,额外的需求信息

输出:创建的rendering context的handle

9.

EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)      

功能:将指定的context绑定到当前thread以及读和写的surface上(将创建的surface和context启动)

输入:display的handle,用于写入的surface,用于读取的surface,指定的context

10.

EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)      

功能:将surface中的color buffer显示到屏幕上(用于将绘制完毕的buffer与手机屏幕上显示的buffer进行交换)

输入:display的handle,将会被展示的surface

输出:显示成功或者失败

11.

EGLBoolean eglTerminate(EGLDisplay dpy)      

功能:将某display对应的EGL相关的资源释放

输入:使用Display的handle特指某个display

输出:释放EGL相关资源成功或者失败

继续阅读