EGLImage与纹理
EGLImage代表一种由EGL客户API(如OpenGL,OpenVG)创建的共享资源类型。它的本意是共享2D图像数据,但是并没有明确限定共享数据的格式以及共享的目的,所以理论上来讲,应用程序以及相关的客户API可以基于任意的目的创建任意类型的共享数据。
关于EGLImage的一种使用情景就是通过它来创建一个2D纹理。相关函数原型声明如下:
EGLAPI EGLImageKHR EGLAPIENTRYeglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target,EGLClientBuffer buffer, const EGLint *attrib_list);
这里我们主要关注下target,buffer参数。target决定了创建EGLImage的方式,例如在Android系统中专门定义了一个称为EGL_NATIVE_BUFFER_ANDROID的Target,支持通过ANativeWindowBuffer创建EGLImage对象,而Buffer则对应创建EGLImage对象时使用数据。
使用方式如下:
假设我们通过Gralloc模块创建了一个ANativeWindowBuffer对象srcBuf,它将被当作EGLClientBuffer类型的参数传递给上述函数,调用形式如下:
EGLImageKHR eglSrcImage =eglCreateImageKHR(eglDisplay, EGL_NO_CONTEXT,
EGL_NATIVE_BUFFER_ANDROID,
(EGLClientBuffer)&sSrcBuffer,0);
创建了一个EGLImage对象后,我们可以通过它创建一个2D纹理对象,示例如下:
glGenTextures(1,&texID);
…
glBindTexture(GL_TEXTURE_2D,texID);
…
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D,eglSrcImage);//相当于一般情况下的glTexImage2D的效果
如果EGLClientBuffer的数据是YUV格式的,还可以使用纹理Target为:GL_TEXTURE_EXTERNAL_OES, 该Target也是主要用于从EGLImage中产生纹理的情景,并且它与GL_TEXTURE_2D不同,它只能用于此种情景,也就是说gl*Tex*Image*( GL_TEXTURE_EXTERNAL_OES,…)是非法的。
这种创建纹理的方式使得显示一些OpenGL ES本身并不支持的图像格式的数据成为可能,因为它将格式支持相关的工作移到到了EGLImage创建函数当中。
转载于:https://my.oschina.net/fuyajun1983cn/blog/263854
EGLImage与纹理相关推荐
- android 相机纹理,Android平台Camera实时滤镜实现方法探讨(五)--GLSurfaceView实现Camera预览...
前面有一篇探讨了如何在片段着色器中将YUV数据转换为RGB数据并显示,但采用samplerExternalOES将SurfaceTexture作为OpenGL外部纹理,需要使用GL_TEXTURE_E ...
- Mediacodec 如何硬件解码到纹理的
Mediacodec 如何硬件解码到纹理的 背景: 网上很多关于mediacodec,surface ,surfacetexture的源码分析,以及内部原理,但是都局限于各自的内容,今天我们就从med ...
- openxr runtime Monado 源码解析 源码分析:CreateSwapchain 画布 HardwareBuffer共享纹理 渲染线程 xrEndeFrame comp_renderer
monado系列文章索引汇总: openxr runtime Monado 源码解析 源码分析:源码编译 准备工作说明 hello_xr解读 openxr runtime Monado 源码解析 源码 ...
- CUDA C 纹理提取Texture Fetching
CUDA C 纹理提取Texture Fetching 一.参数曲面的纹理 使用纹理指定参数曲面属性. 二.CUDA C 纹理获取开发 用于计算纹理函数,根据纹理引用的各种属性返回的值的公式(请参见纹 ...
- 虚拟纹理与几何图像技术
虚拟纹理与几何图像技术 一. 基本图形学概念 图1. 几何与纹理. 曲面一般表示成三角网格和纹理图像,三角网格表示曲面的几何拓扑信息,纹理图像给出曲面的颜色材质等信息.将三角网格映射到平面区域的过程被 ...
- 基于颜色特征,形状特征和纹理特征的数字图像的检索(Digital Image Retrieval)MATLAB GUI实现
** 数字图像的检索 下载地址:代码.数据集下载地址 如需论文请联系:hqucuihao@163.com ** 1. 摘要 随着互联网发展的日新月异,人们对于信息的需求不再是简单的文字,大量的图像.语 ...
- 基于颜色特征,形状特征和纹理特征的数字图像的检索(Digital Image Retrieval)MATLAB GUI实现(本科毕业设计)
该程序实现的功能为:检索出指定的图像文件,并从检索出的图像中检索出指定的物体 . 1,主程序为Recognition和Recognition. 2.颜色特征,形状特征,纹理特征为对应的各子程序. 3. ...
- CS131专题-8:图像纹理
目录 1 什么是图像纹理 1.1 不规则纹理 1.2 规则纹理 2 纹理描述(提取方法) 3 纹理滤波器组 4 一些滤波器提取的纹理效果 5 使用高维向量描述纹理 6 图像纹理提取的应用 应用1:图像 ...
- Open3DGen:从RGB-D图像重建纹理3D模型的开源软件
点云PCL免费知识星球,点云论文速读. 文章:Open3DGen: Open-Source Software for Reconstructing Textured 3D Models from RG ...
最新文章
- 【转】Traceview的使用
- Linux系统命令三剑客之 awk
- QT5 动态链接库的创建和使用
- 【CodeForces - 438D】The Child and Sequence(线段树区间取模操作)
- 火热的云计算,你知道这些吗?
- idea取消vim模式
- mybatis注解的使用
- vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法 1
- 二阶切比雪夫多项式实现(scala版、python版)
- 一个在线的文件密码破解网站( rar文件、zip文件、pdf文件、ppt文件、xls文件)
- Docker启动报错“Job for docker.service failed because a configured resource limit was exceeded.
- LIN雨量传感器:拆解最低配的传感器8U0955559
- FFmpeg获取视频旋转角度rotate获取不到的问题解决
- 西电计科操作系统实验
- android 检测是否模拟器,Android全面检测设备是否模拟器
- ftp服务器为我方,对方发送数据,巡检光衰数据导入es
- layui 怎么设置点击图片放大_layui图片如何放大
- 嵌入式Linux的内核编译
- 嵌入式C语言自我修养:从芯片、编译器到操作系统-习题、笔记
- 2008北京九华山庄itpub年会有感
热门文章
- nonatomic,assign,copy,retain的区别
- u-boot-1.3.4移植到mini2440+128M nand boot(3)
- spring-amqp生产者手动ACK
- linux环境: shell初始化文件, for TCSH, CSH
- js运动 运动效果留言本
- python paramiko模块中设置执行命令超时值
- 繁星代码生成器0.91版 【视频】
- 使用PowerDesigner创建数据库表
- linux 查看 全部网卡 虚拟网卡 物理网卡
- php 输出 echo、print_r、print、var_dump 、die 区别