EGL 1.0 学习笔记
http://hi.baidu.com/leo_xxx/item/b01b1fc29abff355ac00ef5c
基本概念
EGL是OpenGL ES与本地Window系统之间的桥梁。EGL创建渲染上下文(Rendering Context)和Surface,Rendering Context是OpenGL ES的状态机,Surface是OpenGL ES绘图的“画布”
Display
Display是OpenGL ES应用运行平台的物理显示器的抽象
Rendering Context
OpenGL ES状态机,由EGL创建、并与Surface关联
Rendering Context含有OpenGL ES的客户端和服务器端状态
Rendering Context存在于客户端的地址空间。每个线程在同一时刻只能使用1个Rendering Context,每个Rendering Context在同一时刻只能被1个线程使用
Surface
OpenGL ES绘图的“画布”。EGL/OpenGL ES有3种Surface:
- window - 用于屏上(onscreen)渲染
- pbuffer - 用于离屏(offscreen)渲染
- pixmap - 离屏渲染,但本地渲染API也可以访问
OpenGL支持2种渲染模式:
- back buffered - 绘图的color buffer由EGL创建和管理,绘图完成后,EGL将后台color buffer交换/拷贝到窗口上
- single buffered - 其color buffer为本地Pixmap,EGL能使用但不维护。OpenGL ES绘图后,像素直接在Surface上呈现
window和pbuffer Surface是back buffered模式,pixmap Surface是single buffered模式
Config
用于创建Surface,包含了Surface的各个buffer的创建参数
- color buffer
- depth buffer
- multisample buffer
- stencil buffer
相互之间的关系概括

要点:
- 与同一Display关联的Rendering Context和Surface,才可以相互关联
- 一个Rendering Context可以向多个Surface绘图,多个Rendering Context可以向同一个Surface绘图
- 每个Surface有其独立的buffers
EGL函数Display相关eglInitialize
对每一个Display,都要初始化EGL
eglTerminate
释放EGL相关资源
Config相关
Config用于创建Surface
eglChooseConfig
获取一个Display与指定属性相匹配的Config列表
eglGetConfigs
获取一个Display所支持的所有Config列表
常用Config属性有:
属性说明
EGL_RED_SIZE
EGL_GREEN_SIZE
EGL_BLUE_SIZE
EGL_ALPHA_SIZE
color buffer的RGBA分量的颜色深度(位数)EGL_BUFFER_SIZE
color buffer 的颜色深度(bpp)
EGL_RED/GREEN/BLUE/ALPHA_SIZE之和
EGL_SURFACE_TYPE
Surface类型,可选值为:
- EGL_WINDOW_BIT
- EGL_PIXMAP_BIT
- EGL_PBUFFER_BIT
EGL_DEPTH_SIZEdepth buffer中Z的位数EGL_SAMPLE_BUFFERSmultisample buffer个数,0或1EGL_SAMPLESnumber of samples per pixelEGL_STENCIL_SIZEstencil buffer个数
Surface相关eglCreateWindowSurface
创建window Surface(on-screen 渲染)
eglDestroySurface
释放Surface相关资源
Context相关eglCreateContext
指定Display、Config,创建一个Rendering Context
多个Rendering Context可以共享数据,eglCreateContext()有一个参数为与其共享数据的另一个Context
eglDestroyContext
释放Context相关的资源
eglMakeCurrent
将Rendering Context绑定到当前线程,并且绑定Rendering Context与Surface
如果当前线程已经绑定了另一个Context,则原Context将解除绑定。因此可以以NULL或者EGL_NO_CONTEXT调用eglMakeCurrent来解除线程与当前Context之间的绑定关系
其他函数eglSwapBuffers
将back buffer拷贝到窗口
eglGetError
获取最近一次EGL函数的错误代码
EGL 1.0 学习笔记的更多相关文章
- DirectX 总结和DirectX 9.0 学习笔记
转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac ...
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- vue2.0学习笔记之路由(二)路由嵌套+动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue2.0学习笔记之路由(二)路由嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hdcms v5.7.0学习笔记
hdcms v5.7.0学习笔记 https://note.youdao.com/ynoteshare1/index.html?id=c404d63ac910eb15a440452f73d6a6db& ...
- dhtmlxgrid v3.0学习笔记
dhtmlxgrid v3.0学习笔记 分类: dhtmlx JavaScript2012-01-31 15:41 1744人阅读 评论(0) 收藏 举报 stylesheetdatecalendar ...
- OAuth 2.0学习笔记
文章目录 OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动. OAuth在"客户端&quo ...
- 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建
作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...
- RxJava2.0学习笔记2 2018年7月3日 周二
摘记: 1.map -- 转换 有些服务端的接口设计,会在返回的数据外层包裹一些额外信息,这些信息对于调试很有用,但本地显示是用不到的.使用 map() 可以把外层的格式剥掉,只留下本地会用到的核心 ...
随机推荐
- MySQL提示“错误2:系统找不到指定文件”
一.问题原因 个人猜测可能是因为安装的是绿色版MySQL,然后在系统变量path中加入了解压后的路径.后续操作上没有跳转到解压后的路径,而是直接在cmd的默认路径下新建MySQL的服务,所以导致此问题 ...
- 分享9款最新超酷HTML5/CSS3应用插件
新的一周开始了,小编继续要为大家分享实用超酷的HTML5应用,今天分享的这9款最新HTML5/CSS3应用你一定会很喜欢,一起来看看. 1.HTML5 Canvas模拟衣服撕扯动画 超级逼真 今天又要 ...
- 使用nginx反向代理解决前端跨域问题
1. 首先去Nginx官网下载一个最新版本的Nginx,下载地址:http://nginx.org/en/download.html.我这里下载的版本是:nginx/Windows-1.12.0.下载 ...
- 仿网易nec首页动画效果
仿网页nec首页动画效果nec链接:http://nec.netease.com/ 首先,介绍animationanimation检索或设置对象所应用的动画特效.animation由“keyframe ...
- Some Java exceptions, messages and errors.
http://www.antapex.org/messages_java.txt http://www.jvmmonitor.org/index.html
- centos6.5 手动安装gcc
gcc版本:gcc-4.4.7 rpm -Uvh mpfr-2.4.1-6.el6.x86_64.rpm rpm -Uvh cpp-4.4.7-16.el6.x86_64.rpmrpm -Uvh ...
- PDF文件转换成Excel表格的操作技巧
我们都知道2007以上版本的Office文档,是可以直接将文档转存为PDF格式文档的.那么反过来,PDF文档可以转换成其他格式的文档吗?这是大家都比较好奇的话题.如果可以以其他格式进行保存,就可以极大 ...
- struts2防止反复提交的办法
<? xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC " ...
- SpringMVC------在运行项目的时候run as 里面没有run on server 解决办法
1.第一步:选中项目,右键,点击Properties 2.第二步:在查找框里输入Project Facets ,点击蓝色的,如图: 第三步:选中Dynamic Web Module,应用就可以了 转载 ...
- Xcode提交图片出错:Commit failed not under version control (1)
xcode的svn提交图片经常会出问题,这不我又碰到了,记录下: 修改的是xx@2x.png之类的图标,commit的时候报错 The working copy “ios” failed to com ...