CN110659024B - 图形资源转换方法、装置、电子设备及存储介质 - Google Patents

图形资源转换方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110659024B
CN110659024B CN201910775810.7A CN201910775810A CN110659024B CN 110659024 B CN110659024 B CN 110659024B CN 201910775810 A CN201910775810 A CN 201910775810A CN 110659024 B CN110659024 B CN 110659024B
Authority
CN
China
Prior art keywords
opengl
resource
interface
graphic
graphics
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
Application number
CN201910775810.7A
Other languages
English (en)
Other versions
CN110659024A (zh
Inventor
赖锦锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201910775810.7A priority Critical patent/CN110659024B/zh
Publication of CN110659024A publication Critical patent/CN110659024A/zh
Application granted granted Critical
Publication of CN110659024B publication Critical patent/CN110659024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开提供了一种图形资源转换方法、装置、电子设备及存储介质,所述方法包括:在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;将用户状态集合映射到对应的硬件设备上或将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。也就是说,本公开实施例旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,在接收到OpenGL或OpenGL ES图形的绘制结束指令时,根据获取到的绘制图形的所有图形资源操作确定对应的目标图形资源接口,实现了图形资源的转换,减少了图形特效渲染研发人员的工作量及研发成本。

Description

图形资源转换方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机领域,尤其涉及一种图形资源转换方法、装置、电子设备及存储介质。
背景技术
随着终端技术的快速发展,智能终端的一些应用程序(APP)中都设置了美颜、美妆、魔法表情等功能,由于多年的代码积累,目前这些功能都基于OpenGL ES或OpenGL编写了相应的渲染器及图形引擎。其中,OpenGL ES或OpenGL支持多种嵌入式平台,且支持功能完善的2D和3D图形应用程序接口(API),主要针对多种嵌入式系统而专门设计的,它由精心定义的桌面OpenGL或OpenGL子集组成,创造了软件与图形加速间灵活强大的底层交互接口。
但是,随着图形硬件快速发展,OpenGL ES或OpenGL这种针对早期性能有限的图形硬件所设计的单线程、全局状态集的编程接口无法发挥现代图形硬件的性能优势,导致这几年每个主流厂家纷纷推出专门针对自家硬件特点的图形可编程接口,同时逐步停止跟进新版本的OpenGL ES或OpenGL,甚至干脆公开声明不再支持OpenGL ES或OpenGL、要求App开发者使用厂家自己的新API重新开发现有功能。而对于多数APP而言,如果重新研发基于OpenGL ES或OpenGL的图形渲染功能,针对不同的操作系统,均需要重新编写对应的渲染器来实现图形渲染/计算功能。由于新旧图形API设计理念差异过大,如果重新编写图像代码不但影响到渲染器之上的2/3D渲染引擎的架构,还会增加了研发人员的工作量及研发成本。
发明内容
为克服相关技术中存在的问题,本公开提供一种图形资源转换方法、装置、电子设备及存储介质,以解决现有技术中由于新旧图形API设计理念差异过大,如果重新编写图像代码导致研发人员的工作量及研发成本增加的技术问题。
根据本公开实施例的第一方面,提供一种图形资源转换方法,包括:
在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,在获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,所述方法还包括:
提示所述用户是进行接口转换还是进行模拟接口转换;
如果接收到所述用户输入的接口转换指令,则执行将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换的步骤;
如果接收到所述用户输入的模拟接口转换指令,则执行将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换的步骤。
可选的,在所述获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,所述方法还包括:
将所述用户状态集合按照行为操作类型划分为多个区间集合;
对所述多个区间集合中的每个区间集合进行函数的去重处理;
所述将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换,包括:
将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,所述对所述多个区间集合中的每个区间集合进行函数的去重处理,包括:
对于每个区间集合中包括相同参数的相同函数,保留最新调用的所述函数记录,去除所有旧的所述函数的调用记录;或者
对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理;或者
减少每个区间集合中相同函数的重复参数的状态配置。
可选的,在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令前,所述方法还包括:
按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的有效性;
记录有效的所述各设备的参数和资源状态。
可选的,所述将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGLES图形资源接口与对应的目标图形资源接口的转换,包括:
根据所述用户状态集合中的每个图形资源操作确定对应的目标图形资源接口;
通过对应的所述目标图形资源接口向图形资源库申请对应的图形处理器GPU;
将申请到的所述GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的所述目标图形资源的转换。
可选的,所述根据所述用户状态集合中的每个所述图形资源操作确定对应的目标图形资源接口,包括:
根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系,得到对应的目标图形资源接口;
在所述映射关系中记录所述每个所述图形资源操作与对应的所述目标图形资源接口的对应关联状态。
可选的,在所述根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系之前,所述方法还包括:
建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系,具体包括:
按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码,其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码;
建立OpenGL或OpenGL ES图形资源接口代码与对应的所述目标图形接口代码之间的映射关系。
根据本公开实施例的第二方面,提供一种图形资源转换装置,包括:
接收模块,被配置为接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令;
获取模块,被配置为在所述接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
镜像模块,被配置为将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,所述装置还包括:
提示模块,被配置为在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,提示所述用户是进行接口转换还是进行模拟接口转换;
所述接收模块,还被配置为接收到所述用户输入的接口转换指令或者接收到所述用户输入的模拟接口转换指令;
所述镜像模块包括:
映射模块,被配置为在所述接收模块接收到所述用户输入的接口转换指令时,将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换;
初始化模块,被配置为在所述接收模块接收到所述用户输入的模拟接口转换指令时,将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGLES图形资源接口与对应的目标图形资源接口的转换。
可选的,所述装置还包括:
第一划分模块,被配置为执行在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,将所述用户状态集合按照行为操作类型划分为多个区间集合;
第一去重处理模块,被配置为执行对所述多个区间集合中的每个区间集合进行函数的去重处理;
所述镜像模块,具体被配置为执行将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,所述第一去重处理模块至少包括下述一个:
第一参数去除模块,被配置为执行对于每个区间集合中包括相同参数的相同函数,保留最新调用的所述函数记录,去除所有旧的所述函数的调用记录;
第二参数去除模块,被配置为执行对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理;
第三参数去除模块,被配置为执行减少每个区间集合中相同函数的重复参数的状态配置。
可选的,所述装置还包括:
检查模块,被配置为在所述接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令前,按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的合法性;
记录模块,被配置为记录合法的所述各设备的参数和资源状态。
可选的,所述映射模块包括:
确定模块,被配置为根据所述用户状态集合中的每个图形资源操作确定对应的目标图形资源接口;
资源申请模块,被配置为通过所述目标图形资源接口向图形资源库申请对应的图形处理器GPU;
资源分配模块,被配置为将申请到的所述图形处理器GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应所述目标图形资源的转换。
可选的,所述确定模块包括:
查找模块,被配置为根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系,得到对应的目标图形资源接口;
状态记录模块,被配置为在所述映射关系中记录每个所述图形资源操作与对应的目标图形资源接口的对应关联状态。
可选的,所述装置还包括:
建立模块,被配置为在所述查找模块根据每个所述图形资源操作查找预设的映射关系之前,建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系,具体包括:
转换模块,被配置为按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码,其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码;
建立子模块,被配置为建立OpenGL或OpenGL ES图形资源接口代码与对应的所述目标图形接口代码之间的映射关系。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述任一种图形资源转换方法。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备执行上述任一种图形资源转换方法。
根据本公开实施例的第五方面,提供根据一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行上述任一种图形资源转换方法。
本公开的实施例提供的技术方案可以包括以下有益效果:本示例性实施例示出的图形资源转换方法,在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行接口转换。也就是说,本公开实施例旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,将绘制所述OpenGL或OpenGLES图形的所述图形资源操作的用户状态集合映射到对应的硬件设备上进行接口转换,或者初始化到虚拟内存中模拟实际接口转换成对应的目标图形资源接口,实现了资源功能的转换,减少了研发人员的工作量及研发成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种图形资源转换方法的流程图;
图2是根据一示例性实施例示出的一种图形资源转换方法的另一流程图;
图3是根据一示例性实施例示出的一种图形资源转换方法的再一流程图;
图4是根据一示例性实施例示出的一种图形资源转换方法的又一流程图;
图5是根据一示例性实施例示出的一种图形资源转换装置的结构示意图;
图6是根据一示例性实施例示出的一种电子设备的结构示意图;
图7是根据一示例性实施例示出的一种电子设备的另一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开之前,先介绍与本公开相关的技术术语:
OpenGL(Open Graphics Library),为开放图形库或者开放式图形库,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API),这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。也就是说,OpenGL定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像(二维图像的也可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
OpenGL ES(OpenGL for Embedded Systems),是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
Metal,是一种比OpenGL与OpenGL ES更接近硬件的图形应用程序编程接口,提供了软件所需的最底层、最靠近图形硬件的应用程序接口(API,Application ProgramInterface),保证软件可以运行在不同的图形芯片上。相对于OpenGL ES,Metal框架及其着色器(shader)语言,更能体现现代图形硬件的性能优势。
在理解上述技术术语的基础上,请参阅图1,是根据一示例性实施例示出的一种图形资源转换方法的流程图,如图1所示,图形资源转换方法用于终端中,包括以下步骤:
步骤101:在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
该步骤中,在用户打开终端上的APP后,如果想美颜或美妆,则需要向图形资源库(该图形数据库中,可以包括Metal图形资源、Vulkan图形资源和DX图形资源等)申请图像资源操作,直到接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,后台服务器获取到该用户输入的OpenGL或OpenGL ES图形的所有图形资源操作,并将所有图形资源操作称为用户状态集合,其中,该图形资源操作中可以包括图像资源请求名称,用户ID以及图像资源接口等信息,当然并不限于此,还可以是根据需要包括其他参数,本实施例不做限制。
需要说明的是,本公开中的OpenGL或OpenGL ES图形是指采用OpenGL或OpenGL ES中的应用程序编程接口(即图形程序接口)绘制的图形。
步骤102:将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
该步骤中,一种情况是将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换;另一情况是,是将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
其中,对应的目标图形资源接口可以是Metal图形资源接口、Vulkan图形资源接口或DX图形资源接口等。
本示例性实施例示出的图形资源转换方法,在接收到用户输入的OpenGL图形或OpenGL ES的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。也就是说,本公开实施例旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,将绘制所述OpenGL或OpenGL ES图形的所述OpenGL或OpenGL ES图形资源操作的用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行接口转换,实现了图形资源功能的转换,减少了研发人员的工作量及研发成本。
请参阅图2,是根据一示例性实施例示出的一种图形资源转换方法的流程图,如图2所示,图形资源转换方法用于终端中,包括以下步骤:
步骤201:在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
步骤202:提示所述用户是进行接口转换或是进行模拟接口转换;
也就是说,在步骤201获取到绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,为用户显示提示框,以便于用户选择是进行接口转换,还是进行模拟接口转换。
步骤203:如果接收到所述用户输入的接口转换指令,则将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换;
该步骤中,将OpenGL或OpenGL ES图形资源接口转换成对应的目标图形资源接口,比如转换成对应的Metal图形资源接口、Vulkan图形资源代码或DX图形资源等,其具体的转换过程详见图3,在此不再赘述。
步骤204:如果接收到所述用户输入的模拟接口转换指令,则将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
该步骤中,是在虚拟内存(即CPU)中模拟实际的接口进行转换的,具体的实现过程详见图3,在此不再赘述。
本公开实施例旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,将绘制所述OpenGL或OpenGLES图形的所述图形资源操作的用户状态集合映射到对应的硬件设备上进行接口转换,或者是将绘制图形的用户状态集合初始化到虚拟内存中模拟实际接口进行转换,实现了图形资源的转换,减少了研发人员的工作量及研发成本。
可选的,在另一实施例中,该实施例在上述实施例的基础上,在所述获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,所述方法还可以包括:
将所述用户状态集合按照行为操作类型划分为多个区间集合;
对所述多个区间集合中的每个区间集合进行去重处理;
所述将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换,具体包括:将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
该实施例中,可以把用户状态集合按照行为操作类型划分为多个区间集合,并对每个区间集合中的操作进行去重(即合并)处理,即去除掉每个区间集合中重复的操作函数或请求,然后,将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行接口转换,从而提高了接口转换的处理效率。也就是说,在接口转换前,可以对转换过程中的用户状态集合中的每个区间集合进行检测,纠错以及去重等操作,提高了图形资源的转换效率及用户的满意度。
该实施例中,为了避免扰乱整个图形状态机的当前用户状态,研发人员通常会反复重置相同的状态值或反复调用同一函数且传递相同参数等等这些行为操作,其中,重复设置相同状态值或反复调同一函数等这些操作称为冗余操作。而这些冗余操作是可以通过一些策略规避掉。
本公开中,为了提系统的高运行性能,可以对这些冗余操作进行了去重(即合并)处理。其去重处理的策略:可以通过设计的缓存结构,在收到绘制同步点(即OpenGL或OpenGL ES的同步点函数有glFlush,glFinish,glReadPixels等,相当于出信号函数)时,遍历缓存结构中所记录的函数及其参数,过滤掉重复的操作,保留并合并这些功能没有重复的操作,或者是保留可组合的操作中最新的操作,剔除老的操作。具体如表1和表2所示,其中,表1为本公开提供的一种去重(即合并)前函数区间集合,表2为表1去重(即合并)处理后的函数区间集合;
表1
表2
由表1可知,glClear()函数出现三次,且分别调用了三个不同的参数,根据OpenGL规范要求,只需将它们合并成一个glClear函数调用且将三个参数按位组合成一个,如表2所示。另一种情况,glEnable(GL_BLEND)以相同参数重复调用了两次,此时我们直接合并成一次调用,如表2所示。也就是说,将表1中重复出现的函数,经过去重合并出后,得到表2。
综上,本公开提供的去重(即合并)策略可以分以下几种情况,但并不限于此:
1,对于每个区间集合中包括相同参数的相同函数,保留最新调用的函数记录,去除旧的所述函数的调用记录,也就是说,包括相同参数的相同函数,通常可以取最新调用的函数,抛弃旧的调用记录中记录的函数。
2,对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理,也就是说,包括不同参数的相同函数,此时根据规范或厂家硬件特点,再结合经验积累进行策略性去重(即合并)。
3,减少每个区间集合中相同函数的重复参数的状态配置,也就是说,减少重复参数的状态配置,比如Texture的采样参数配置,如果每帧绘制过程都只用同一组采样参数,则只需要初始化时配置一次,往后的每帧绘制中重复的采样参数的配置函数调用都被忽略,从而减少了同一函数重复参数的配置操作。
当然,相同函数不同参数也有不能合并的情况,比如glUseProgram(0)和glUseProgram(1),由于0和1表示了不同的program对象,因此,无法合并它们。
需要说明的是,上述这些判断依据都由OpenGL或OpenGL ES规范总结或推导得出的。
请参阅图3,是根据一示例性实施例示出的一种图形资源转换方法的流程图,如图3所示,图形资源转换方法用于终端中,包括以下步骤:
步骤301:在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
步骤302:根据用户状态集合中的每个所述图形资源操作确定对应的目标图形资源接口;
该步骤中,一种确定方式为:后台服务器可以根据所述图形资源操作查找预设的映射关系,根据该映射关系,可以得到与图形资源操作对应的目标图形资源接口;之后,在所述映射关系中记录所述图形资源操作与对应的目标图形资源接口的对应关联状态。
需要说明的是,该实施例中,所述OpenGL ES是OpenGL三维图形API的子集。
其中,映射关系是预先建立的,即建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系,其中,所述对应的目标图形资源接口可以包括:Metal图形资源接口、Vulkan图形资源接口或DX图形资源接口等,二者是一对一的映射关系。其具体的建立过程为:
按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码;其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码等;之后,建立OpenGL或OpenGL ES图形资源接口代码与所述对应的目标图形资源接口代码之间的映射关系。
其中,一种转换过程为;
按照OpenGL或OpenGL ES规范要求中不同图形资源接口代码所占的内存布局、坐标轴和裁剪空间,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码。
下面以将glBufferData操作转换成对应的目标图形资源操作为例。
首先按OpenGL或OpenGL ES规范要求进行参数检查,对于错误的参数进行相应的错误记录。然后根据参数要求,创建一个图形资源缓冲区对象实例,再后,向此实例传递glBufferData参数中表示要定向数据缓冲区的实现数据。
步骤303:通过对应的所述目标图形资源接口向图形资源库申请对应的图形处理器GPU。
该步骤中,调用对应的目标图形资源接口向图像资源库申请对应的图形处理器(GPU,Graphics Processing Unit),其中,图形处理器可以对图形渲染,或者图形绘制等进行处理。
步骤304:将申请到的所述GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的所述目标图形资源的转换。
该步骤中,图形处理器(GPU)通常称为显卡的处理器,它是显卡的"心脏",与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
目前,GPU多数拥有2D或3D图形加速功能。比如,如果CPU想画一个二维图形,只需要发个指令给GPU,如"在坐标位置(x,y)处画个长和宽为a×b大小的长方形",GPU就可以迅速计算出该图形的所有像素,并在显示器上指定位置画出相应的图形,画完后就通知CPU"我画完了",然后等待CPU发出下一条绘制图形的操作指令。也就是说,本公开使用了GPU,CPU就从图形处理的任务中解放出来,可以执行其他更多的系统任务,这样可以大大提高计算机的整体性能。
本示例性实施例示出的图形资源转换方法,在获取用户输入的OpenGL或OpenGLES图形的所有图形资源操作后,确定与所述图形资源操作对应的目标图形资源接口;通过所述对应的目标图形资源接口向图形资源库申请对应的图形处理器GPU;以及将申请到的所述GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的目标图形资源的转换。也就是说,本公开实施例旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,将所述OpenGL或OpenGL ES图形资源操作转换成对应的目标图形资源接口,实现了资源功能的转换,减少了研发人员的工作量及研发成本。
本公开中,在OpenGL API或OpenGL ES API(比如美颜、美妆和3D引擎等这些功能)与Vulkan(Metal或Metal等)API之间增加一个面向用户的转换模块,该转换模块包括三个层,在第二层(即中间层)按照OpenGL或OpenGL ES规范要求重新实现这些OpenGL API或OpenGL ES API的功能,即将上层OpenGL或OpenGL ES业务代码所需的图形操作通过第三层实时转换到图形操作上。该转换模块完全兼容OpenGL API或OpenGL ES API,所有基于这些API编写的上层业务代码无需修改,底层自动实时转为对应不同目标图形资源的API调用,实现了现有代码无缝切换,接入成本几乎零。另外,利用不同图形资源下API特性,提高不同图形资源下多核CPU利用率,改善绘制性能。转换模块中的中间层将不同图形API的动态转换到在一个项目内,避免传统工作流程中不同业务团队都需要分配研发资源去适配新图形API,降低了新图形API的学习及研发成本。
还请参阅图4,是根据一示例性实施例示出的一种图形资源转换方法的另一流程图,所述方法还可以包括:
步骤401:按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的有效性;
该步骤中,根据图形API规范要求,几乎每个图形API都需要检查自身的参数以及整个图形状态机的当前状态是否满足规范要求,只有满足规范要求才能进行正常的图形操作,否则会触发硬件错误,导致操作系统处于异常工作状态,从而影响用户使用当前设备。
步骤402:记录有效的所述各设备的参数和资源状态;
该步骤中,将有效的所述各设备的参数和资源状态记录在资源图形库中。
步骤403:在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
步骤404:根据所述用户状态集合中的每个所述图形资源操作确定对应的目标图形资源接口;
步骤405:通过所述对应的目标图形资源接口向图形资源库申请对应的图形处理器GPU;
步骤406:将申请到的所述GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的所述目标图形资源的转换。
其中,该实施例中的步骤403至步骤406与步骤301至步骤304同,具体详见上述,在此不再赘述。
本公开实施例中,旨在不改变原来OpenGL或OpenGL ES上层代码架构的基础上,在OpenGL或OpenGL ES原有架构的基础上增加一个转换模块该转换模块包括三层,并在第二层(即中间层)存储有功能代码关系映射表,通过该功能代码的映射关系,可以将OpenGL或OpenGL ES图形数据转换成对应的不同的图形数据,也就是说,通过设定的功能代码的映射关系可以将基于OpenGL或OpenGL ES的美颜、美妆、魔法表情等功能转换成基于Metal、Vulkan或DX的美颜、美妆、魔法表情等功能。实现代码自动优化,提高GPU计算性能,改善绘制性能,从而改善用户体验。进一步,在绘制前,先检查各设备的参数和状态的有效性,从而避免不合理的绘制行为,降低了图形相关崩溃率。
图5是根据一示例性实施例示出的一种图形资源转换装置的结构示意图。参照图5,该装置包括:接收模块51,获取模块52和镜像模块53,其中,
该接收模块51,被配置为接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令;
该获取模块52,被配置为在所述接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
该镜像模块53,被配置为将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:提示模块(图中未示),其中,
该提示模块,被配置为在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,提示所述用户是进行接口转换还是进行模拟接口转换;
该接收模块,还被配置为接收到所述用户输入的接口转换指令或者接收到所述用户输入的模拟接口转换指令;
所述镜像模块包括:映射模块和初始化模块,其中,
该映射模块,被配置为在所述接收模块接收到所述用户输入的接口转换指令时,将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换;
该初始化模块,被配置为在所述接收模块接收到所述用户输入的模拟接口转换指令时,将所述用户状态集合初始化到虚拟内存中进行模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还包括:第一划分模块和第一去重处理模块(图中未示),其中,
该第一划分模块,被配置为执行在所述获取模块获取绘制所述OpenGL或OpenGLES图形的所有图形资源操作的用户状态集合后,将所述用户状态集合按照行为操作类型划分为多个区间集合;
该第一去重处理模块,被配置为执行对所述多个区间集合中的每个区间集合进行函数的去重处理;
该镜像模块,具体被配置为执行将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述第一去重处理模块至少包括下述一个:第一参数去除模块,第二参数去除模块,第三参数去除模块,
该第一参数去除模块,被配置为执行对于每个区间集合中包括相同参数的相同函数,保留最新调用的所述函数记录,去除所有旧的所述函数的调用记录;
该第二参数去除模块,被配置为执行对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理;
该第三参数去除模块,被配置为执行减少每个区间集合中相同函数的重复参数的状态配置。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:检测模块和记录模块,其中,
检查模块,被配置为在所述接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令前,按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的合法性;
记录模块,被配置为记录合法的所述各设备的参数和资源状态。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述映射模块包括:确定模块、资源申请模块和资源分配模块(图中未示),其中,
确定模块,被配置为根据所述用户状态集合中的每个OpenGL或OpenGL ES图形资源操作确定对应的目标图形资源接口;
资源申请模块,被配置为通过所述对应的目标图形资源接口向图像资源库申请对应的图形处理器GPU;
资源分配模块,被配置为将申请到的所述图形处理器GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的所述目标图形资源的转换。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还包括:第二划分模块和第二去重处理模块,其中,
该第二划分模块,被配置为在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,将所述用户状态集合划分为多个区间集合;
该第二去重处理模块,被配置为对所述多个区间集合中的每个区间集合进行去重处理;
所述确定模块,具体被配置为根据所述第二去重处理模块去重处理后每个区间集合中的每个图形资源操作依次确定对应的目标图形资源接口。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述第二去重处理模块与第一去重处理模块包括的功能模块相同,即至少包括下述一个:第一参数去除模块,第二参数去除模块和,第三参数去除模块,其各个模块的功能和作用详见上述,在此不再赘述。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述确定模块包括:查找模块和第一记录模块,其中,
查找模块,被配置为根据所述用户状态集合中的每个图形资源操作查找预设的映射关系,得到对应的目标图形资源接口;
状态记录模块,被配置为在所述映射关系中记录每个所述图形资源操作与对应的目标图形资源接口的对应关联状态。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:建立模块(图中未示),其中,
该建立模块,被配置为在所述查找模块根据每个所述图形资源操作查找预设的映射关系之前,建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述建立模块包括:转换模块和建立子模块,其中,
该转换模块,被配置为按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码,其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码;
该建立子模块,被配置为建立OpenGL或OpenGL ES图形资源接口代码与对应的所述目标图形接口代码之间的映射关系。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述转换模块,具体被配置为按照OpenGL或OpenGL ES规范要求中不同图形资源接口代码所占的内存布局、坐标轴和裁剪空间,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例中,由于无需改变原有系统的代码架构,通过自定义的映射关系(或自定义数据结构)实现资源功能的转换,减少了研发人员的工作量及研发成本。兼容现有基于OpenGL API或OpenGL ES API实现的图形图像功能,实现了现有代码无缝切换。进一步利用Metal API、Vulkan API或DX API特性,提高多核CPU利用率,改善绘制性能,从而改善用户体验。利用Metal API、Vulkan API或DX API等提供的更丰富的图形接口,绘制出更好的图形图像。以及通过加入绘制前设备状态检查,避免不合理的绘制行为,从而降低图形相关崩溃率。以及通过自研shader转换/编译器,实现代码自动优化,提高GPU计算性能,改善绘制性能,从而改善用户体验。
图6是根据一示例性实施例示出的一种电子设备600的框图。电子设备可以为移动终端也可以为服务器,本公开实施例中以电子设备为移动终端为例进行说明。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RF ID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述所示的图形资源转换方法。
在示例性实施例中,还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述的图形资源转换方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述的图形资源转换方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述所示的图形资源转换方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备600的处理器620执行时,使得所述电子设备600执行上述所示的图形资源转换方法。
图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述方法图形资源转换方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (14)

1.一种图形资源转换方法,其特征在于,包括:
按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的有效性;
记录有效的所述各设备的参数和资源状态;
在接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
将所述用户状态集合按照行为操作类型划分为多个区间集合;
对所述多个区间集合中的每个区间集合进行函数的去重处理;
将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换,包括:将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
2.根据权利要求1所述的图形资源转换方法,其特征在于,在所述获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,所述方法还包括:
提示所述用户是进行接口转换还是进行模拟接口转换;
如果接收到所述用户输入的接口转换指令,则执行将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换的步骤;
如果接收到所述用户输入的模拟接口转换指令,则执行将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换的步骤。
3.根据权利要求1所述的图形资源转换方法,其特征在于,所述对所述多个区间集合中的每个区间集合进行函数的去重处理,包括:
对于每个区间集合中包括相同参数的相同函数,保留最新调用的函数记录,去除所有旧的所述函数的调用记录;或者
对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理;或者
减少每个区间集合中相同函数的重复参数的状态配置。
4.根据权利要求1或2所述的图形资源转换方法,其特征在于,所述将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换,包括:
根据所述用户状态集合中的每个图形资源操作确定对应的目标图形资源接口;
通过对应的所述目标图形资源接口向图形资源库申请对应的图形处理器GPU;
将申请到的所述GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应的所述目标图形资源的转换。
5.根据权利要求4所述的图形资源转换方法,其特征在于,所述根据所述用户状态集合中的每个所述图形资源操作确定对应的目标图形资源接口,包括:
根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系,得到对应的目标图形资源接口;
在所述映射关系中记录所述每个所述图形资源操作与对应的所述目标图形资源接口的对应关联状态。
6.根据权利要求5所述的图形资源转换方法,其特征在于,在所述根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系之前,所述方法还包括:
建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系,具体包括:
按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码,其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码;
建立OpenGL或OpenGL ES图形资源接口代码与对应的所述目标图形资源接口代码之间的映射关系。
7.一种图形资源转换装置,其特征在于,包括:
检查模块,被配置为在接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令前,按照OpenGL或OpenGL ES的规范文档要求检查各设备的参数和资源状态的合法性;
记录模块,被配置为记录合法的所述各设备的参数和资源状态;
接收模块,被配置为接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令;
获取模块,被配置为在所述接收模块接收到用户输入的OpenGL或OpenGL ES图形的绘制结束指令时,获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合;
第一划分模块,被配置为执行在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,将所述用户状态集合按照行为操作类型划分为多个区间集合;
第一去重处理模块,被配置为执行对所述多个区间集合中的每个区间集合进行函数的去重处理;
镜像模块,被配置为将所述用户状态集合映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换,所述镜像模块,具体被配置为执行将去重处理后的所述用户状态集合中每个区间集合都映射到对应的硬件设备上或初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
8.根据权利要求7所述的资源转换装置,其特征在于,所述装置还包括:
提示模块,被配置为在所述获取模块获取绘制所述OpenGL或OpenGL ES图形的所有图形资源操作的用户状态集合后,提示所述用户是进行接口转换还是进行模拟接口转换;
所述接收模块,还被配置为接收到所述用户输入的接口转换指令或者接收到所述用户输入的模拟接口转换指令;
所述镜像模块包括:
映射模块,被配置为在所述接收模块接收到所述用户输入的接口转换指令时,将所述用户状态集合映射到对应的硬件设备上进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换;
初始化模块,被配置为在所述接收模块接收到所述用户输入的模拟接口转换指令时,将所述用户状态集合初始化到虚拟内存中模拟对应的硬件设备进行OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口的转换。
9.根据权利要求7所述的资源转换装置,其特征在于,所述第一去重处理模块至少包括下述一个:
第一参数去除模块,被配置为执行对于每个区间集合中包括相同参数的相同函数,保留最新调用的函数记录,去除所有旧的所述函数的调用记录;
第二参数去除模块,被配置为执行对于每个区间集合中的包括不同参数的相同函数,依据OpenGL或OpenGL ES规范或资源硬件特点进行去重处理;
第三参数去除模块,被配置为执行减少每个区间集合中相同函数的重复参数的状态配置。
10.根据权利要求8所述的资源转换装置,其特征在于,所述映射模块包括:
确定模块,被配置为根据所述用户状态集合中的每个图形资源操作确定对应的目标图形资源接口;
资源申请模块,被配置为通过所述目标图形资源接口向图形资源库申请对应的图形处理器GPU;
资源分配模块,被配置为将申请到的所述图形处理器GPU分配给所述用户,实现所述OpenGL或OpenGL ES图形资源与对应所述目标图形资源的转换。
11.根据权利要求10所述的资源转换装置,其特征在于,所述确定模块包括:
查找模块,被配置为根据所述用户状态集合中的每个所述图形资源操作查找预设的映射关系,得到对应的目标图形资源接口;
状态记录模块,被配置为在所述映射关系中记录每个所述图形资源操作与对应的目标图形资源接口的对应关联状态。
12.根据权利要求11所述的图形资源转换装置,其特征在于,所述装置还包括:
建立模块,被配置为在所述查找模块根据每个所述图形资源操作查找预设的映射关系之前,建立OpenGL或OpenGL ES图形资源接口与对应的目标图形资源接口之间的映射关系,具体包括:
转换模块,被配置为按照OpenGL或OpenGL ES规范要求,将OpenGL或OpenGL ES图形资源接口代码依次转换成对应的目标图形资源接口代码,其中,所述对应的目标图形资源接口代码包括:Metal图形资源接口代码、Vulkan图形资源接口代码或DX图形资源接口代码;
建立子模块,被配置为建立OpenGL或OpenGL ES图形资源接口代码与对应的所述目标图形资源接口代码之间的映射关系。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-6中任一项所述的图形资源转换方法。
14.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行权利要求1-6中任一项所述的图形资源转换方法。
CN201910775810.7A 2019-08-21 2019-08-21 图形资源转换方法、装置、电子设备及存储介质 Active CN110659024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910775810.7A CN110659024B (zh) 2019-08-21 2019-08-21 图形资源转换方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910775810.7A CN110659024B (zh) 2019-08-21 2019-08-21 图形资源转换方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110659024A CN110659024A (zh) 2020-01-07
CN110659024B true CN110659024B (zh) 2023-12-26

Family

ID=69037657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910775810.7A Active CN110659024B (zh) 2019-08-21 2019-08-21 图形资源转换方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110659024B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111862254B (zh) * 2020-07-17 2023-06-16 福建天晴数码有限公司 一种基于跨渲染平台的材质渲染的方法及其系统
CN115167949B (zh) * 2022-09-08 2022-12-06 西安芯瞳半导体技术有限公司 高版本OpenGL函数适配低版本应用程序的方法、装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10074206B1 (en) * 2017-05-23 2018-09-11 Amazon Technologies, Inc. Network-optimized graphics library for virtualized graphics processing
US10102605B1 (en) * 2016-08-26 2018-10-16 Amazon Technologies, Inc. Graphics library virtualization for virtualized graphics processing
CN110136230A (zh) * 2019-03-29 2019-08-16 北京达佳互联信息技术有限公司 动画显示方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
US10074206B1 (en) * 2017-05-23 2018-09-11 Amazon Technologies, Inc. Network-optimized graphics library for virtualized graphics processing
CN110136230A (zh) * 2019-03-29 2019-08-16 北京达佳互联信息技术有限公司 动画显示方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于OpenGL ES的3D图形绘制管线优化问题;莫军等;《计算机应用研究》;20070110(第01期);全文 *

Also Published As

Publication number Publication date
CN110659024A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
KR102193404B1 (ko) 상호작용 개발 환경으로부터의 소프트웨어 아티팩트의 점진적 컴파일링 기법
US20170046123A1 (en) Device for providing sound user interface and method thereof
CN110990105A (zh) 界面显示方法、装置、电子设备及存储介质
KR20180079904A (ko) 전자 장치 및 그의 표시 방법
US20210173681A1 (en) Method and device for displaying interface, electronic equipment, server, and storage medium
KR20180013277A (ko) 그래픽 객체를 표시하기 위한 전자 장치 및 컴퓨터 판독 가능한 기록 매체
CN110874217A (zh) 快应用的界面显示方法、装置及存储介质
KR102586628B1 (ko) 전자 장치 및 전자 장치의 메모리 관리 방법
WO2021244267A1 (zh) 应用程序的移植方法、装置、设备及介质
US20170139665A1 (en) Sharing content operating method and electronic device for supporting the same
CN110968362B (zh) 应用运行方法、装置及存储介质
CN110659024B (zh) 图形资源转换方法、装置、电子设备及存储介质
CN111737100A (zh) 数据获取方法、装置、设备及存储介质
KR20180081232A (ko) 화면을 표시하기 위한 방법 및 그 전자 장치
KR20180043098A (ko) 영상을 표시하기 위한 전자 장치 및 컴퓨터 판독 가능한 기록 매체
CN111078325B (zh) 应用程序运行方法、装置、电子设备及存储介质
CN110971974B (zh) 配置参数创建方法、装置、终端及存储介质
KR20180025763A (ko) 미라캐스트 제공 장치 및 방법
KR20170098093A (ko) 전자 장치 및 그의 동작 방법
CN114443189B (zh) 一种图像处理方法和电子设备
CN111865630B (zh) 拓扑信息获取方法、装置、终端及存储介质
CN110908629A (zh) 电子设备操作方法、装置、电子设备和存储介质
CN110751592A (zh) 图形资源转换方法、装置、电子设备及存储介质
CN111104183B (zh) 应用程序运行方法、装置、电子设备及存储介质
EP3835967A1 (en) Card data display method and apparatus, and storage medium

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