大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录 >>OpenGL ES 基础
成都创新互联公司成立与2013年,先为扬中等服务建站,扬中等地企业,进行企业商务咨询服务。为扬中企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录 >>OpenGL ES 特效
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录 >>OpenGL ES 转场
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录>>OpenGL ES 函数
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录>>OpenGL ES GPUImage 使用
零基础 OpenGL ES 学习路线推荐 :OpenGL ES 学习目录>>OpenGL ES GLSL 编程
在讲解 EAGLContext 和 EGLContext 之前,我们需要先说明一下 OpenGL 和 OpenGL ES 的关系
OpenGL(全写 OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规格,它用于生成二维、三维图像。OpenGL 广泛用于 PC 平台(windows、Linux、Unix、Mac OS X);
早先定义 OpenGLES 是 OpenGL 的嵌入式设备版本,用于移动端平台(Android、iOS),但由于嵌入式设备要求的是高性能,所以一些其它纯追求高性能的设备也开始用这种 API 方式;
OpenGL ES 是 OpenGL 的子集,区别在于 OpenGL ES 删减了 OpenGL 一切低效能的操作方式,有高性能的决不留低效能的,即只求效能不求兼容性。(即:OpenGL ES 能实现的,OpenGL 也能实现;OpenGL 部分 API,OpenGL ES 不支持)
OpenGL ES 是个与硬件无关的软件接口,可以在不同的平台如 Windows、Unix、Linux、MacOS、IOS、Android 之间进行移植。因此,支持 OpenGL ES 的软件具有很好的移植性,可以获得非常广泛的应用。
OpenGL 和 OpenGL ES 在不同平台上有不同的机制以关联窗口系统
1. OpenGL 在 Windows 上是 WGL ,在 Linux 上是 GLX ,在 Apple OS 上是 AGL ;
2. OpenGL ES 在 Windows / Android 上是 EGL,在 IOS 中是 EAGL;
Windows / Android 上是 EGL ,EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁,且它与平台无关的。
EGLContext 创建 OpenGL ES 上下文:
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES OpenGL ES EAGLContext 和 EGLContext
//@Time:2022/08/04 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
//创建上下文
EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE };
EGLContext context = eglCreateContext ( display , config , EGL_NO_CONTEXT, contextAttribs );
//绑定上下文
eglMakeCurrent ( display , surface , surface , context )
IOS 平台为 OpenGL 提供的实现是 EAGL,OpenGL ES 系统与本地窗口(UIKit)桥接由 EAGL 上下文系统实现。
IOS EAGLContext 创建 OpenGL ES 上下文:
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES OpenGL ES EAGLContext 和 EGLContext
//@Time:2022/08/04 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
EAGLContext *_context;
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
EGL OpenGL ES 绘制可以参考以下代码:
IOS EAGL OpenGL ES 绘制可以参考以下代码:
本文由博客 - 猿说编程 猿说编程 发布!