OpenGL ES EGL eglQueryContext

目录

  • 一. EGL 前言
  • 二. EGL 绘制流程简介
  • 三.eglQueryContext 函数简介
  • 四.eglQueryContext 使用
  • 四.猜你喜欢

零基础 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 前言

EGLNativeDisplayType – 系统显示类型,标识你所开发设备的物理屏幕,DX/OPenGL ES/Metal/Vulkan….

EGLNativeWindowType – 系统窗口,渲染显示的窗口句柄

EGLDisplay – 关联 EGLNativeDisplayType 系统物理屏幕的通用数据类型,是平台上 WGL / GLX / AGL 的等价物

EGLSurface – 渲染区域,相当于 OpenGL ES 绘图的画布 (一块内存空间),用户想绘制的信息首先都要先绘制到 EGLSurface 上,然后通过 EGLDisplay 显示

EGLConfig – 对 EGLSurface 的 EGL 配置,可以理解为绘制目标 framebuffer 的配置属性

EGLContext – OpenGL ES 图形上下文

二. EGL 绘制流程简介

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

三.eglQueryContext 函数简介

eglQueryContext 用于查询渲染上下文相关信息,函数声明如下:

/*描述:用于查询渲染上下文相关信息*参数:*    display:指定显示的连接*    context:EGLContext 上下文*    attribute:查询渲染上下文相关信息 EGL_CONFIG_ID、EGL_CONTEXT_CLIENT_TYPE、EGL_CONTEXT_CLIENT_VERSION*     value:(输出参数)返回查询结果*返回值:成功是返回 EGL_TRUE,失败时返回 EGL_FALSE*/EGLBoolean eglQueryContext(	EGLDisplay display,EGLContext context,EGLint attribute,EGLint * value);

attribute 可以为下面值:

EGL_CONFIG_ID
Returns the ID of the EGL frame buffer configuration with respect to which the context was created.EGL_CONTEXT_CLIENT_TYPE
Returns the type of client API which the context supports (one of EGL_OPENGL_API, EGL_OPENGL_ES_API, or EGL_OPENVG_API).EGL_CONTEXT_CLIENT_VERSION
Returns the version of the client API which the context supports, as specified at context creation time. The resulting value is only meaningful for an OpenGL ES context.EGL_RENDER_BUFFER
Returns the buffer which client API rendering via the context will use. The value returned depends on properties of both the context, and the surface to which the context is bound:If the context is bound to a pixmap surface, then EGL_SINGLE_BUFFER will be returned.If the context is bound to a pbuffer surface, then EGL_BACK_BUFFER will be returned.If the context is bound to a window surface, then either EGL_BACK_BUFFER or EGL_SINGLE_BUFFER may be returned. The value returned depends on both the buffer requested by the setting of the EGL_RENDER_BUFFER property of the surface (which may be queried by calling eglQuerySurface), and on the client API (not all client APIs support single-buffer rendering to window surfaces).If the context is not bound to a surface, such as an OpenGL ES context bound to a framebuffer object, then EGL_NONE will be returned.Notes
Attributes EGL_CONTEXT_CLIENT_TYPE and EGL_RENDER_BUFFER are supported only if the EGL version is 1.2 or greater.Attribute EGL_CONTEXT_CLIENT_VERSION is supported only if the EGL version is 1.3 or greater.

可能返回错误:

EGL_FALSE is returned on failure, EGL_TRUE otherwise. value is not modified when EGL_FALSE is returned.EGL_BAD_DISPLAY is generated if display is not an EGL display connection.EGL_NOT_INITIALIZED is generated if display has not been initialized.EGL_BAD_CONTEXT is generated if context is not an EGL rendering context.EGL_BAD_ATTRIBUTE is generated if attribute is not a valid context attribute.

类似 eglDestroyContext 摧毁上下文一样 ,eglQueryContext** 使用**之前一定要记得通过 eglMakeCurrent 绑定当前上下文;

四.eglQueryContext 使用

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES EGL eglQueryContext
//@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 )//查询 OpenGL 版本
int clientVersion;
eglQueryContext(m_eglDisplay, m_eglContext, EGL_CONTEXT_CLIENT_VERSION, &clientVersion);//clientVersion = 3
printf("EGLContext created, client version %d\n", clientVersion);//摧毁上下文
eglDestroyContext ( display , context );
eglDestroySurface ( display , surface );
eglTerminate ( display );

四.猜你喜欢

  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 简介
  8. OpenGL ES EGL 名词解释
  9. OpenGL ES EGL eglGetDisplay
  10. OpenGL ES EGL eglInitialize
  11. OpenGL ES EGL eglGetConfigs
  12. OpenGL ES EGL eglChooseConfig
  13. OpenGL ES EGL eglGetError
  14. OpenGL ES EGL eglCreateContext
  15. OpenGL ES EGL eglCreateWindowSurface
  16. OpenGL ES EGL eglCreatePbufferSurface
  17. OpenGL ES EGL eglMakeCurrent
  18. OpenGL ES EGL eglSwapBuffer
  19. OpenGL ES EGL eglDestroySurface
  20. OpenGL ES EGL eglDestroyContext
  21. OpenGL ES EGL eglQueryContext

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

