(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202211095506.6
(22)申请日 2022.09.08
(65)同一申请的已公布的文献号
申请公布号 CN 115167949 A
(43)申请公布日 2022.10.11
(73)专利权人 西安芯瞳半导体技 术有限公司
地址 710065 陕西省西安市高新区唐延南
路8号泰维智链中心T1 3 01室
(72)发明人 杜文华 李彪 刘伟 曹伟
(74)专利代理 机构 西安维英 格知识产权代理事
务所(普通 合伙) 6125 3
专利代理师 沈寒酉 王哲
(51)Int.Cl.
G06F 9/445(2018.01)(56)对比文件
CN 113485773 A,2021.10.08
CN 110659024 A,2020.01.07
CN 113838180 A,2021.12.24
CN 112764797 A,2021.0 5.07
US 10074206 B1,2018.09.1 1
US 2016011890 A1,2016.01.14
王有禄等.Andro id系统下基 于NDK方式的图
形开发. 《计算机系统应用》 .2012,(第12期),
审查员 辛小霞
(54)发明名称
高版本OpenGL函数适配低版本应用程序的
方法、 装置及 介质
(57)摘要
本发明实施例公开了一种 高版本OpenGL函
数适配低版本应用程序的方法、 装置及介质, 该
方法可以包括: 在应用程序启动前预加载动态库
文件; 其中, 所述动态库文件包括由高版本
OpenGL函数模拟所得到的在高版本OpenGL函数
中已被摒弃的低版本OpenGL函数; 在所述应用程
序运行过程中, 相应于被执行的Open GL函数在高
版本OpenGL函数库中不存在, 则调用所述动态库
文件中所模拟的且与所述被执行的OpenGL函数
同名的低版本Open GL函数; 相应于 所述被执行的
OpenGL函数在所述高版本Open GL函数库中存在,
则直接调用高版本OpenGL函数库中与所述被执
行的OpenGL 函数同名的OpenGL 函数。
权利要求书2页 说明书13页 附图7页
CN 115167949 B
2022.12.06
CN 115167949 B
1.一种高版本OpenGL 函数适配低版本应用程序的方法, 其特 征在于, 所述方法包括:
在应用程序启动前预加载动态库文件; 其中, 所述动态库文件包括由高版本OpenGL函
数模拟所 得到的在高版本OpenGL 函数中已被 摒弃的低版本OpenGL 函数;
在所述应用程序 运行过程中, 相应于被执行的Op enGL函数在高版本Op enGL函数库中不
存在, 则调用所述动态库文件中所模拟的且与所述被执行的OpenGL函数同名的低版本
OpenGL函数;
相应于所述被执行的Op enGL函数在 所述高版本Op enGL函数库中存在, 则直接调用高版
本OpenGL 函数库中与所述被执 行的OpenGL 函数同名的OpenGL 函数;
其中, 所述方法还 包括:
根据应用程序与本地的高版本OpenGL函数库筛选获得需要由高版本OpenGL函数模拟
的低版本OpenGL 函数列表;
利用高版本Op enGL函数库中的函数, 对所述函数列表中的每个低版本Op enGL函数进行
模拟, 并将模拟得到的低版本OpenGL 函数封装为动态库文件;
其中, 所述利用高版本OpenGL函数库中的函数, 对所述函数列表中的每个低版本
OpenGL函数进行模拟, 并将模拟得到的低版本OpenGL 函数封装为动态库文件, 包括:
使用高版本OpenGL函数模拟低版本OpenGL函数前引入默认的顶点着色器和片段着色
器的Shader以及其对应的输入、 输出参数;
根据OpenGL函数所定义的功能, 利用高版本OpenGL函数库 中的一个或多个函数, 对所
述函数列表中的每个低版本OpenGL函数进行模拟并使用全局上下文记录模拟过程中高版
本OpenGL函数所使用的函数信息; 所述函数信息至少包括: 函数调用次序、 函数调用参数次
序;
将使用高版本OpenGL 函数模拟完成的低版本OpenGL 函数列表封装为动态库文件。
2.根据权利 要求1所述方法, 其特征在于, 所述根据应用程序与本地的高版本OpenGL函
数库筛选获得需要由高版本OpenGL 函数模拟的低版本OpenGL 函数列表, 包括:
对比应用程序与高版本Op enGL函数库中的函数, 将处于应用程序中且高版本Op enGL函
数库中不存在的低版本OpenGL 函数添加至所述 函数列表; 或者,
预先执行应用程序以通过图形API接口调用高版本OpenGL函数库, 将报错信息中的低
版本OpenGL 函数添加至所述 函数列表。
3.根据权利要求1所述方法, 其特征在于, 所述在应用程序启动前预加载动态库文件,
包括:
在应用程序启动前采用LD_PRELOAD方式预加载 所述动态库文件; 或者,
在应用程序启动前采用ELF PLT HOOK方式预加载 所述动态库文件; 或者,
在应用程序启动前采用M HOOK方式预加载 所述动态库文件。
4.一种高版本OpenGL函数适配低版本应用程序的装置, 其特征在于, 所述装置包括: 预
加载部分、 第一调用部分和第二调用部分; 其中,
所述预加载部分, 经配置为在应用程序启动前预加载动态库文件; 其中, 所述动态库文
件包括由高版本OpenGL函数模拟所得到的在高版本OpenGL函数中已被摒弃的低版本
OpenGL函数;
所述第一调用部分, 经配置为在所述应用程序运行过程中, 相应于被执行的OpenGL函权 利 要 求 书 1/2 页
2
CN 115167949 B
2数在高版本 OpenGL函数库中不存在, 则调用所述动态库文件中所模拟的且与所述被执行的
OpenGL函数同名的低版本OpenGL 函数;
所述第二调用部分, 经配置为相应于所述被执行的Op enGL函数在 所述高版本Op enGL函
数库中存在, 则直接调用高版本OpenGL函数库中与所述被执行的OpenGL函数同名的OpenGL
函数;
其中,
所述装置还 包括: 筛选部分和模拟部分;
所述筛选部分, 经配置为根据应用程序与本地的高版本OpenGL函数库筛选获得需要由
高版本OpenGL 函数模拟的低版本OpenGL 函数列表;
所述模拟部分, 经配置为利用高版本OpenGL函数库中的函数, 对所述函数列表中的每
个低版本OpenGL 函数进行模拟, 并将模拟得到的低版本OpenGL 函数封装为动态库文件;
其中, 所述模拟部分, 还经配置为:
使用高版本OpenGL函数模拟低版本OpenGL函数前引入默认的顶点着色器和片段着色
器的Shader以及其对应的输入、 输出参数;
根据OpenGL函数所定义的功能, 利用高版本OpenGL函数库 中的一个或多个函数, 对所
述函数列表中的每个低版本OpenGL函数进行模拟并使用全局上下文记录模拟过程中高版
本OpenGL函数所使用的函数信息; 所述函数信息至少包括: 函数调用次序、 函数调用参数次
序;
将使用高版本OpenGL 函数模拟完成的低版本OpenGL 函数列表封装为动态库文件。
5.根据权利要求 4所述的装置, 其特 征在于, 所述预加载部分, 经配置为:
在应用程序启动前采用LD_PRELOAD方式预加载 所述动态库文件; 或者,
在应用程序启动前采用ELF PLT HOOK方式预加载 所述动态库文件; 或者,
在应用程序启动前采用M HOOK方式预加载 所述动态库文件。
6.一种计算设备, 其特征在于, 所述计算设备包括: 通信接口, 处理器, 存储器; 各个组
件通过总线系统耦合在一 起; 其中,
所述通信接口, 用于在与其 他外部网元之间进行收发信息过程中, 信号的接收和发送;
所述存储器, 用于存 储能够在所述处 理器上运行的计算机程序;
所述处理器, 用于在运行所述计算机程序时, 执行权利要求1至3任一项所述高版本
OpenGL函数适配低版本应用程序的方法的步骤。
7.一种计算机存储介质, 其特征在于, 所述计算机存储介质存储有高版本OpenGL函数
适配低版本应用程序的程序, 所述程序被至少一个处理器执行时实现权利要求1 ‑3任一项
所述高版本OpenGL 函数适配低版本应用程序的方法的步骤。权 利 要 求 书 2/2 页
3
CN 115167949 B
3
专利 高版本OpenGL函数适配低版本应用程序的方法、装置及介质
文档预览
中文文档
23 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共23页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 16:38:21上传分享