[发明专利]一种基于Hook技术获取OpenGL渲染画面的方法和系统有效
申请号: | 201510451494.X | 申请日: | 2015-07-28 |
公开(公告)号: | CN105069831B | 公开(公告)日: | 2018-05-29 |
发明(设计)人: | 邹光先;彭召龙 | 申请(专利权)人: | 广州爱拍网络科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 颜希文 |
地址: | 510665 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 帧缓存 自定义 渲染 函数调用 应用程序 绑定 自定义函数 对象关联 函数接管 画面读取 缓存对象 技术获取 技术实现 自定义帧 接管 替换 输出 期望 创建 应用 | ||
一种基于Hook技术实现安卓应用获取OpenGL渲染画面的方法和系统,通过Hook技术用自定义的my_eglSwapBuffers函数接管OpenGL应用程序的eglSwapBuffers函数调用,通过创建自定义的帧缓存对象去替换OpenGL当前的帧缓存对象,当OpenGL执行渲染操作时,渲染结果会输出到自定义的帧缓存对象中,然后从自定义的帧缓存对象关联的Texture中把OpenGL渲染画面读取出来。该方法还通过Hook技术用自定义函数接管了各函数调用,使得在取图过程中,应用程序期望绑定或修改默认帧缓存对象时绑定或修改自定义帧缓存对象。
技术领域
本发明涉及一种安卓应用获取OpenGL渲染画面的技术,确切的说,涉及一种基于Hook技术的方法,该方法通过Hook技术用自定义的函数接管OpenGL应用程序的渲染函数调用,在不改变基于OpenGL的应用程序原有的应用层代码逻辑、并且不影响基于OpenGL的应用程序渲染效果的情况下获取OpenGL渲染画面,属于安卓应用领域。
背景技术
在计算机程序设计中,Hook是一种通过截取函数调用,或者截取软件组件间传递的消息或事件,来改变或增加操作系统,或者应用程序,或者其他软件组件的行为的一种技术。处理截取函数调用、事件或消息的代码称为“Hook”。
OpenGL(Open Graphics Library)是定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口,它用于三维图象(二维的亦可),是一个功能强大,调用方便的底层图形库。OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
安卓系统使用OpenGL ES的标准接口来支持2D和3D图形渲染功能,经过加载顶点、图元信息、纹理等一系列步骤,把画面渲染到帧缓冲区里,并最终显示在屏幕上。
随着安卓系统越来越受欢迎,以及移动应用不断的增长,在安卓系统中越来越来多的基于OpenGL的应用需要获取OpenGL渲染画面的功能。安卓系统中现有的获取OpenGL渲染画面的方法是结合基于OpenGL的引擎的源代码实现的,然而,该方法存在一些缺陷,首先,对于没有OpenGL渲染源代码的OpenGL应用则不能用该方法实现,再者,由于基于OpenGL的引擎各种各样,实现的方式也各有差异,需要针对不同的引擎做特殊的处理,没有一个通用的方案能实现,这样会导致开发难度增加,并且代码的维护成本也会很高。
发明内容
鉴于现有技术中存在的问题,本发明的目的在于提出一种安卓系统中不依赖于OpenGL应用程序源代码、不依赖于特定的基于OpenGL的引擎、通用的方法来获取OpenGL渲染画面。
为了达到上述目的,本发明提出了一种安卓系统中基于Hook技术的获取OpenGL渲染画面的方法,包括如下步骤:
通过Hook技术用自定义的my_eglSwapBuffers函数接管OpenGL应用程序的eglSwapBuffers函数调用。
通过Hook技术用自定义的my_glBindFramebuffer函数接管OpenGL应用程序的glBindFramebuffer函数调用。
通过Hook技术用自定义的my_glFramebufferRenderbuffer函数接管OpenGL应用程序的glFramebufferRenderbuffer函数调用。
通过Hook技术用自定义的my_glFramebufferTexture2D函数接管OpenGL应用程序的glFramebufferTexture2D函数。
通过Hook技术用自定义的my_glGetIntegerv函数接管OpenGL应用程序的glGetIntegerv函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州爱拍网络科技有限公司,未经广州爱拍网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510451494.X/2.html,转载请声明来源钻瓜专利网。