Android-NDK-EGL

Modern OpenGL ES: ndk编程——画一个三角形之创建EGL窗口 上一节我们 知道了如何用ndk 来创建一个 Activity 这一节,我们来创建 GL 的窗口 上一节已经知道, Khronos Group 为我们提供了 EGL API 来帮助我们创建 窗口,同步窗口绘制,管理窗口渲染。 1 与窗口系统通信 EGL在OpenGL ES 和 本地窗口系统之间 提供了一个 "glue"层。 在EGL 决定那种类型的绘制surface可以用之前 阅读详情

EGL的定义

EGL是一个接口,它位于渲染API如OpenCL,OpenGL,OpenGL ES和底层系统的中间。EGL提供了用来创建渲染surfaces的机制,在它上面客户端的api能够绘制,创建图像的上下文和同步客户端api和渲染api。

EGL的操作

EGL的类型

EGLBoolean,EGL_TRUE, EGL_FALSE

EGLint:是一个整数类型

EGLAttrib:是一个整数类型,经常被用来代表句柄和指针的值在属性列表中。

EGLContext:代表了一个客户端API的上下文。依赖于客户端的API,代表一个抽象机器的状态向量描述了客户端API和允许执行客户端的API命令。

EGLIMage:代表了EGLImage对象的句柄。

EGLSurface:是一个不透明的类型,代码客户端api可以绘制内容在上面的surface

EGLSync:代表了一个一个sync对象的句柄

EGLTIme:代表以ns为单位的时间

Displays

EGLDisplay是一个抽象的可以被绘制的display。

渲染上下文和绘制的surfaces

EGL的一个目的是:提供一个方式创建客户端API渲染上下文和把他们关联到绘制的surfaces.

EGL定义了几种类型的绘制surface,包括windows(用于onScreen渲染),pbuffers(用于离屏渲染),和pixmaps(用于丽萍渲染到buffer,可以通过原生api进行访问),统称为GEGLSurface。

EGLSSurfaces的创建依赖EGLConfig.EGLConfig描述了颜色buffer的深度、类型,量化和辅助buffer(深度,模版 buffers)等。

辅助buffer和EGLSurce相关,不是和上下。如果几个上下文写到同一个surface,那么他们讲共享这些buffer。

一个上下文必须和一个EGLSurface进行相关,而且是兼容,如果:

1)支持颜色buffer是同样的类型

2)颜色buffer和辅助buffer是同样的深度

渲染模式

支持两种渲染模式:back bufferedhe single bufferd

back buffered:被window和pbuffer surfaces使用。颜色buffer使用的内存由EGL来分配。当client完成画完一个帧时,这个备份buffer会拷贝到一个可视的窗口,通过eglSwapBuffers.PBuffer有一个备份buffer,但是没有关联的window,所以备份buffer不需要拷贝。

sigle buffered的渲染,被pixmap surfaces使用。color buffer的内存分配发生在surface的创建时。当client完成绘制一帧是,这个native pixmap包含最终图像。

都可以通过eglCopyBuffers来拷贝buffer到指定的pixmap。

原生surface的坐标系统

原生窗口的坐标系统和opengl是相反的。原生窗口的(0,0)坐标在左上角,但是client却在左下角。client渲染到窗口和pixmpa必须逆转字节的y坐标,当访问的颜色buffer在原生窗口时。

EGL Function and Errors

Errors

eglGetError(void)

eglGetPlatformDisplay,

eglInitialize(EGLDisplay dpy,EGLint *major,EGLint *minor);

利用EGL在android上使用C/C++写OpenGL ES程序 使用Native代码GLSurfaceView 在Java层使用EGL 在native层使用EGL 很多教程都是在C/C++写的OpenGL的代码,其中有很多优秀的框架,除了前面提过的Assimp库外,还有很强大的库glm,从另外一个角度来看,在学习EGL的时候,很多的资料都是C语言的代码,我在android上写OpenGL ES的代码似乎从来没见过那些代码,不使用一下总觉得缺少点什么。事实上,An 阅读详情

