CN113032025B - 图形渲染方法、装置、终端及存储介质 - Google Patents
图形渲染方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN113032025B CN113032025B CN202110274656.2A CN202110274656A CN113032025B CN 113032025 B CN113032025 B CN 113032025B CN 202110274656 A CN202110274656 A CN 202110274656A CN 113032025 B CN113032025 B CN 113032025B
- Authority
- CN
- China
- Prior art keywords
- open
- graphic library
- library
- target application
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种图形渲染方法、装置、终端及存储介质,涉及图形处理技术领域。该方法包括:判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。在显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,通过调用所述预设开放源代码图形库对应的开放图形库接口,实现自动对目标应用程序的图形渲染,提高了用户体验,提高兼容性的同时,还可以提高渲染效率。
Description
技术领域
本发明涉及图形处理技术领域,具体而言,涉及一种图形渲染方法、装置、终端及存储介质。
背景技术
随着科技的进步和发展,各种各样的应用程序也越来越多,应用程序可以安装于终端上,终端可以渲染应用程序所需要展现的图形,因此,终端对于图形的渲染方式也变得至关重要。
相关技术中,终端上安装有显卡,终端上安装的应用程序调用开放图形库接口,以利用终端上显卡驱动程序的开放图形库完成图形的渲染。
但是,相关技术中,应用程序需要使用的开放图形库与显卡驱动程序的开放图形库不兼容时,无法实现图形的渲染,降低了用户体验。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种图形渲染方法、装置、终端及存储介质,以便解决相关技术中,应用程序需要使用的开放图形库与显卡驱动程序的开放图形库不兼容时,无法实现图形的渲染,降低了用户体验的问题。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种图形渲染方法,所述方法包括:
判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;
若不兼容,则通过从所述目标应用程序的安装目录中加载预设开放源代码图形库,获取所述预设开放源代码图形库中各开放图形库接口的程序函数指针;
根据所述程序函数指针,调用所述预设开放源代码图形库对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
可选的,所述判断所述显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容之前,所述方法还包括:
从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息;
所述判断所述显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容,包括:
根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容。
可选的,所述从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息,包括:
通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针;
根据所述系统函数指针,调用所述第一开放图形库中对应的开放图形库接口,以获取所述第一版本信息。
可选的,所述根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容,包括:
比较所述第一版本信息和所述第二版本信息;
若所述第一版本信息的版本号大于或等于所述第二版本信息的版本号,采用所述第一开放图形库中的开放图像库接口进行初始化;
若初始化失败,则确定所述第一开放图形库和所述第二开放图形库不兼容;
若初始化成功,则确定所述第一开放图形库和所述第二开放图形库兼容。
可选的,所述根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容,还包括:
若所述第一版本信息的版本号小于所述第二版本信息的版本号,则确定所述第一开放图形库和所述第二开放图形库不兼容。
可选的,所述方法还包括:
若所述第一开放图形库加载失败,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
可选的,所述通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针之前,所述方法还包括:
获取所述目标应用程序对应的黑名单文件,所述黑名单文件中存储有:与所述目标应用程序不兼容的预设显卡驱动程序的信息;
所述通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针,包括:
若所述显卡驱动程序的信息不在所述黑名单文件中,则通过加载所述第一开放图形库,获取所述系统函数指针。
可选的,所述方法还包括:
若所述显卡驱动程序的信息在所述黑名单文件中,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
第二方面,本发明实施例还提供了一种图形渲染装置,所述装置包括:
判断模块,用于判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;
加载模块,用于若不兼容,则通过从所述目标应用程序的安装目录中加载预设开放源代码图形库,获取所述预设开放源代码图形库中各开放图形库接口的程序函数指针;
调用模块,用于根据所述程序函数指针,调用所述预设开放源代码图形库对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
可选的,所述装置还包括:
第一获取模块,用于从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息;
所述判断模块,还用于根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容。
可选的,所述第一获取模块,还用于通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针;根据所述系统函数指针,调用所述第一开放图形库中对应的开放图形库接口,以获取所述第一版本信息。
可选的,所述判断模块,还用于比较所述第一版本信息和所述第二版本信息;若所述第一版本信息的版本号大于或等于所述第二版本信息的版本号,采用所述第一开放图形库中的开放图像库接口进行初始化;若初始化失败,则确定所述第一开放图形库和所述第二开放图形库不兼容;若初始化成功,则确定所述第一开放图形库和所述第二开放图形库兼容。
可选的,所述判断模块,还用于若所述第一版本信息的版本号小于所述第二版本信息的版本号,则确定所述第一开放图形库和所述第二开放图形库不兼容。
可选的,所述装置还包括:
第二获取模块,用于若所述第一开放图形库加载失败,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
第一调用模块,用于根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
可选的,所述装置还包括:
第三获取模块,用于获取所述目标应用程序对应的黑名单文件,所述黑名单文件中存储有:与所述目标应用程序不兼容的预设显卡驱动程序的信息;
所述第一获取模块,还用于若所述显卡驱动程序的信息不在所述黑名单文件中,则通过加载所述第一开放图形库,获取所述系统函数指针。
可选的,所述装置还包括:
第四获取模块,用于若所述显卡驱动程序的信息在所述黑名单文件中,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
第二调用模块,用于根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
第三方面,本发明实施例还提供了一种终端,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的图形渲染方法。
第四方面,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的图形渲染方法。
本发明的有益效果是:本发明实施例提供一种本申请实施例提供一种图形渲染方法,包括:判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。在显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,通过调用所述预设开放源代码图形库对应的开放图形库接口,实现自动对目标应用程序的图形渲染,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种图形渲染方法的流程示意图;
图2为本发明实施例提供的一种图形渲染方法的流程示意图;
图3为本发明实施例提供的一种图形渲染方法的流程示意图;
图4为本发明实施例提供的一种图形渲染方法的流程示意图;
图5为本发明实施例提供的一种图形渲染方法的流程示意图;
图6为本发明实施例提供的一种图形渲染方法的流程示意图;
图7为本发明实施例提供的一种图形渲染方法的流程示意图;
图8为本发明实施例提供的一种图形渲染方法的完整流程示意图;
图9为本发明实施例提供的一种图形渲染装置的结构示意图;
图10为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
针对相关技术中,应用程序需要使用的开放图形库与显卡驱动程序的开放图形库不兼容时,无法实现图形的渲染,降低了用户体验的问题,本申请实施例提供一种图形渲染方法,包括:判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。在显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,通过调用所述预设开放源代码图形库对应的开放图形库接口,实现自动对目标应用程序的图形渲染,提高了用户体验。
本申请实施例提供的图形渲染方法,其执行主体可以为终端,例如,终端可以为笔记本电脑、平板电脑、台式电脑等等,终端上可以安装有应用程序。当然,执行主体还可以为其他类型具备处理功能的处理设备,可选的,可以为处理设备的CPU(Central ProcessingUnit,中央处理器),本申请实施例对此不进行具体限制。以下以终端为例对本申请实施例提供的图形渲染方法进行说明。
图1为本发明实施例提供的一种图形渲染方法的流程示意图,如图1所示,该方法可以包括:
S101、判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容。
其中,第一开放图形库(OpenGL,Open Graphics Library)可以为终端上安装的显卡驱动程序所提供的图形库,第二开放图形库可以为目标应用程序需要使用到的图形库。
在本申请实施例中,终端上可以安装有显卡,当显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库兼容时,说明终端可以通过显卡上设置有GPU(Graphics Processing Unit,图形处理器),对目标应用程序进行图形渲染。
另外,显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,无法通过显卡的GPU对目标应用程序进行图形渲染。
S102、若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针。
其中,目标应用程序安装好之后,预设开放源代码图形库设置在目标应用程序的安装目录中,预设开放源代码图形库与目标应用程序完全兼容。
需要说明的是,开放源代码的三维计算机图形库,例如Mesa3D,可以以开源形式实现开放图形库的应用程序接口。开放源代码库可以是纯基于软件的图形API(ApplicationProgramming Interface,应用程序接口),其代码接口与开放图形库兼容,预设开放源代码图形库可以为采用开放源代码的三维计算机图形库预先编译好的,且与目标应用程序兼容的图形库,其可以运行于操作系统上,不依赖于特定的显卡设备。
S103、根据程序函数指针,调用预设开放源代码图形库对应的开放图形库接口,以对目标应用程序进行图形渲染。
在一种可能的实施方式中,终端可以根据程序函数指针,调用预设开放源代码图形库对应的开放图形库接口,继而基于用预设开放源代码图形库对应的开放图形库接口进行初始化,绘制图形实现目标应用程序的图形渲染。
需要说明的是,对于未安装有显卡的终端,可以直接程序函数指针,调用预设开放源代码图形库对应的开放图形库接口,以对目标应用程序进行图形渲染,使得不具备显卡的终端也能实现目标应用程序的图形渲染。
例如,显卡驱动程序的第一开放图形库和预设开放源代码图形库均具有对应的名称,第一开放图形库的名称可以为opengl32.dll,预设开放源代码图形库可以为opengl32mesa.dll。
综上所述,本发明实施例提供一种本申请实施例提供一种图形渲染方法,包括:判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。在显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,通过调用所述预设开放源代码图形库对应的开放图形库接口,实现自动对目标应用程序的图形渲染,提高了用户体验。
而且,在不兼容时,基于预设开放源代码图形库进行图形渲染,在提高目标应用程序兼容性的同时,还尽可能的提高了渲染效率。
图2为本发明实施例提供的一种图形渲染方法的流程示意图,如图2所示,在上述S102中判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容的之前,方法还可以包括:
S201、从显卡中获取显卡驱动程序的第一开放图形库的第一版本信息。
需要说明的是,在目标应用程序启动运行时,终端可以从显卡中获取显卡驱动程序的第一开放图形库的第一版本信息。该第一版本信息可以表征显卡驱动程序的第一开放图形库的版本。
上述S102中判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容的过程,可以包括:
S202、根据第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断第一开放图形库和第二开放图形库是否兼容。
其中,第二版本信息可以表征目标应用程序所需要使用到的第二开放图形库的版本。
在一些实施方式中,终端可以采用预设匹配规则,判断第一版本信息和第二版本信息是否匹配,得到匹配结果,根据匹配结果判断第一开放图形库和第二开放图形库是否兼容。
需要说明的是,匹配结果表示第一版本信息和第二版本信息匹配时,则第一开放图形库和第二开放图形库兼容;匹配结果表示第一版本信息和第二版本信息不匹配时,则第一开放图形库和第二开放图形库不兼容。
可选的,图3为本发明实施例提供的一种图形渲染方法的流程示意图,如图3所示,上述S201中从显卡中获取显卡驱动程序的第一开放图形库的第一版本信息的过程,可以包括:
S301、通过加载系统目录中第一开放图形库,获取第一开放图形库中各开放图形库接口的系统函数指针。
其中,显卡驱动程序的第一开放图形库可以设置在系统目录中,例如,系统可以为windows操作系统,系统目录可以为C:\Windows\System32\或C:\Windows\SysWOW64\。当然,也可以为其他类型的操作系统,本申请实施例对此不进行具体限制。
在一些实施方式中,目标应用程序启动运行时,可以采用预设系统函数动态加载系统目录中第一开放图形库,继而获取第一开放图形库中各开放图形库接口的系统函数指针。其中,系统函数指针可以为系统开放图形库函数指针,预设系统函数可以为LoadLibray函数。
S302、根据系统函数指针,调用第一开放图形库中对应的开放图形库接口,以获取第一版本信息。
其中,第一版本信息中可以包括对应的版本号。
可选的,图4为本发明实施例提供的一种图形渲染方法的流程示意图,如图4所示,上述S202中根据第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断第一开放图形库和第二开放图形库是否兼容的过程,可以包括:
S401、比较第一版本信息和第二版本信息。
在本申请实施例中,第一版本信息可以包括对应的版本号,第二版本信息也可以包括对应的版本号。在比较第一版本信息和第二版本信息时,可以对第一版本信息的版本号和第二版本信息的版本号进行比较。
S402、若第一版本信息的版本号大于或等于第二版本信息的版本号,采用第一开放图形库中的开放图像库接口进行初始化。
其中,第一版本信息的版本号大于或等于第二版本信息的版本号,说明第一开放图形库的版本高于目标应用程序所需的第二开放图形库的版本,显卡驱动程序的第一开放图形库能够满足目标应用程序的渲染需求。
需要说明的是,终端可以采用第一开放图形库中的开放图像库接口,对程序绘制功能进行初始化。
S403、若初始化失败,则确定第一开放图形库和第二开放图形库不兼容。
S404、若初始化成功,则确定第一开放图形库和第二开放图形库兼容。
需要说明的是,若初始化失败,确定第一开放图形库和第二开放图形库不兼容,则可以执行S103;若初始化成功,确定第一开放图形库和第二开放图形库兼容时,则可以调用第一开放图形库中的开放图像库接口,以对目标应用程序进行图形渲染,即,基于显卡进行渲染。
可选的,上述S202中根据第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断第一开放图形库和第二开放图形库是否兼容的过程,还可以包括:
若第一版本信息的版本号小于第二版本信息的版本号,则确定第一开放图形库和第二开放图形库不兼容。
在本申请实施例中,若第一版本信息的版本号小于第二版本信息的版本号,说明第一开放图形库的版本低于目标应用程序所需的第二开放图形库的版本,显卡驱动程序的第一开放图形库能够不满足目标应用程序的渲染需求,即第一开放图形库和第二开放图形库不兼容,继而可以执行S103。
可选的,图5为本发明实施例提供的一种图形渲染方法的流程示意图,如图5所示,该方法还可以包括:
S501、若第一开放图形库加载失败,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针。
其中,S501中获取程序函数指针的过程,与S102中获取程序函数指针的过程类似,此处不再一一赘述。
S502、根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
需要说明的是,上述S502的过程,与S103的过程类似,此处不再一一赘述。
可选的,图6为本发明实施例提供的一种图形渲染方法的流程示意图,如图6所示,上述S301中通过加载系统目录中第一开放图形库,获取第一开放图形库中各开放图形库接口的系统函数指针的过程之前,方法还可以包括:
S601、获取目标应用程序对应的黑名单文件。
其中,黑名单文件中可以存储有:与目标应用程序不兼容的预设显卡驱动程序的信息。预设显卡驱动程序的信息可以包括:预设显卡的供应商ID(Identity Document,身份标识号)和/或预设显卡的驱动版本号。
在一些实施方式中,终端可以与后台服务器通信连接,在目标应用程序启动时,终端可以从服务器上下载目标应用程序的黑名单文件;目标应用程序对应的黑名单文件可以设置在终端的预设位置处,在目标应用程序启动时,终端可以从预设位置处获取目标应用程序对应的黑名单文件。当然,终端还可以采用其他方式获取目标应用程序对应的黑名单文件,本申请实施例对此不进行具体限制。
在本申请实施例中,将黑名单文件设置在后台服务器上,可以随时添加与目标应用程序不兼容的预设显卡驱动程序的信息到黑名单文件,不需要对目标应用程序进行更新。
上述S301中通过加载系统目录中第一开放图形库,获取第一开放图形库中各开放图形库接口的系统函数指针的过程,包括:
S602、若显卡驱动程序的信息不在黑名单文件中,则通过加载第一开放图形库,获取系统函数指针。
需要说明的是,若显卡驱动程序的信息不在黑名单文件中,则说明显卡驱动程序的信息与目标应用程序兼容,可以基于显卡进行图形渲染,可以加载第一开放图形库,获取系统函数指针,根据系统函数指针,调用第一开放图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
可选的,图7为本发明实施例提供的一种图形渲染方法的流程示意图,如图7所示,方法还可以包括:
S701、若显卡驱动程序的信息在黑名单文件中,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针。
其中,S701中获取程序函数指针的过程,与S102中获取程序函数指针的过程类似,此处不再一一赘述。
S702、根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
需要说明的是,上述7502的过程,与S103的过程类似,此处不再一一赘述。
在本申请实施例中,若显卡驱动程序的信息在黑名单文件中,则说明显卡驱动程序的信息与目标应用程序不兼容,即不能基于显卡进行图形渲染,需要基于预设开放源代码图形库进行图形渲染。
图8为本发明实施例提供的一种图形渲染方法的完整流程示意图,如图8所示,该图形渲染方法可以包括:
S801、获取目标应用程序对应的黑名单文件。
其中,黑名单文件中存储有:与目标应用程序不兼容的预设显卡驱动程序的信息;
S802、若显卡驱动程序的信息不在黑名单文件中,则通过加载第一开放图形库,获取系统函数指针。
S803、根据系统函数指针,调用第一开放图形库中对应的开放图形库接口,以获取第一版本信息。
S804、比较第一版本信息和第二版本信息;
S805、若第一版本信息的版本号大于或等于第二版本信息的版本号,采用第一开放图形库中的开放图像库接口进行初始化;
S806、若初始化失败,则确定第一开放图形库和第二开放图形库不兼容;
其中,在S806之后,可以执行S811、S812。
S807、若初始化成功,则确定第一开放图形库和第二开放图形库兼容。
S808、若第一版本信息的版本号小于第二版本信息的版本号,则确定第一开放图形库和第二开放图形库不兼容。
其中,在S808之后,可以执行S811、S812。
S809、若显卡驱动程序的信息不在黑名单文件中,且第一开放图形库加载失败,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针;
其中,在S809之后,可以执行S812。
S810、若显卡驱动程序的信息在黑名单文件中,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针;
其中,在S810之后,可以执行S812。
S811、若不兼容,则通过从所述目标应用程序的安装目录中加载预设开放源代码图形库,获取所述预设开放源代码图形库中各开放图形库接口的程序函数指针。
S812、根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
需要说明的是,上述S801至S812的实现过程和技术效果,可以参考上述图形渲染方法的实施例,此处不再赘述。
综上所述,本发明实施例提供一种本申请实施例提供一种图形渲染方法,包括:判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。在显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库不兼容时,通过调用所述预设开放源代码图形库对应的开放图形库接口,实现自动对目标应用程序的图形渲染,提高了用户体验。而且,目标应用程序的安装目录下设置预设开放源代码图形库,在目标应用程序启动时,先通过判断显卡驱动程序的第一开放图形库是否可用,在显卡驱动程序的第一开放图形库不可用,才基于预设开放源代码图形库进行图形渲染,在提高目标应用程序兼容性的同时,还可以提高渲染效率。
下述对用以执行本申请所提供的图形渲染方法的图形渲染装置、终端及存储介质等进行说明,其具体的实现过程以及技术效果参见上述图形渲染方法的相关内容,下述不再赘述。
图9为本发明实施例提供的一种图形渲染装置的结构示意图,如图9所示,该装置可以包括:
判断模块801,用于判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;
加载模块802,用于若不兼容,则通过从目标应用程序的安装目录中加载预设开放源代码图形库,获取预设开放源代码图形库中各开放图形库接口的程序函数指针;
调用模块803,用于根据程序函数指针,调用预设开放源代码图形库对应的开放图形库接口,以对目标应用程序进行图形渲染。
可选的,装置还包括:
第一获取模块,用于从显卡中获取显卡驱动程序的第一开放图形库的第一版本信息;
判断模块801,还用于根据第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断第一开放图形库和第二开放图形库是否兼容。
可选的,第一获取模块,还用于通过加载系统目录中第一开放图形库,获取第一开放图形库中各开放图形库接口的系统函数指针;根据系统函数指针,调用第一开放图形库中对应的开放图形库接口,以获取第一版本信息。
可选的,判断模块801,还用于比较第一版本信息和第二版本信息;若第一版本信息的版本号大于或等于第二版本信息的版本号,采用第一开放图形库中的开放图像库接口进行初始化;若初始化失败,则确定第一开放图形库和第二开放图形库不兼容;若初始化成功,则确定第一开放图形库和第二开放图形库兼容。
可选的,判断模块801,还用于若第一版本信息的版本号小于第二版本信息的版本号,则确定第一开放图形库和第二开放图形库不兼容。
可选的,装置还包括:
第二获取模块,用于若第一开放图形库加载失败,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针;
第一调用模块,用于根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
可选的,装置还包括:
第三获取模块,用于获取目标应用程序对应的黑名单文件,黑名单文件中存储有:与目标应用程序不兼容的预设显卡驱动程序的信息;
第一获取模块,还用于若显卡驱动程序的信息不在黑名单文件中,则通过加载第一开放图形库,获取系统函数指针。
可选的,装置还包括:
第四获取模块,用于若显卡驱动程序的信息在黑名单文件中,则通过从安装目录中加载预设开放源代码图形库,获取程序函数指针;
第二调用模块,用于根据程序函数指针,调用预设开放源代码图形库中对应的开放图形库接口,以对目标应用程序进行图形渲染。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图10为本发明实施例提供的一种终端的结构示意图,该终端可以是具备数据处理功能的计算设备。
如图10所示,该终端可以包括:处理器901、存储器902。其中,存储器902用于存储程序,处理器901调用存储器902存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种图形渲染方法,其特征在于,所述方法包括:
判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;
若不兼容,则通过从所述目标应用程序的安装目录中加载预设开放源代码图形库,获取所述预设开放源代码图形库中各开放图形库接口的程序函数指针,其中,所述预设开放源代码图形库不依赖于显示设备;
根据所述程序函数指针,调用所述预设开放源代码图形库对应的开放图形库接口,以对所述目标应用程序进行图形渲染;
所述判断所述显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容之前,所述方法还包括:
从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息;
所述判断所述显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容,包括:
根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容。
2.根据权利要求1所述的方法,其特征在于,所述从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息,包括:
通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针;
根据所述系统函数指针,调用所述第一开放图形库中对应的开放图形库接口,以获取所述第一版本信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容,包括:
比较所述第一版本信息和所述第二版本信息;
若所述第一版本信息的版本号大于或等于所述第二版本信息的版本号,采用所述第一开放图形库中的开放图像库接口进行初始化;
若初始化失败,则确定所述第一开放图形库和所述第二开放图形库不兼容;
若初始化成功,则确定所述第一开放图形库和所述第二开放图形库兼容。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容,还包括:
若所述第一版本信息的版本号小于所述第二版本信息的版本号,则确定所述第一开放图形库和所述第二开放图形库不兼容。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一开放图形库加载失败,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
6.根据权利要求2所述的方法,其特征在于,所述通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针之前,所述方法还包括:
获取所述目标应用程序对应的黑名单文件,所述黑名单文件中存储有:与所述目标应用程序不兼容的预设显卡驱动程序的信息;
所述通过加载系统目录中所述第一开放图形库,获取所述第一开放图形库中各开放图形库接口的系统函数指针,包括:
若所述显卡驱动程序的信息不在所述黑名单文件中,则通过加载所述第一开放图形库,获取所述系统函数指针。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述显卡驱动程序的信息在所述黑名单文件中,则通过从所述安装目录中加载预设开放源代码图形库,获取所述程序函数指针;
根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染。
8.一种图形渲染装置,其特征在于,所述装置包括:
判断模块,用于判断显卡驱动程序的第一开放图形库和目标应用程序使用的第二开放图形库是否兼容;
获取模块,用于若不兼容,则通过从所述目标应用程序的安装目录中加载预设开放源代码图形库,获取所述预设开放源代码图形库中各开放图形库接口的程序函数指针,其中,所述预设开放源代码图形库不依赖于显示设备;
渲染模块,用于根据所述程序函数指针,调用所述预设开放源代码图形库中对应的开放图形库接口,以对所述目标应用程序进行图形渲染;
第一获取模块,用于从所述显卡中获取所述显卡驱动程序的第一开放图形库的第一版本信息;
所述判断模块,还用于根据所述第一版本信息,和目标应用程序使用的第二开放图形库的第二版本信息,判断所述第一开放图形库和所述第二开放图形库是否兼容。
9.一种终端,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7任一项所述的图形渲染方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7任一项所述的图形渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274656.2A CN113032025B (zh) | 2021-03-15 | 2021-03-15 | 图形渲染方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274656.2A CN113032025B (zh) | 2021-03-15 | 2021-03-15 | 图形渲染方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032025A CN113032025A (zh) | 2021-06-25 |
CN113032025B true CN113032025B (zh) | 2022-10-28 |
Family
ID=76469119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110274656.2A Active CN113032025B (zh) | 2021-03-15 | 2021-03-15 | 图形渲染方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032025B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185743B (zh) * | 2023-04-24 | 2023-07-21 | 芯瞳半导体技术(山东)有限公司 | OpenGL接口的双显卡对比调试方法、装置及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200712A (zh) * | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | Gles图像渲染方法及装置、存储介质、计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102605B1 (en) * | 2016-08-26 | 2018-10-16 | Amazon Technologies, Inc. | Graphics library virtualization for virtualized graphics processing |
CN107729049A (zh) * | 2017-09-13 | 2018-02-23 | 深信服科技股份有限公司 | 指令转换方法、设备及计算机可读存储介质 |
CN108765534B (zh) * | 2018-05-24 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN112269603B (zh) * | 2020-10-16 | 2021-05-28 | 北京技德系统技术有限公司 | 一种在Linux上兼容运行Android应用的图形显示方法与装置 |
-
2021
- 2021-03-15 CN CN202110274656.2A patent/CN113032025B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200712A (zh) * | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | Gles图像渲染方法及装置、存储介质、计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113032025A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598655B (zh) | 应用程序页面处理方法和装置 | |
US7934209B2 (en) | Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan | |
US7363480B1 (en) | Method, system, and computer-readable medium for updating the firmware of a computing device via a communications network | |
US6842856B2 (en) | System and method for dynamic management of a startup sequence | |
EP3267308B1 (en) | Application loading method and device | |
US10019598B2 (en) | Dynamic service discovery | |
US20030110369A1 (en) | Firmware extensions | |
CN110083399B (zh) | 小程序运行方法、计算机设备及存储介质 | |
US20080209193A1 (en) | Manageability Extension Mechanism for System Firmware | |
US20170131999A1 (en) | Detection of software or hardware incompatibilities in software packages | |
US9465707B2 (en) | POST (power-on-self-test) debugging method and apparatuses using the same | |
US7698547B1 (en) | Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware | |
CN113032025B (zh) | 图形渲染方法、装置、终端及存储介质 | |
CN112130926B (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
US6961848B2 (en) | System and method for supporting legacy operating system booting in a legacy-free system | |
CN114461691A (zh) | 状态机的控制方法、装置、电子设备及存储介质 | |
US7840792B2 (en) | Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases | |
CN112015476B (zh) | 显卡驱动方法、装置、电子设备以及存储介质 | |
US8429678B1 (en) | Redirecting video to a remote client using a service processor | |
CN111930575B (zh) | 一种固件获取方法、装置及电子设备 | |
US6604152B1 (en) | Executing program installed in computer slot in one of plural environments comprising a main operating system or small operating system or no operating system | |
EP1710697A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
CN115291951A (zh) | Uefi启动方法、装置、电子设备以及存储介质 | |
CN105468314B (zh) | 一种信息处理方法和电子设备 | |
CN110109707B (zh) | 终端启动方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |