[发明专利]一种基于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技术用自定义函数接管了各函数调用,使得在取图过程中,应用程序期望绑定或修改默认帧缓存对象时绑定或修改自定义帧缓存对象。 | ||
搜索关键词: | 帧缓存 自定义 渲染 函数调用 应用程序 绑定 自定义函数 对象关联 函数接管 画面读取 缓存对象 技术获取 技术实现 自定义帧 接管 替换 输出 期望 创建 应用 | ||
【主权项】:
1.一种基于Hook技术的获取OpenGL渲染画面的方法,适用于安卓系统中,其特征在于,包括如下步骤:执行Hook操作,用自定义函数接管应用程序的OpenGL函数,包括:用自定义my_eglSwapBuffers函数接管eglSwapBuffers函数调用;用自定义my_glBindFramebuffer函数接管glBindFramebuffer函数调用;用自定义my_glFramebufferRenderbuffer函数接管glFramebufferRenderbuffer函数调用;用自定义my_glFramebufferTexture2D函数接管glFramebufferTexture2D函数调用;用自定义my_glGetIntegerv函数接管glGetIntegerv函数调用;创建自定义帧缓存对象,该对象用于替换OpenGL当前的帧缓存对象,以便OpenGL把画面渲染到该帧缓存对象中;执行my_glBindFramebuffer函数时,如果期望绑定到默认帧缓存对象,实际会绑定到自定义帧缓存对象;创建自定义Texture,该Texture用于关联到自定义帧缓存对象的颜色缓冲区,以便能存储渲染到自定义帧缓存对象的画面;创建自定义的RenderBuffer,用该RenderBuffer对象关联自定义帧缓存对象的深度缓冲区和模板缓冲区;执行my_eglSwapBuffers,在my_eglSwapBuffers函数中处理取图逻辑,包括:保存和恢复OpenGL Context的状态或帧缓存对象、绑定自定义帧缓存对象到OpenGL Context中、重渲染自定义帧缓存对象关联的Texture到默认的帧缓存对象、以及从自定义帧缓存对象关联的Texture中读取画面数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州爱拍网络科技有限公司,未经广州爱拍网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510451494.X/,转载请声明来源钻瓜专利网。