相关推荐

【NDK】EGL/egl.h: No such file or directory

【NDK】EGL/egl.h: No such file or directory

突围 1295

EGL综述

参考: https://www.khronos.org/registry/EGL/specs/eglspec.1.5.pdf ## 什么是EGL EGL是支持多平台、多操作系统的,比如安卓、Unix、Windows等。为了扩展性,EGL本身与平台渲染API的定义是独立的。 EGL支持OpenVG、OpenGL、OpenGL ES等多种Client API ### EGL的数据类型 EGLBoolean:布尔值 EGLint:整数 EGLAttrib:表示属性的整数 EGLCon..

Focustc 1159

详解modbus TCP通讯,并利用其实现欧姆龙PLC和西门子PLC的通讯

大家好,之前需要更新的MQTT通讯【2】因为硬件不足还不能发布出来,但最近在项目中涉及到西门子和欧姆龙之间的modbus TCP通讯,想到modbus TCP通讯是个非常常见并广泛使用的通讯协议,今天就结合最近做的测试给大家好好讲解一下,先提示一下,这边只给大家讲解如何实现,至于报文是什么,如何用socket来编写功能块或dll这边不会讲解,这块我会根据私信的小伙伴数量来考虑要不要出一篇如何用ST语言来编写modbus TCP功能块的博客。

dy186187的博客 1万+

【OpenGL ES】EGL简介

【参考-khronos-egl】https://www.khronos.org/egl 【参考-khronos-egl-api(目前共34个API)】https://www.khronos.org/registry/EGL/sdk/docs/man/ 【参考-khronos-egl-intro】https://www.khronos.org/registry/EGL/sdk/docs/man/h

Making Life Better. Making Others Better. 2万+

NXP S32K1 SPI驱动实战:从配置到DMA传输的完整流程解析

本文深入解析了NXP S32K1系列MCU的SPI驱动开发全流程。基于S32 Design Studio环境,详细阐述了从引脚配置、LPSPI模块初始化,到实现阻塞、中断及DMA三种传输模式的实战代码与配置要点。文章重点剖析了DMA传输的配置细节与性能优化,旨在帮助开发者构建高效、稳定的嵌入式SPI通信,并提供了SPI Flash驱动的综合案例。

blue42的博客 716

【02】【VisionMaster V4.0.0 】安装教程—— 授权文件更新报错:应用程序与本地LM通讯出错(怀疑电脑加密 和 上网受限 造成的 )

本文详细介绍了海康VisionMaster 4.0试用版的安装流程及常见问题解决方案。主要内容包括:1)从官网下载基础安装包、试用补丁和授权文件;2)按顺序安装主程序、补丁和授权文件;3)针对授权失败问题提供两种解决方案(更换未加密电脑或使用加密狗);4)说明试用版的功能限制(30天试用期、2个流程限制等)。文章特别指出电脑加密可能导致授权失败,并提供了安装报错时的处理建议,为初次使用者提供了完整的安装指导。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 7171

OPENGL ES常用函数功能总结

OPENGL ES常用函数功能总结1.创建缓冲区对象void glGenBuffers(GLsizei n, GLuint *buffers); //在buffers数组中返回当前n个未使用的名称,表示缓冲区对象 GLboolean glIsBuffer(GLuint buffer); //判断是否是缓冲区对象2.激活缓冲区对象void glBindBuffer(GLenum target, GLu

huazi5dgan的专栏 1435

保姆级教程:用GROMACS 2022.4的拉伸模拟(SMD)加速蛋白-蛋白组装过程

本文详细介绍了如何使用GROMACS 2022.4的拉伸分子动力学模拟(SMD)技术加速大蛋白组装过程。通过CHARMM36力场和SMD技术,将传统需要数月的蛋白结合过程缩短至数天,大幅提升模拟效率。文章包含参数设计、索引组创建、周期性边界处理等实战技巧,并提供了完整的GPU加速工作流和常见问题解决方案。

weixin_30338481的博客 445

