首页 opengles第1章

opengles第1章

举报
开通vip

opengles第1章opengles第1章 第1章 1.简介OpenGL ES 2.0和OpenGL ES的是什么, OpenGL ES是一个应用编程接口先进的3D(API)的在手持设备和嵌入式设备,如针对手机的图形,个人数字助理(PDA),游戏机,家用电器,车辆,和阿维翁,集成电路。 OpenGL ES是一个由Khronos集团创建的API集之一。那个Khronos集团,成立于2000年1月,是一家成员公司资助的行业财团的重点是开放标准和专利创造为手持设备和嵌入式设备免费的API。在桌面世界上有两个标准的3D的API,Dire...

opengles第1章
opengles第1章 第1章 1.简介OpenGL ES 2.0和OpenGL ES的是什么, OpenGL ES是一个应用编程接口先进的3D(API)的在手持设备和嵌入式设备,如针对手机的图形,个人数字助理(PDA),游戏机,家用电器,车辆,和阿维翁,集成电路。 OpenGL ES是一个由Khronos集团创建的API集之一。那个Khronos集团,成立于2000年1月,是一家成员公司资助的行业财团的重点是开放标准和专利创造为手持设备和嵌入式设备免费的API。在桌面世界上有两个标准的3D的API,DirectX和OpenGL。DirectX是事实上的标准3D API的任何运行系统微软Windows操作系统,是由大部分用于三维游戏在该平台上。 OpenGL是一个跨平台的标准3D API运行Linux的UNIX,Mac OS X操作系统,以及各种风味的桌面系统微软的Windows。这是一个被广泛接受的标准3D API,它已被重大的现实使用。API是用来游戏如Doom和雷神之锤系列,用户界面为Mac OS X中,工作站电脑辅助设计(CAD),如CATIA的应用,以及数字内容创建应用 -如Maya以及Softimage tions | XSI的。由于OpenGL的三维API为广泛采用,是有道理的与桌面OpenGL API的开始,在发展开放型标准3D的API为手持设备和嵌入式设备和修改,以满足需求和制约因素的手持设备和嵌入式设备的空间。该设备OpenGL ES的地址是非常有限的加工capabili约束关系和内存可用性,低内存带宽,灵敏度权力消费,浮点硬件的不足。工作组利用在OpenGL ES的 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 (拧定义下列标准): •OpenGL API是非常大的复杂和目标,对于OpenGL ES的工作组,目标是建立适合的API限制设备。为了实现这一目标,工作组中删除任何冗余丹西从OpenGL API的。在任何情况下,有超过一种方式执行相同的操作,最有用的 方法并采取了冗余技术被拆除。一个良好的考试,这是指定几何普列汉诺夫,在OpenGL中的应用程序可以使用立即模式,显示列表,或顶点数组。在OpenGL ES,这只是顶点数组存在,直接模式,并显示名单删除。 •删除冗余是一个重要的目标,但维持的COM -OpenGL的相容性也很重要。尽可能, OpenGL ES的目的是,这样的应用程序被写入在OpenGL的功能也将嵌入的子集上运行OpenGL ES的。原因这是一个重要的目标是它允许开发,雇员再培训计划,利用这两个API和开发应用程序和工具使用常见的功能集。虽然这是一个重要的目标,在某些情况下已背离,尤其是OpenGL ES2.0。这是讨论在后面的章节的细节。 •引入了新功能,以解决手头的具体限制,手提式和嵌入式设备。例如,为了降低功率节能消耗,增加着色性能,精度限定符引入了着色语言。 • OpenGL ES设计师旨在确保最低限度的有限元一套特征的图像质量。大多数手持设备都有限的屏幕尺寸,使至关重要的是,就得出的像素质量尽可能与屏幕一样好。 •OpenGL ES工作组要确保任何的OpenGL ES 执行将符合一定的接受和规定的标准图像质量,正确性,鲁棒性(鲁棒性就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。)。这是通过制定适当的一致性测试与OpenGL ES 安装启用必须通过考虑的标准。 有三个OpenGL ES已发表的规格 到目前为止号: OpenGL ES 1.0和ES 1.1规范(以下简称联合如OpenGL ES 1.x这本书)和OpenGL ES 2.0的规范。那个OpenGL ES 1.0和1.1规范,采用固定功能管线和分别来源于OpenGL 1.3和1.5的规格。 OpenGL ES 2.0规范实现了一个可编程图形管道,并从一个OpenGL 2.0规范而成。作为衍生意味着从一个OpenGL规范的修订,相应的OpenGL规范被 用来作为确定的功能基线载于OpenGL ES的特定修订。一个不同的规格是然后创建所描述的变化,以及OpenGL ES与补充在OpenGL规格从它派生。如OpenGL ES 2.0的强大的OpenGL 2.0 API的衍生,它使极其丰富的可编程游戏内容。例如,图像彩色图版1(见本书的中心)从一个弹子球游戏演示针对OpenGL ES 2.0和它使用的影响,如先进的着色环境映射和每个片段照明。这个例子演示的影响将在OpenGL ES 2.0标准普遍的种类申请。随着OpenGL ES 2.0标准,大部分可编程图形台式机硬件的功能,现在可在嵌入式设备应用。在接下来的章节中,我们向大家介绍的OpenGL ES 2.0管道。 OpenGL ES 2.0标准 OpenGL ES 2.0的API,在我们一本书都有介绍。我们的目标是覆盖OpenGL ES 2.0标准的详细规范(包括核心规范Khronos的批准和OpenGL ES 2.0的扩展),提出具体例子如何使用OpenGL ES 2.0标准的特点,并讨论各种perfor -芒斯优化技术。读完这本书,你应该有对OpenGL ES 2.0 API的出色把握,就可以轻易地写迫使-玲的OpenGL ES 2.0的应用程序,而不必担心阅读穆尔,蒂普莱规格,了解工程的功能。OpenGL ES 2.0的实现与可编程着色图形管道和包括两个规格: OpenGL ES 2.0 API规范与OpenGL ES的着色语言规范(OpenGL ES的SL版本)。 图1-1显示了OpenGL ES 2.0图形管线。盒中的阴影显示了在OpenGL ES2.0中的管道可编程阶段。对每个阶段的OpenGL ES 2.0图形管道概述提出在后面。 顶点着色器 本节给出了一个顶点着色什么是高层次的概述。顶点片段着色器和深度覆盖在后 的顶点。到顶点着色器面的章节。顶点着色器实现了一个通用的可编程方法操作 的投入包括以下内容: •属性每次提供的数据使用顶点顶点数组。 •制服由顶点着色器使用的常数的数据。 •取样器,一个代表制服使用特定类型的纹理,顶点着色器,在顶点着色器取样器是可选的。 •着色程序,顶点着色器程序源代码或可执行描述将在顶点执行的操作。 顶点着色器的产出被称为不同的变量。在普里米,略去光栅化阶段的不同值计算方法为每生成片段,并通过以片段着色投入。该原理用于生成每个不同的碎片的不同价值分配给每个原始称为插值顶点值。那个输入和输出顶点着色diagramed图1-2。 顶点着色器可用于传统的顶点为基础的操作,如 由矩阵转化的立场,照明计算 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 生成每个顶点颜色和纹理生成或改变纹理贴图 坐标。或者,因为顶点着色器指定的应用程序,顶点着色器可以被用来进行定制 顶点转换。例1-1显示了一个顶点着色书面使用OpenGL ES的阴影语言。我 们相当详细地解释顶点着色后来这本书。我们显示此着色现在只给你一个知道什 么是顶点着色器样子。在示例1-1顶点着色采取的立场和促进协会,作为输入 联合的色彩数据,转换为4 × 4矩阵的立场和产出的转化位置和颜色。 Example 1-1 A Vertex Shader Example 1. // uniforms used by the vertex shader 2. uniform mat4 u_mvpMatrix; // matrix to convert P from model 3. // space to normalized device space. 4. 5. // attributes input to the vertex shader 6. attribute vec4 a_position; // position value 7. attribute vec4 a_color; // input vertex color 8. 9. // varying variables – input to the fragment shader 10. varying vec4 v_color; // output vertex color 11. 12. void 13. main() 14. { 15. v_color = a_color; 16. gl_Position = u_mvpMatrix * a_position; 17. } 2号线描述了一个统一的存储变量u_mvpMatrix合并模型视图和投影矩阵。 6和7行描述的输入顶点着色器和顶点属性。 a_position是输入顶点位置属性和a_color是输入顶点颜色属性。在第10行,我们宣布的不同v_color来存储输出顶点着色器,描述了每个顶点的颜色。内置的变声明呼吁gl_Position自动,必须写入着色的转变这个变量。一个顶点或片段着色器有单一入口点称为主函数。行12-17描述顶点着色器的主要功能。在第15行,我们读到了顶点属性输入a_color并写了顶点输出色彩v_color。在第16行,转化顶点位置是书面形式向gl_Position输出。 原始组装 顶点着色器后,在管道的下一阶段是原始的组装。一个原始是一种几何对象,可以使用适当的绘制在OpenGL ES的绘图命令。这些绘图命令指定一个集合顶点属性,描述了原始的几何形状和原始类型。每个顶点用一场顶点属性。这些顶点属性包含的信息的顶点着色器用来计算位置和其他信息可以传递到片段着色坐标如它的颜色和纹理。 在原始的装配阶段,阴影顶点组装成可以得出个别的几何元素,如三角形,行,或绘制几何图点雪碧。对于每一个原始的,必须确定原始的lies是否在视图的视图(三维空间的区域是可见的屏幕)。如果它不完全在视图体中可能需要裁剪的视域。如果原始的完全不在,它将被丢弃。裁剪后的顶点位置是节能,倒立的屏幕坐标。淘汰操作也可以执行的面对是否向前或向后的丢弃原语。后裁剪和扑杀,简陋的准备传递给下一阶段管道,这是光栅化阶段。 光栅 下一阶段,如图1-3所示,是光栅的阶段,其适当的原始图(点雪碧,行,或三角形)的结论。光栅是的过程是将原始转化为一套有两个基本类型二维片段碎片:这是由该片段着色处理。这个两维片段碎片可以在屏幕上绘制像素。 片元着色器 片段着色器实现了一个通用可编程方法经营的碎片。片段着色器,如图1-4所示,为每个执行生成片段的光栅化阶段,并采取以下投入: •改变变量的顶点着色器生成的输出每个使用插值片段光栅单元。制服是片段着色器使用的常数数据。 •取样器,一个代表制服使用特定类型的纹理片段着色。 •着色编程的片段着色程序源代码或可执行描述将片段上执行的操作。片段着色器可以丢弃的片段,或产生颜色值被称为gl_FragColor。颜色,深度,模板和屏幕坐标位置(xw,xy)的光栅化阶段,成为产生以输入的每片段行动的OpenGL ES 2.0的管道阶段。 例如1-2描述了一个非常简单的片段着色器,可以耦合与顶点着色例1-1描述绘制高洛德阴影三角形。同样,我们将进入更详细的片段着色在这本书的后面。我们现在这只是给你一个基本的思想什么是片段着色样子。 Example 1-2 A Fragment Shader Example 1. precision mediump float; 2. 3. varying vec4 v_color; // input vertex color from vertex shader 4. 5. 6. void 7. main(void) 8. { 9. gl_FragColor = v_color; 10.} 1号线设置默认精度预选,详细解释在第4章,“着色和程序。”第3行描述了输入片段阴影。顶点着色器必须写出了相同的一组不同的变量正在阅读的片段着色。行6-10描述片段着色器的主要功能。请注意,没有输出的被声明片段着色。这是因为唯一的输出变量是gl_FragColor,这个例子是设置输入颜色的片段着色给予v_color在第9行。 片段着色后,下一个阶段是每个片段行动。每个片段由光栅制作的(xw,yw)片段只能坐标修改在位置的像素(xw,yw)的帧缓冲。图1-5描述的OpenGL ES 2.0每片段操作阶段。 每片段操作阶段执行下列功能(和测试),每个片段,如图1-5所示: •像素所有权测试 ,该测试确定的位置,如果在像素(xw, yw)在帧缓冲储存器于目前所拥有的OpenGL ES。这个测试允许窗口系统,以控制帧的像素属于当前OpenGL ES的情况。例如,如果一个窗口显示OpenGL ES的帧窗口被遮住 像素是不属于OpenGL ES范围内的,因此可能另一窗口,窗口系统可决定遮蔽 不会显示在所有。剪试验,剪刀测试确定(xw,xy)在剪刀矩形定义为OpenGL ES状态的一部分。如果片段在剪刀矩形以外的地区,该片段将被丢弃。模板和深度试验,这些模板上执行和深度测试传入片段的值,以确定是否应该片段拒绝。 混合,混合结合新生成的片段颜色与颜色值中存储的值在位置帧(xw,xy)。 抖动,抖动可以用来减少工件能有发生,利用有限的精度存储在帧颜色值存于缓冲器存储区。 在每个片段的最后阶段,该片段或者被拒绝或结束片段颜色,深度,或模板值写入到帧缓冲的位置(xw,xy)。片段颜色,深度和模板值被写入是根据是否适合写启用。写口罩允许通过颜色,深度更精细的控制,以及模具的价值写入相应的缓冲区。例如,写的面具颜色缓冲区可以设立这样的价值观,没有红颜色进入书面缓冲区。 此外,OpenGL ES 2.0标准还提供了一个接口的像素读回从帧缓冲。请注意,只有像素都可以读出的颜色回缓冲区。模具的深度和价值不能读回。 注:阿尔法测试(Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,包括真实的以及主管认定的,定期向开发 者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。)和LogicOp没有对每个片段不再属于操作阶段。这两个阶段 ES 1.x在alpha测试阶段,它不再需要因为片段着存在OpenGL 2.0和OpenGL 色可以丢弃碎片,因此,alpha测试可执行于片段着色阶段。 此外,LogicOp被删除由于非常不经常使用的应用程序和基于OpenGL ES工作组没有从独立的软件要求供应商(ISV),以支持这一功能的OpenGL ES 2.0。 OpenGL ES 2.0和OpenGL ES 1.x中向后兼容性OpenGL ES 2.0不 向后兼容 OpenGL ES 1.x ,它不支持OpenGL ES 1.x 支持的固定功能管道。那个OpenGL ES 2.0可编程顶点着色器取代了固定功能的版本,在OpenGL ES 1.x的可编程顶点着色器单位固定功能顶点单元实现特定的顶点转换和光照方程,可用于改造顶点位置,改变或生成纹理坐标,计算顶点颜色。同样,可编程片段着色器取代了固定功能的纹理结合单位应用中的OpenGL ES 1.x的固定函数纹理结合单位应用的纹理结合每个纹理单元阶段。纹理颜色与弥漫的颜色和纹理上的输出相结合结合的操作,如同添加一组固定的阶段,调制,减,和点。 这是一个从OpenGL 2.0,它实现了一个可编程的离境管道而且还提供完全向后兼容旧版本的OpenGL的是采用固定功能管线。OpenGL ES工作组决定对向后兼容的原因如下: •支持在OpenGL ES 2.0的固定功能管线意味着Api将支持一个以上的执行功能的方法,在对工作小组使用的标准之一制止决定哪些功能应该得到支持。可编程管道线路允许应用程序实现使用固定功能管线着色,因此实在没有令人信服的理由与OpenGL ES 1.x向后兼容。从独立软件供应商的反馈意见,大多数游戏不要混合可编程与混合固定功能管线。(,)他们要么是写一个固定或可编程功能管线。一旦你有一个可编程管道,没有理由使用固定功能管线当你有一个你想要的效果,以使更多的灵活性。 • OpenGL ES 2.0驱动程序的内存占用量会大得多,如果它同时支持固定功能和可编程管线。为了OpenGL ES的定位设备,最大限度地减少内存占用是一个重要的设计标准。通过分离固定功能支持OpenGL ES 1.x API和可编程着色器放置支持到OpenGL ES 2.0 API,厂商不需要OpenGL ES的1.x的支持,不再需要在所有包含该驱动程序。还注意到,不同的OpenGL ES 1.x中,没有任何个人资料或“强制性扩展”对于OpenGL ES 2.0 。 EGL OpenGL ES的命令需要一个渲染上下文和绘画表面。渲染上下文存储适当的OpenGL ES的状态。绘画表面是那些将要绘画的基元。绘图表面具体规定是,如颜色渲染所需的缓冲区的类型缓冲,深度缓冲,模板缓冲。绘图表面还规定对每一个所需的缓冲区的位深度。 基于OpenGL ES API没有提及如何创建渲染上下文或如何呈现上下文获取附加到本机窗口系统。 EGL是一种Khronos的渲染API的接口,如OpenGL ES和本地窗口系统。没有任何要求在执行提供的EGL的OpenGL ES。开发人员应参照该平台供应商的文档,以确定哪些接口支持。任何OpenGL ES应用需要做以下使用EGL的前任何渲染就可以开始: •在设备上有效查询显示器和初始化它。例如,一个翻盖手机可能有两个液晶显示屏,并有可能我们可以提供使用的OpenGL ES的表面,可以显示其中一项或两项面板。 •创建渲染表面。创建于EGL的表面可以分为在屏幕上的表面或关闭屏幕表面。屏幕上的表面连接到本机窗口系统,而离屏表面像素缓冲区没有得到显示,但可以作为渲染表面。这些表面可以用来渲染成纹理,可以共享多个Khronos APIs。 •创建渲染背景。 EGL是需要建立与OpenGL ES渲染背景。这方面需要重视的一个适当的渲染表面才可以真正开始。 在EGL API实现的功能中,刚才所说的和额外的功能如电源管理,支持多重渲染背景在一个过程中,分享的对象(如纹理或顶点缓冲器)上渲染背景在一个进程上,和一种机制,让函数指针EGL的或OpenGL ES的扩展名由给定的实施支持的功能。在EGL的规范的最新版本是1.4版的EGL。 OpenGL ES 2.0编程 编写任何的OpenGL ES 2.0应用程序,你需要知道哪些头文件必须包含与您的应用程序的库需要链接。它也有助于理解的EGL和使用的语法吉尔命令名和命令参数。函数库与包含文件OpenGL ES 2.0的应用程序需要连接下列库: OpenGL ES 2.0库名为libGLESv2.lib和EGL的函数库>命名libEGL.lib。OpenGL ES 2.0的应用程序将需要包括适当的ES 2.0和EGL的头文件。下列文件必须包含于任何包含OpenGL ES 2.0的应用程序: #include #include #include egl.h是EGL的头文件,gl2.h是OpenGL ES 2.0标准头文件,并且gl2ext.h是头文件,它描述了Khronos的清单批准扩展了OpenGL ES 2.0。头文件和库名称则是依赖于平台。OpenGL ES工作组曾试图定义库和头的名字,以及如何他们要组织,但这可能不适用于所有的OpenGL ES案平台。开发人员应请参考平台供应商的文件库,关于函数库和包括文件是如何命名和组织的。 EGL Command Syntax 所有EGL的命令前缀开始EGL和使用的初步大写字母每个字组成的命令名称(例如,eglCreateWindowSurface)。同样,EGL的数据类型也开始同前缀EGL和使用每个弥补除外类型名称初步大写字母单词EGLint和EGLenum。 表1-1给出了EGL的数据类型的简要 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 使用 OpenGL ES的命令语法 所有的OpenGL ES的命令以gl为前缀开始,用最初的大写字母组成的命令的 名称(例如,glBlendEquation)字。同样,OpenGL ES的数据类型也开始以前 GL。此外,一些命令可能需要在不同口味的参数。那个口味或类型各不相同的 措施(一对四参数),所使用的参数的数据类型(byte [b], unsigned byte [ub], short [s], unsigned short [us], int [i], fixed [x], and float [f]),以及是否传递的参数 作为vector (v)。指挥举几个例子允许在OpenGL ES的口味跟进。 下面两个命令是等价除一个指定单向形式价值浮动和其他为整数。 glUniform2f(location, 1.0f, 0.0f); glUniform2i(location, 1, 0) 以下几行命令,描述也等同,但一作为载体传递命令的参数和其他没有。 GLfloat coord[4] = { 1.0f, 0.75f, 0.25f, 0.0f }; glUniform4fv(location, coord); glUniform4f(location, coord[0], coord[1], coord[2], coord[3]); 表1-2给出了一个后缀的命令和参数的数据描述在OpenGL ES的使用类型。 最后,OpenGL ES的定义类型GLvoid。这是用于为OpenGL ES命令,接受指针。在这本书,OpenGL ES的命令提及的基本指针名字只是一个星号是用来表示这是指命令的名称多种风格。例如,glUniform *()表示所有可变$百分比的命令使用指定的制服和glUniform * V()指所有的命令使用指定制服矢量版本。如果一个特定版本的命令需要讨论,我们使用完整命令名与适当的后缀。 错误处理 OpenGL ES的命令应用程序使用不当产生错误代码。此错误代码记录,并可以查询使用glGetError。否其他错误将被记录到应用程序质疑的第一个错误代码中使用glGetError。一旦错误代码已被质疑,目前错误代码被重置为GL_NO_ERROR。该命令生成错误被忽略,不影响除国家的OpenGL ESGL_OUT_OF_MEMORY错误描述本节后面。 该glGetError命令描述未来。 GLenum glGetError(void) 表1-3列出了基本的错误代码和说明。还有其他除了基本的错误代码表1-3中列出的错误代码描述在章,涵盖OpenGL ES的命令,生成这些特殊错误。返回当前错误代码并重置当前错误代码GL_NO_ERROR。如果GL_NO_ERROR返回,但一直没有检测错误,是因为在最后一次调用了glGetError。 (49页) 1.没有错误已经产生自上次调用glGetError。 2.一个GLenum参数超出范围。那个命令生成错误被忽略。 3.数值参数超出范围。那个命令生成错误被忽略。 4.具体的命令不能执行的在当前OpenGL ES的状态。命令在生成错误被忽略。 5.没有足够的内存来执行此命令。该管线的OpenGL ES状态被认为是不确定的,如果这个错误是遇到除了当前错误代码。 冲洗和完成 OpenGL ES 2.0 API继承了OpenGL的客户服务器模式。在应用软件程序,或客户,发出命令,这些命令的处理执行的OpenGL ES或服务器。在OpenGL中,客户端和服务器可以驻留在不同的机器在网络上。 OpenGL ES的也允许客户端和服务器驻留在不同的机器,而是因为OpenGL ES的针对手持设备和嵌入式平台,客户端和服务器的典型值代表性地在相同的设备上。 在客户机服务器模式,由客户端发出的命令不必要立即被送进服务器。如果客户端和服务器超过一个网络,这将是非常低效的个人发送命令网络。相反,该命令可以缓冲客户端和然后发出服务器上,在稍后的时间点。因此,需要有建立一个机制,让客户知道什么时候该服务器已完成执行以前提交的命令。考虑另一个例子有多个OpenGL ES的情况下,(目前为每一个不同的线程)的共享对象。要同步上下文之间的正确,它重要的是,命令从上下文发给服务器之前B的情况下的OpenGL ES上的背景A.修改后的状态取决于glFlush命令用来刷新任何命令之前,在当前OpenGL ES的背景和问题,他们到服务器。请注意,只有glFlush问题到服务器的命令,不等待他们完成。如果客户需要完成的命令,在glfinish在要求应该被使用。但是,我们不建议您使用glfinish除非绝对必要。由于glfinish不会返回,直到所有排队的情况下命令已完全处理的服务器,调用glfinish在不利的影响可以通过强制执行客户端和服务器同步运作。Void glFlush(void) void glfinish(void)基本状态管理图1-1显示了在不同的OpenGL ES 2.0管线阶段。 每个管线阶段的状态,可以启用或禁用和适当的国家瓦勒拉统一电力公司所保持 的每个方面。国家例如混合启用,混合因素,扑杀启用和扑杀的脸。这种状态是 默认的初始化当值的OpenGL ES背景(EGLcontext)初始化。国家使得可以设 置使用glEnable和glDisable命令。 void glEnable(GLenum cap) void glDisable(GLenum cap) glEnable and glDisable enable and disable various capabilities. The initial value for each capability is set to GL_FALSE except for GL_DITHER which is set to GL_TRUE. The error code GL_INVALID_ENUM is generated if cap is not a valid state enum. 后面的章节中会说明具体的国家,使每个管线阶段如图1-1所示。您也可以检查 目前的状态启用或使用glIsEnabled命令禁用。 GLboolean glIsEnabled(GLenum cap) Returns GL_TRUE or GL_FALSE depending on whether the state being queried is enabled or disabled. Generates the error code GL_INVALID_ENUM if cap is not a valid state enum. 如混合因素,深度测试值具体的国家的价值观,等等,都也可以使用适当的glGet 质疑***命令。这些命令在介绍第14章详细,“国家查询。” 延伸阅读 OpenGL ES 1.0,1.1和2.0规范可在www.khronos.org/opengles/。 另外,Khronos的网站(www.khronos.org)已对所有Khronos的规格说明的最 新信息,开发留言板,教程和例子。 1。即Khronos OpenGL ES 1.1网站:www.khronos.org/opengles/1_X/ 2。即Khronos OpenGL ES 2.0网站:www.khronos.org/opengles/2_X/ 3。 Khronos的EGL的网站:www.khronos.org/egl/
本文档为【opengles第1章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:160KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-14
浏览量:4