opengl版本太低如何升级(OpenGL ES EGL eglDestroyContext)
目录
一. EGL 前言 二. EGL 绘制流程简介 三.eglDestroyContext 函数简介 四.eglDestroyContext 使用 四.猜你喜欢零基础 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 绘制流程简介
获取 EGL Display 对象:eglGetDisplay 初始化与 EGLDisplay 之间的连接:eglInitialize 获取 EGLConfig 对象:eglChooseConfig / eglGetConfigs 创建 EGLContext 实例:eglCreateContext 创建 EGLSurface 实例:eglCreateWindowSurface / eglCreatePbufferSurface 连接 EGLContext 和 EGLSurface 上下文 eglMakeCurrent 使用 OpenGL ES API 绘制图形:gl_* 切换 front buffer 和 back buffer 显示:eglSwapBuffer 断开并释放与 EGLSurface 关联的 EGLContext 对象:eglRelease 删除 EGLSurface 对象 eglDestroySurface 删除 EGLContext 对象 eglDestroyContext 终止与 EGLDisplay 之间的连接三.eglDestroyContext 函数简介
eglDestroyContext 用于销毁渲染 Context 上下文 ,如果有其它线程使用这个 Context 上下文时就要等到不使用时再销毁 ,否则立即销毁;
/*描述:用于销毁渲染 EGLContext *参数: * display:指定显示的连接 * context:EGLContext 上下文 * *返回值:成功是返回 EGL_TRUE ,失败时返回 EGL_FALSE */ EGLAPI EGLBoolean eglDestroyContext(EGLDisplay display, EGLContext context);可能返回错误:
EGL_FALSE is returned if destruction of the context fails, EGL_TRUE otherwise. 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.在使用 eglDestroyContext 摧毁上下文之前一定要记得通过 eglMakeCurrent 绑定当前上下文;
四.eglDestroyContext 使用
/******************************************************************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:OpenGL ES EGL eglDestroyContext //@Time:2022/08/04 07:30 //@Motto:不积跬步无以至千里 ,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! /******************************************************************************************/ void egl_demo() { EGLDisplay display = eglGetDisplay ( EGL_DEFAULT_DISPLAY ); eglInitialize ( display , 0, 0); EGLConfig config; eglChooseConfig ( display , attribs , & config , 1, & numConfigs ); EGLSurface surface = eglCreateWindowSurface ( display , config , ANativeWindow , NULL ); EGLContext context = eglCreateContext ( display , config , NULL , NULL ); eglMakeCurrent ( display , surface , surface , context ) while(true){ //opengl绘制 glxx(); eglSwapBuffers ( display , surface ); } eglDestroyContext ( display , context ); eglDestroySurface ( display , surface ); eglTerminate ( display ); }四.猜你喜欢
OpenGL ES 简介 OpenGL ES 版本介绍 OpenGL ES 2.0 和 3.0 区别 OpenGL ES 名词解释(一) OpenGL ES 名词解释(二) OpenGL ES GLSL 着色器使用过程 OpenGL ES EGL 简介 OpenGL ES EGL 名词解释 OpenGL ES EGL eglGetDisplay OpenGL ES EGL eglInitialize OpenGL ES EGL eglGetConfigs OpenGL ES EGL eglChooseConfig OpenGL ES EGL eglGetError OpenGL ES EGL eglCreateContext OpenGL ES EGL eglCreateWindowSurface OpenGL ES EGL eglCreatePbufferSurface OpenGL ES EGL eglMakeCurrent OpenGL ES EGL eglSwapBuffer OpenGL ES EGL eglDestroySurface OpenGL ES EGL eglDestroyContext本文由博客 - 猿说编程 猿说编程 发布!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!