终于有人把5G和边缘计算的关系说清楚了 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者: pala来源:边缘计算社区5G三大应用场景为:增强…

Jenkins_安装基础软件_入门试炼03

应用部署服务器准备: 本章对Linux系统简介、安装Java环境、安装并配置 Git、安装并配置 Maven、安装并配置 Tomcat、以及将部署服务器配置到Jenkins上。 一、Linux操作系统需要做的准备 1. 确定IP地址2. 确认登录用户名密码3. 查看/启动ssh服务4. 确认可以远程连接…

Jenkins_GithubFork程序_入门试炼04

部署应用介绍与前期准备: 本章讲解Fork github上的应用、部署应用下载、简略分析部署应用、 数据库准备、本地运行部署应用、将更新后的代码上传到github。 一、Github的介绍 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版…

用Jenkins自动化搭建测试环境_入门试炼05

Jenkins自动化部署任务开发: 本章简述自动化构建、部署过程、 创建Jenkins 任务,填写部署代码、实际运行部署任务。 一、部署过程介绍 简述自动化部署过程: 【开始】-【Git同步最新代码】-【maven打包编译】-【停止Tomcat】-【部署应用】-【…

OpenGL ES OpenGL WebGL EGL WGL 区别

目录 一.OpenGL二.OpenGL ES三.WebGL 四.EGL 和 WGL 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学…

用Jenkins自动化搭建测试环境_入门试炼06

本章研发修改程序代码、 运行Jenkins环境发布任务、新环境上验证研发更改。 实战 1. 修改部署应用源代码2. commit修改内容,push代码到github3.执行Jenkins自动化部署任务4. 待任务完成后,打开浏览器查看部署结果 【从修改代码】-到【推送git库】-再到…

为什么给黑洞拍照需要这么长时间?

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:中国科普博览;左文文(中科院上海天文台&#…

OpenGL ES freeglut 下载和使用

目录 一.freeglut 简介二.freeglut 下载五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >…

使用Jenkins搭建自动化测试环境_环境准备_入门试炼01

平台介绍: 前置准备环境:数据库MySQL,测试环境OS CentOS。 文章目录1. 平台介绍2. 自动化测试环境部署带来的幸福感:2.1. 程序自动部署,节约时间2.2. 环境一键部署,不怕研发频繁修改代码1. 平台介绍 2. 自动化测试环境…

与云原生及开源大神们的第二次亲密接触 | 全议程重磅发布

戳蓝字“CSDN云计算”关注我们哦!CNCF主办的中国最大规模开源与云原生大会有来自阿里巴巴、百度、华为、腾讯和雅虎日本的演讲嘉宾,加上Linux基金会的Open Source Summit。加利福尼亚州旧金山,2019年4月10日 —— 云原生计算基金会&#xff0…

OpenGL ES glew 下载和使用

目录 一.glew 简介二.glew 下载五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> Op…

Storm精华问答 | 遇到这些错误日志该如何解决?

分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当…

企业实战(Jenkins+GitLab+SonarQube)_01_Jenkins下载

Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务&#x…

OpenGL ES glfw 下载和使用

目录 一.glfw 简介二.glfw 下载三.glfw 编译四.glfw 使用 1.OpenGL glfw glad 效果演示2.OpenGL glfw glad 《源码下载》 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 &…

企业实战(Jenkins+GitLab+SonarQube)_04_Jenkins安装推荐插件

Jenkins如何安装推荐插件? 接上一篇: 企业实战03_Jenkins登录https://blog.csdn.net/weixin_40816738/article/details/90383694 文章目录一、首次插件安装1. 选择推荐的插件进行安装(首次建议使用)2. 安装推荐的插件下载中二、企业级推荐插件安装2.1.2.…

OpenStack绝非昨日黄花 | 人物志

戳蓝字“CSDN云计算”关注我们哦!人物志:观云、盘点、对话英雄。以云计算风云人物为核心,聚焦个人成长、技术创新、产业发展,还原真实与鲜活!OpenStack,这个迄今为止最为成功的开源项目,已经走过…

PyQt5和Qt designer的详细安装教程

Qt designer界面和所有组件功能的详细介绍参考:https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001.5501 目录 0. 写在前面1. Anaconda创建虚拟环境2. 安装PyQt5和Qt designer3. 测试安装成功 0. 写在前面 Qt Designer是Qt提供的一种…

OpenGL ES glut glew glfw glad freeglut

目录 一.简介 1.freeglut2.glew3.glut4.glfw5.glad 二.分类 1.窗口管理2.函数加载 三.组合使用 1.freeglut glew2.glfw glew3.glfw glad 四.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL…

企业实战(Jenkins+GitLab+SonarQube)_05_Jenkins创建管理员用户

Jenkins如何创建管理员用户? 接上一篇:企业实战04_Jenkins安装推荐插件https://blog.csdn.net/weixin_40816738/article/details/90383700 文章目录1. 创建管理员用户2. 请求地址Windows和Linux2.1. Windows的浏览器访问地址:2.2. Linux的浏览…

一张“黑洞”照片需半吨重硬盘?更逆天的操作还有这些……

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!策划 | 孙浩峰作者 | 清儿爸编辑 | LD出品 | CSDN 云计算这两天,全世界的大…