[发明专利]一种基于Hook技术获取OpenGL渲染画面的方法和系统有效
申请号: | 201510451494.X | 申请日: | 2015-07-28 |
公开(公告)号: | CN105069831B | 公开(公告)日: | 2018-05-29 |
发明(设计)人: | 邹光先;彭召龙 | 申请(专利权)人: | 广州爱拍网络科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 颜希文 |
地址: | 510665 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 帧缓存 自定义 渲染 函数调用 应用程序 绑定 自定义函数 对象关联 函数接管 画面读取 缓存对象 技术获取 技术实现 自定义帧 接管 替换 输出 期望 创建 应用 | ||
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中读取画面数据。
2.如权利要求1所述的一种基于Hook技术的获取OpenGL渲染画面的方法,其特征在于,在my_eglSwapBuffers函数中执行获取渲染画面的逻辑,包括以下步骤:
步骤1、判断自定义的帧缓存对象是否已经绑定到OpenGL Context中,如果已经绑定执行步骤2,否则执行步骤5;
步骤2、恢复已经保存的OpenGL Context状态和帧缓存对象;
步骤3、重渲染自定义帧缓存对象关联的Texture到默认帧缓存对象;
步骤4、从自定义Texture中读取图像数据;
步骤5、调用eglSwapBuffers函数;
步骤6、保存当前的OpenGL Context状态和帧缓存对象;
步骤7、绑定自定义的帧缓存对象到OpenGL环境中,应用程序执行OpenGL渲染操作时会将画面渲染到自定义的帧缓存对象中。
3.如权利要求1所述的一种基于Hook技术的获取OpenGL渲染画面的方法,其特征在于,执行my_glFramebufferRenderbuffer函数时,如果自定义的帧缓存对象已经绑定到OpenGLContext中,并且是设置帧缓存对象的深度缓冲区或者模板缓冲区参数时,用自定义的RenderBuffer对象关联自定义帧缓存对象的深度缓冲区和模板缓冲区。
4.如权利要求1所述的一种基于Hook技术的获取OpenGL渲染画面的方法,其特征在于,执行my_glFramebufferTexture2D函数时,如果自定义的帧缓存对象已经绑定到OpenGLContext中,并且是设置帧缓存对象的颜色缓冲区参数时,用自定义的Texture关联自定义帧缓存对象的颜色缓冲区。
5.如权利要求1所述的一种基于Hook技术的获取OpenGL渲染画面的方法,其特征在于,执行my_glGetIntegerv函数时,如果自定义的帧缓存对象已经绑定到OpenGL Context中,返回默认的帧缓存对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州爱拍网络科技有限公司,未经广州爱拍网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510451494.X/1.html,转载请声明来源钻瓜专利网。