河南省住房和城乡建设厅网站确认书,ip地址进入网站怎么做的,重庆网站建设帝维科技,网站建设中 页面源代码安卓上有许许多多使用OpenGL来渲染的原因#xff0c;比方说做特效/动画/硬解/人脸识别等等。渲染完成后如何从gpu中把数据快速读取出来也是高效图像处理中的重要的一环。
相对于glReadPixel的同步读取方式#xff0c;安卓GLES3.0提供了更高效快速的Hardwarebuffer读图方式比方说做特效/动画/硬解/人脸识别等等。渲染完成后如何从gpu中把数据快速读取出来也是高效图像处理中的重要的一环。
相对于glReadPixel的同步读取方式安卓GLES3.0提供了更高效快速的Hardwarebuffer读图方式Hardwarebuffer读图其原理与常用的GraphicBuffer比较类似其实现的都是cpu数据与textureId之间的数据映射。GraphicBuffer常用于SurfaceTexture中例如相机使用SurfaceTexture预览数据此时底层相机数据就是使用GraphicBuffer上传到opengl
此处就不赘述hardwarebuffer的具体使用主要是从安卓源码角度分析一下hardwarebuffer过程中同步参数如何使用。
AHardwareBuffer_lock方法可用于将textureId图像映射到具体的outVirtualAddress地址上其中该方法的第三个参数fence用于cpu和gpu之间的数据同步通常为使用eglDupNativeFenceFDANDROID方法将EGLSyncKHR转换为文件描述符来得到。 文件描述符通常需要在使用完成后调用close来关闭跟踪系统代码后发现AHardwareBuffer_lock方法内部有过针对该描述符的close所以调用该方法后无需再close