[发明专利]一种通用浏览器上检测webgl上下文的方法有效
申请号: | 202110930270.2 | 申请日: | 2021-08-13 |
公开(公告)号: | CN113791789B | 公开(公告)日: | 2023-08-04 |
发明(设计)人: | 任兴;李伟 | 申请(专利权)人: | 成都中鱼互动科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/20 |
代理公司: | 北京正华智诚专利代理事务所(普通合伙) 11870 | 代理人: | 陈航 |
地址: | 610000 四川省成都市中国(四川)自*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 浏览器 检测 webgl 上下文 方法 | ||
本发明公开了一种通用浏览器上检测webgl上下文的方法,包括以下步骤:S1:创建符合webgl标准的虚拟上下文,并对所有webgl接口创建钩子函数;S2:利用钩子函数,对webgl标准的源函数进行处理;S3:激活虚拟上下文,并根据源函数的处理结果进行webgl上下文检测。本发明提供一种不需要开发者修改自己代码就可以方便检测一帧渲染所调用的所有上下文的指令(包括每种指令调用次数)、当前上下文状态、webgl扩展支持情况、webgl显存使用数量(buffers和texture)、渲染片元数,从而方便排查故障并有目的性的优化项目。
技术领域
本发明属于webgl检测技术领域,具体涉及一种通用浏览器上检测webgl上下文的方法。
背景技术
目前市面上基于webgl的h5应用的开发越来越普及,但web端开发者们会发现因为webgl是一种基于状态机的上下文,当项目规模庞大,渲染的物体变多时,开发者们不知道状态机里到底做过什么事情,现在的上下文状态,是否指令间存在过度使用而浪费图像处理器的情况。所以很难排查并优化这种基于webgl的项目。
发明内容
本发明的目的是为了解决webgl上下文难排查的问题,提出了一种通用浏览器上检测webgl上下文的方法。
本发明的技术方案是:一种通用浏览器上检测webgl上下文的方法包括以下步骤:
S1:创建符合webgl标准的虚拟上下文,并对所有webgl接口创建钩子函数;
S2:利用钩子函数,对webgl标准的源函数进行处理;
S3:激活虚拟上下文,并根据源函数的处理结果进行webgl上下文检测。
进一步地,步骤S1中,webgl标准包括webgl虚拟指令基类和webgl虚拟对象基类;
虚拟上下文用于模拟浏览器上状态机的内部环境;
钩子函数用于调用webgl标准的源函数时,触发调用自定义函数。
进一步地,步骤S2包括以下子步骤:
S21:保存webgl标准中的源函数,并触发钩子函数,将webgl虚拟指令基类和webgl虚拟对象基类分别映射至虚拟上下文中的webgl指令和webgl对象;
S22:重写源函数,并对将源函数中的参数进行保存并处理。
进一步地,步骤S22中,对源函数中的参数进行处理的方法具体为:通过webgl指令记录由钩子函数产生的命令调用堆栈、调用时间戳、调用参数列表和参数列表的序列化接口;
调用钩子函数中的虚拟指令,将虚拟指令对应的原指令内的参数列表推入webgl虚拟对象基类的参数列表,并记录当前调用时间戳和编程语言的函数调用堆栈;创建虚拟指令对象,调用保存的源函数,将源函数产生的webgl对象的句柄号和上下文标签记录在webgl虚拟对象基类中。
进一步地,步骤S3中,进行webgl上下文检测的具体方法为:激活虚拟上下文中webgl指令和webgl对象的记录功能,使源函数的函数调用进入钩子函数的函数逻辑内,并对虚拟上下文和状态机做一份镜像文件,停止记录功能,根据记录结果进行webgl上下文检测。
本发明的有益效果是:本发明提供一种不需要开发者修改自己代码就可以方便检测一帧渲染所调用的所有上下文的指令(包括每种指令调用次数)、当前上下文状态、webgl扩展支持情况、webgl显存使用数量(buffers和texture)、渲染片元数,从而方便排查故障并有目的性的优化项目。
附图说明
图1为检测webgl上下文方法的流程图。
具体实施方式
下面结合附图对本发明的实施例作进一步的说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都中鱼互动科技有限公司,未经成都中鱼互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110930270.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种食品包装袋
- 下一篇:利用高效气相色谱检测白酒中手性乳酸乙酯的方法