OpenGL ES EGL eglMakeCurrent

系统显示类型,标识你所开发设备的物理屏幕,DX/OPenGL ES/Metal/Vulkan….– 系统窗口,渲染显示的窗口句柄EGLDisplay– 关联 EGLNativeDisplayType 系统物理屏幕的通用数据类型,是平台上 WGL / GLX / AGL 的等价物EGLSurface– 渲染区域,相当于 OpenGL ES 绘图的画布 (一块内存空间),用户想绘制的信息首先都要先绘制到 EGLSurface 上,然后通过 EGLDisplay 显示EGLConfig。

猿说编程 2576

动力学约束下的运动规划算法——状态栅格规划器(State Lattice Planner)

A*、RRT等算法建立的用于路径搜索的图模型是不考虑机器人的动力学约束的,其构建的图模型的两个相邻节点之间的路径可能是不可行的,或者很难被机器人跟踪的,现在我们想要使得图中相邻两个节点间的连接是一种满足动力学约束的可行的连接,那么如何构建一个这样的图呢? 构建这样的图通常有两种方法:第一种是基于控制空间的采样(正向方法)

慕羽★的博客 3105

qiankun 主子应用部署教程(Nginx 小白版)

本地开发:不用 Nginx,直接localhost:端口即可。本地模拟线上:用hosts + Nginx + 自定义域名,效果和生产接近。线上部署主应用只要配置 history 模式子应用必须支持 CORS + history + 缓存能跑是因为默认 server 兜底,但推荐写真实域名。主应用 vs 子应用的 Nginx 配置区别为什么本地和线上表现不一样history 模式 + 跨域的最佳实践。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 999

在BlackBerry上使用OpenGL绘图(三):OpenGL样例结构分析

3 OpenGL样例结构分析 运行OpenGL样例之后,需要进一步分析样例中代码,才能更好地理解样例的工作机制。在开发环境中打开包“com.rim.samples.device.opengldemo”,可以看到其中有五个类,分别是Cube、CubeRenderer、OpenGLDemo、OpenGLScreen和Renderer。另外,在目录“res\img”中还有两个图像文件,BlackBer...

blogfeifei 209

Python爬虫实战:实时监控美国SEC官网文件更新,助你第一时间掌握市场动态

在资本市场中,信息就是财富。美国证券交易委员会(SEC)官网公开了大量公司披露文件,涵盖财报、招股说明书、内幕交易等重要信息。对投资者、分析师及法律合规人员来说,实时监控这些公开文件具有重要价值。

2201_76125261的博客 594

Android NDK-EGL 初级

Android NDK-EGL 初级 在最近的工作中,发现很少有资料直接介绍android EGL的。 在翻越GLSurfaceView和Skia的源码之后,将我自己的NDK-EGL编程整理如下,供有需要的开发者取用 什么是EGL EGL at a glance EGL provides mechanisms for creating rendering surfaces onto which client APIs like OpenGL ES and OpenVG can draw, creates g

安仔的博客 4207

仿真学习系列(二):ADS仿真直观理解方波与频谱分量的关系

在高速电路设计中,我们常常听到一句话:“信号其实不是电压在传输,而是频率在传播。” 这句话看似抽象,却揭示了信号世界的核心本质——任何时域波形,都可以被拆解为一系列不同频率的正弦波。 那么,一个看似简单的方波,究竟由哪些频率成分组成?为什么在示波器上,有的方波上升沿又快又“方”,而有的却“圆润”得多?这些差异背后,隐藏的正是高频分量的力量。 本文将通过使用 Keysight ADS,从零搭建仿真电路,直观地观察方波与其谐波成分之间的关系。

案例文章,高速信号 814

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

在Android中用ndk层egl/opengl es显示java层打开的图像

本文介绍了如何在Android的java层打开一张图片,并在native层进行渲染的方法。可以分为两个部分: 1. 在java层打开图片并通过jni接口将图像数据传给native层; 2. 在ndk层通过egl和opengl es来渲染图像;首先,我们建立一个空的工程,并在activity_main.xml文件中添加SurfaceView:<SurfaceView android:id="@+i

