码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenGL ES EGL 简介


    目录

    • 一.EGL 简介
    • 二.EGL 跨平台之 ANGLE
      • 1.ANGLE 支持跨平台
      • 2.ANGLE 支持渲染器
      • 3.ANGLE 下载地址
    • 三.EGL 坐标系
    • 四.EGL 绘图步骤
    • 五.猜你喜欢

    零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础

    零基础 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 编程

    一.EGL 简介

    EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁,且它与平台无关的。

    在不同平台上有不同的机制以关联窗口系统,在 Windows 上是 WGL ,在 Linux 上是 GLX ,在 Apple OS 上是 AGL 等。

    EGL 则是平台上 WGL / GLX / AGL 的等价物。EGL 假设 OS 会提供窗口系统,但 EGL 与平台无关,并不局限于任何特定的窗口系统,所有用到本地窗口系统的地方都用屏蔽指针来处理,这就是易于移植的关键。

    二.EGL 跨平台之ANGLE

    EGL API 是独立于 OpenGL ES 各版本标准的独立的一套 API,其主要作用是为 OpenGL ES 指令 创建 Context 、绘制目标 Surface 、配置 FrameBuffer 属性、Swap 提交绘制结果 等。

    ANGLE 是一个 google 发起的开源项目, 用在 chromium 项目里面,作为底层的图形渲染引擎的一部分。ANGLE 的目标是通过将 OpenGL ES API 调用转换为该平台可用的硬件支持的 API 之一,从而允许多个操作系统的用户无缝运行 WebGL 和其他 OpenGL ES 内容。换句话说,angle 就是把 opengl es 翻译成其他的语言,譬如说 D3D9 / OpenGL ES / Vulkan 等等。

    1.ANGLE 支持跨平台

    2.ANGLE支持渲染器

    ANGLE 支持 Windows / Mac / Linux / Android / Ios ;

    ANGLE 目前提供从 OpenGL ES 2.0、3.0 和 3.1 到 Vulkan、桌面 OpenGL、OpenGL ES、Direct3D 9 和 Direct3D 11 的转换;

    未来的计划包括 ES 3.2,转换到 Metal 和 MacOS、Chrome OS 和 Fuchsia 支持;

    关于**ANGLE 编译后面会有详细讲解,留意文章目录《OpenGL ES 基础》;**

    3.ANGLE下载地址

    google angle 下载地址:https://github.com/google/angle

    三.EGL 坐标系

    EGL 坐标系和 OpenGL ES 坐标系统一致,如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uCuafFjE-1663667287049)(https://www.codersrc.com/wp-content/uploads/2022/08/78805a221a988e7-2.png “OpenGL ES EGL 简介-猿说编程”)]

    很多人有一个误解:认为 OpenGL ES 纹理原点在左上角,因为如果绘制时纹理坐标设在左下角,绘制的图像就是上下倒立;而纹理坐标设制在左上角显示正常;

    原因:图像默认的原点在左上角,而 OpenGL ES 纹理读取数据或者 FBO 读取数据时都是以左下角开始,所以图像才会出现上下倒立的现象;

    在文章《OpenGL ES 名词解释(二)》中也有对坐标系有详细讲解;

    四.EGL 绘图步骤

    1. 获取 EGL Display 对象:eglGetDisplay()
    2. 初始化与 EGLDisplay 之间的连接:eglInitialize()
    3. 获取 EGLConfig 对象:eglChooseConfig()
    4. 创建 EGLContext 实例:eglCreateContext()
    5. 创建 EGLSurface 实例:eglCreateWindowSurface()
    6. 连接 EGLContext 和 EGLSurface:eglMakeCurrent()
    7. 使用 OpenGL ES API 绘制图形:gl_*()
    8. 切换 front buffer 和 back buffer 送显:eglSwapBuffer()
    9. 断开并释放与 EGLSurface 关联的 EGLContext 对象:eglRelease()
    10. 删除 EGLSurface 对象
    11. 删除 EGLContext 对象
    12. 终止与 EGLDisplay 之间的连接

    关于 **EGL API** **后面会有详细讲解,留意文章目录《OpenGL ES 基础》;**

    五.猜你喜欢

    1. OpenGL ES 简介
    2. OpenGL ES 版本介绍
    3. OpenGL ES 2.0 和 3.0 区别
    4. OpenGL ES 名词解释(一)
    5. OpenGL ES 名词解释(二)
    6. OpenGL ES GLSL 着色器使用过程
    7. OpenGL ES EGL 简介
  • 相关阅读:
    Python3.8+PyCharm安装和简单配置
    mysql事务
    scope=spfile/memory/both的区别
    网络原理之TCP-IP地址 & 子网掩码
    墨镜出口欧洲需要做哪些检测认证?
    2022 年牛客多校第七场补题记录
    关于电脑卡死如何开机、F8、安全模式
    在 LLM 架构中应用多专家模型
    6 MySQL常用的数据类型
    自动驾驶系(四)——环境感知之可行驶区域检测技术
  • 原文地址:https://blog.csdn.net/ZhaDeNianQu/article/details/126958365
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号