EGL以及OpenGLES命令

OpenGLES命令需要渲染上下文和绘制表面。渲染上下文存储相关的OpenGLES 状态。绘制表面时用于绘制图元的表面,它指定渲染所需要的缓冲区类型。绘制表面还需要制定所需要的缓冲区的位深度。

EGL是Khronos渲染API与原生窗口系统之间的接口。iOS支持OpenGLES但不支持EGL。

OpenGLES应用程序必须在渲染之前私用EGL执行以下任务:

查询并初始化设备可用的显示器。

创建渲染表面。

创建渲染上下文。

库和包含文件

库:libGLESv2.lib 和EGL库libEGL.lib

头文件:

#include <EGL/egl.h>

 #include <GLES3/gl3.h>

选择性包含 #include <GLES3/gl2ext.h>,这里是扩展列表的头文件

EGL命令语法

所有命令都以egl开头,每个单词首字母大写

数据类型:

32位整数 —— EGLint

32位无符号整数 —— EGLenum、EGLBoolean

指针 —— EGLConfig、EGLContext、EGLDisplay、EGLSurface、EGLClientBuffer

OpenGLES命令语法

所有命令以gl开头,每个单词首字母大写

有些命令可能采用不同风格的参数。风格活着类型根据采用的参数数量、参数使用的数据类型(字节b,无符号字节ub,短整数s,无符号短整数us,整数i,浮点数f)以及参数是否以向量v形式传递而各不相同。

错误处理:

GLenum glGetError(void)

基本错误代码:

GL_NO_ERROR    没有任何错误

GL_INVALID_ENUM 超出GLenum范围

GL_INVALID_VALUE 数值型参数超出范围。

GL_INVALID_OPERATION 特定命令在当前OpenGLES状态下不能执行。

GL_OUT_OF_MEMORY 内存不足时执行该命令。未定义?

基本状态管理:

void glEnable(GLenum cap)

void glDisable(GLenum cap)

cap:

GL_BLEND

GL_CULL_FACE

GL_DEPTH_TEST

GL_DITHER

GL_POLYGON_OFFSET_FILL

GL_PRIMITIVE_RESTART_FIXED_INDEX

GL_RASTERIZER_DISCARD

GL_SAMPLE_ALPHA_TO_COVERAGE

GL_SAMPLE_COVERAGE

GL_SCISSOR_TEST

GL_STENCIL_TEST

检查某个状态目前启用还是禁用

GLboolean glIsEnable(GLenum cap)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在顶点着色器处理图元顶点之后进入图元装配阶段。这一阶段,执行裁剪、透视分割和Viewport变换操作。 光栅化是将...
    cain_huang阅读 5,455评论 0 4
  • 一、纹理基础 3D图形渲染中最基本的操作就是对一个表面应用纹理。纹理可以表现只从网格的几何形状无法得到的附加细节。...
    cain_huang阅读 8,933评论 0 7
  • 简介 Android 平台的 OpenGL ES 模拟由多个组件实现,它们分别是: 模拟的客户系统内的多个系统库,...
    hanpfei阅读 2,625评论 0 5
  • 我们在做PPT的时候经常会用到各式各样的图片类素材。而我们经常会遇到这样的情况,有时候图片太模糊,有时候需要把图片...
    三顿ppt阅读 2,761评论 9 88
  • 蒸了一小電飯煲米飯,一週了,我還沒吃完,夏季真是厭食季呀,思來想起,沒什麼想吃的食物呢。 可能真是蒸太多了,感覺吃...
    林素兮阅读 318评论 7 4