PacMan的专栏 4201

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OpenglEs之EGL环境搭建

Opengl ES开篇之EGL简介

u012944685的专栏 1832

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android NDK开发1----EGL介绍

Android 图像开发简介

sdewenking的专栏 711

c++ callback里执行killtimer不生效_NDK系列如何使用C/C++编写带EGL功能的NativeActivity...

NDK系列-如何使用C/C++编写带EGL功能的NativeActivity1、示例地址:https://github.com/android/ndk-samples/tree/master/native-activity2、示例功能:1、示例应用会使用EGL在整个屏幕上渲染一种颜色,然后根据检测到的运动,随之更改局部的颜色。2、示例应用只需要C/C++代码编写,不包含任Java源代码,...

weixin_39802962的博客 102

Android 音视频 - EGL 源码解析以及 C++ 实现

OpenGL 是一个跨平台的 API,而不同的操作系统(Windows,Android,IOS)各有自己的屏幕渲染实现。所以 OpenGL 定义了一个中间接口层 EGL(Embedded Graphics Library)标准,具体实现交给各个操作系统本身。

irainsa的博客 539

android c++ 环境搭建,android c++ OpenGLES Egl 环境搭建

android搭建opengles 的egl环境之前使用java已经写过,但是一般实际开发opengles的相关代码都在native层,因为native的话效率会比java高很多,步骤都是一致的,只是换一种语言写而已。之前使用java写的opengles egl环境搭建点击下面链接:https://www.jianshu.com/p/ce3496ab9e02步骤都是一样的:1、得到Egl实例2、得...

weixin_33584549的博客 614

android ndk问题,Android NDK 遇到的问题

Android NDK 是一个不错的工具,在使用时也会遇到问题(1)fatal error: EGL/egl.h: No such file or directory一个很简单的程序,调用了eglGetDisplay函数,因为这个函数是在 EGL/egl.h 文件中声明的,因此#include 包含了这个头文件,但是在编译时,总是提示上面的错误,找不到 EGL/egl.h 这个文件;对比NDK ...

weixin_31302227的博客 748

vscode编写c 如何查看汇编_NDK系列如何使用C/C++编写带EGL功能的NativeActivity

NDK系列-如何使用C/C++编写带EGL功能的NativeActivity1、示例地址:https://github.com/android/ndk-samples/tree/master/native-activity2、示例功能:1、示例应用会使用EGL在整个屏幕上渲染一种颜色,然后根据检测到的运动,随之更改局部的颜色。2、示例应用只需要C/C++代码编写,不包含任Java源代码,...

weixin_32737183的博客 414

NDK_OpenGLES_3_0环境配置:从零搭建Android OpenGL开发环境

NDK_OpenGLES_3_0是一套Android OpenGL ES 3.0从入门到精通的系统性学习教程,通过本指南,你将快速掌握如何从零搭建完整的Android OpenGL开发环境,开启高效的图形开发之旅。 ## 📋 开发环境准备清单 搭建Android OpenGL ES 3.0开发环境需要准备以下工具和资源: - Android Studio 4.0及以上版本 - NDK 21.

gitblog_01139的博客 886

安卓 NDK 秘籍(二)

在本章中,我们将涵盖以下内容:使用 OpenGL ES 1.x API 绘制 2D 图形并应用变换使用 OpenGL ES 1.x API 绘制 3D 图形并照亮场景使用 OpenGL ES 1.x API 将纹理映射到 3D 对象使用 OpenGL ES 2.0 API 绘制 3D 图形使用 EGL 显示图形开放图形库(OpenGL)是一个跨平台的工业标准 API,用于生成 2D 和 3D 图形。它定义了一个与语言无关的软件接口,用于图形硬件或软件图形引擎。OpenGL ES是针对嵌入式设备的 OpenG

龙哥盟 1162
上一篇: Android-NDK-audio-echo
下一篇: android-NDK-Opengl
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值