CN110515623B - 图形操作实现方法、装置、电子设备及存储介质 - Google Patents

图形操作实现方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110515623B
CN110515623B CN201910616644.6A CN201910616644A CN110515623B CN 110515623 B CN110515623 B CN 110515623B CN 201910616644 A CN201910616644 A CN 201910616644A CN 110515623 B CN110515623 B CN 110515623B
Authority
CN
China
Prior art keywords
code
graphic
graphics
operation code
graph
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
CN201910616644.6A
Other languages
English (en)
Other versions
CN110515623A (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 CN201910616644.6A priority Critical patent/CN110515623B/zh
Publication of CN110515623A publication Critical patent/CN110515623A/zh
Application granted granted Critical
Publication of CN110515623B publication Critical patent/CN110515623B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开是关于一种图形操作实现方法、装置、电子设备及存储介质。所述方法包括:在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;执行所述第二图形操作代码,实现所述图形操作。本公开无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。

Description

图形操作实现方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机图形学技术领域,尤其涉及一种图形操作实现方法、装置、电子设备及存储介质。
背景技术
目前,移动终端的一些APP(Application,应用程序)(如快手APP等)中通常设置有美颜等功能,而在实现美颜功能时,目前常用的做法是:通过移动终端的OpenGL ES(OpenGL for Embedded Systems)实现美颜等功能。
但是,很多手机厂商正在规划采用Vulkan取代OpenGL ES的应用,而对于多数APP而言,如果重新研发新的架构支持美颜等功能,需要对原有的代码架构进行更改,导致新增代码量较大,并增加了研发人员的工作量。
公开内容
为克服相关技术中存在的问题,本公开提供了一种图形操作实现方法、装置、电子设备及存储介质。
根据本公开实施例的第一方面,提供了一种图形操作实现方法,包括:
在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;
在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;
根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;
执行所述第二图形操作代码,实现所述图形操作。
在本公开的一种具体实现中,所述将所述第一图形操作代码转换为第二图形操作代码的步骤,包括:
申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存;
在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系;
根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
在本公开的一种具体实现,所述根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码的步骤,包括:
根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
在本公开的一种具体实现,所述执行所述第二图形操作代码,实现所述图形操作的步骤,包括:
调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码;
执行所述第二图形操作的代码,实现所述图形操作。
根据本公开实施例的第二方面,提供了一种图形操作实现装置,包括:图形操作代码获取模块,用于在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;代码转换模板获取模块,用于在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;图形操作代码转换模块,用于根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;图形操作代码执行模块,用于执行所述第二图形操作代码,实现所述图形操作。
在本公开的一种具体实现中,所述图形操作代码转换模块包括:
图形操作代码存储子模块,用于申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存;
映射关系获取子模块,用于在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系;
图形代码生成子模块,用于根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
在本公开的一种具体实现中,所述图形代码生成子模块包括:
初始图形代码获取子模块,用于根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
第二图形代码获取子模块,用于对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
在本公开的一种具体实现中,所述图形操作代码执行模块包括:
图形操作代码获取子模块,用于调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码;
图形操作代码执行子模块,用于执行所述第二图形操作的代码,实现所述图形操作。
根据本公开实施例的第三方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行上述任一项所述的图形操作实现方法。
根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述任一项所述的图形操作实现方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例通过在监测到用户执行的图形操作时,获取图形操作对应的第一图形操作代码,第一图形操作代码为OpenGL ES类型的代码,在移动终端执行图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,代码转换模板保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,根据映射关系,将第一图形操作代码转换为第二图形操作代码,第二图形操作代码为Vulkan类型的代码,执行第二图形操作代码,实现所述图形操作。本公开实施例中,直接在原有架构中将图形操作对应的OpenGL ES 类型的代码转换为Vulkan类型的图形操作代码,无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种图形操作实现方法的流程图。
图2是根据一示例性实施例示出的一种图形操作实现方法的流程图。
图3是根据一示例性实施例示出的一种图形操作实现装置的框图。
图4是根据一示例性实施例示出的一种图形操作实现装置的框图。
图5是根据一示例性实施例示出的一种图形操作实现的装置的框图。
图6是根据一示例性实施例示出的一种图形操作实现的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
实施例一
图1是根据一示例性实施例示出的一种图形操作实现方法的流程图,如图1所示,图形操作实现方法用于移动终端中,包括以下步骤:
在步骤S11中,在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码。
在本公开实施例中,移动终端可以为手机、PAD(Portable Android Device,平板电脑) 等移动电子设备。
本公开实施例可以应用于各类具有图形操作的APP(Application,应用程序)(如快手APP等)中,对原有的图形操作对应的OpenGL ES类型的代码进行转换的过程中。
图形操作可以为APP中的美颜等操作,如瘦脸、大眼、缩小鼻头或鼻翼等操作。
用户执行的图形操作可以为用户点击APP界面的图形操作按钮触发的图形操作,例如,在快手APP中,通常设置有图形操作按钮,如“美颜”按钮,在用户点击该按钮之后,可以触发形成相应的图形操作。
用户执行的图形操作也可以为用户输入的语音指令而触发的图形操作,例如,用户输入一段美颜的启动语音指令,如用户输入一段“启动美颜操作”的语音,通过对该语音进行识别,从而生成语音指令,以触发图形操作。
在具体实现中,用户还可以采用其它方式触发图形操作,具体地,可以根据实际情况而定,本公开实施例对此不加以限制。
在移动终端可以预先设置图形操作对应的监测程序,可以实时监测用户执行的图形操作指令,在监测到用户执行的图形操作指令时,即监测到用户执行的图形操作。
本公开实施例中,是针对APP中各图形操作对应的代码为OpenGL ES类型的代码进行的改进。
第一图形操作代码是指图形操作对应的OpenGL ES类型的代码。
在APP中可以预先保存图形操作对应的代码,例如,在接收到用户执行的美颜操作时,可以调用预先存储的美颜操作代码以实现美颜功能等等,该代码为OpenGL ES类型的代码,在监测到用户执行的图形操作指令之后,可以获取在相应APP中预先保存的对应于图形操作的第一图形操作代码。
在获取到图形操作对应的第一图形操作代码之后,执行步骤S12。
在步骤S12中,在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan 类型的代码之间的映射关系。
在本公开中,Vulkan模式是指移动终端执行的图形操作对应的代码的模式,即本公开中提及的Vulkan模式即是指移动终端执行的图形操作的代码为Vulkan代码。
代码转换模板是指移动终端中预先配置的,用于将OpenGL ES类型的代码转换为Vulkan类型的代码的模板。
在代码转换模板中预先保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,通过该映射关系可以明确将某个OpenGL ES类型的代码具体转换为哪个Vulkan类型的代码,例如,在代码转换模板中保存有如下映射关系,A-a,B-b,C-c,其中,A、 B和C为OpenGL ES类型的代码,a、b和c为Vulkan类型的代码,则在获取A、B和C 之后,可以明确将A转换为a,将B转换为b,将C转换为c,即实现OpenGL ES类型的代码至Vulkan类型的代码的转换。
可以理解地,上述示例仅是为了更好地理解本公开实施例的技术方案而列举的示例,不作为对本公开实施例的唯一限制。
对于上述映射关系可以是由业务人员预先根据图形操作平台(如快手平台等)提供的图形操作对应的代码,而预先获取的映射关系,在获取该映射关系之后,可以将该映射关系保存于配置的代码转换模板中,从而可以在代码转换模板中完成代码转换过程。
当然,对于不同的图形操作(如美颜、画眉等)可以具有不同的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,具体地,可以根据实际情况而定,本公开实施例对此不加以限制。
在移动终端执行图形操作的模式为Vulkan模式,并获取预先配置的代码转换模板之后,执行步骤S13。
在步骤S13中,根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码;所述第二图形操作代码为Vulkan类型的代码。
在本公开实施例中,第二图形操作代码是指图形操作对应的Vulkan类型的代码。
在获取到图形操作对应的第一图形操作代码之后,可以对第一图形操作代码进行转换处理,以将第一图形操作代码转换为第二图形操作代码,即将图形操作对应的OpenGLES 类型的代码转换为对应的Vulkan类型的代码。
具体地,在代码转换模板预先保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,当然,不同的图形操作可以对应不同的映射关系,如与美颜操作对应的映射关系A等等,在图形操作为美颜操作时,可以根据美颜操作对应的映射关系A,对第一图形操作代码进行代码转换。而在具体转换过程中,可以根据具体的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,实现OpenGL ES类型的代码与Vulkan类型的代码之间的转换,例如,承接上述示例,在确定美颜操作对应的映射关系A之后,美颜操作对应的图形代码包括代码A、代码B和代码C,而映射关系A中指定了代码A 对应于代码a,代码B对应于代码b,而代码C对应于代码c,其中,代码a、代码b和代码c为Vulkan类型的代码,通过该映射关系,可以实现美颜操作对应的OpenGL ES类型的代码与Vulkan类型的代码之间的代码转换过程。
可以理解地,上述示例仅是为了更好地理解本公开实施例的技术方案而列举的示例,不作为对本公开实施例的唯一限制。
在获取到预先配置的代码转换模板之后,可以根据代码转换模板中预先保存的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,将第一图形操作代码转换为第二图形操作代码,即实现了图形操作代码从OpenGL ES类型的代码转换为Vulkan类型的代码。
在将第一图形操作代码转换为第二图形操作代码之后,执行步骤S14。
在步骤S14中,执行所述第二图形操作代码,实现所述图形操作。
在转换得到图形操作对应的第二图形操作代码之后,可以调用图形硬件层的图形操作接口函数以执行第二图形操作代码,从而实现相应的图形操作。
本公开实施例中,通过在原有架构中直接对图形操作对应的OpenGL ES类型的代码进行转换,得到Vulkan类型的图形操作代码,而无需改变原有的架构,减少了研发人员的工作量,节省了研发成本。
本公开实施例提供的图形操作实现方法,通过在监测到用户执行的图形操作时,获取图形操作对应的第一图形操作代码,第一图形操作代码为OpenGL ES类型的代码,在移动终端执行图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,代码转换模板保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,根据映射关系,将第一图形操作代码转换为第二图形操作代码,第二图形操作代码为Vulkan类型的代码,执行第二图形操作代码,实现所述图形操作。本公开实施例中,直接在原有架构中将图形操作对应的OpenGL ES类型的代码转换为Vulkan类型的图形操作代码,无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。
实施例二
图2是根据一示例性实施例示出的一种图形操作实现方法的流程图,如图2所示,图形操作实现方法可以应用于移动终端中,包括以下步骤:
在步骤S21中,在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码。
在本公开实施例中,移动终端可以为手机、PAD(Portable Android Device,平板电脑) 等移动电子设备。
本公开实施例可以应用于各类具有图形操作的APP(Application,应用程序)(如快手APP等)中,对原有的图形操作对应的OpenGL ES类型的代码进行转换的过程中。
图形操作可以为APP中的美颜等操作,如瘦脸、大眼、缩小鼻头或鼻翼等操作。
用户执行的图形操作可以为用户点击APP界面的图形操作按钮触发的图形操作,例如,在快手APP中,通常设置有图形操作按钮,如“美颜”按钮,在用户点击该按钮之后,可以触发形成相应的图形操作。
用户执行的图形操作也可以为用户输入的语音指令而触发的图形操作,例如,用户输入一段美颜的启动语音指令,如用户输入一段“启动美颜操作”的语音,通过对该语音进行识别,从而生成语音指令,以触发图形操作。
在具体实现中,用户还可以采用其它方式触发图形操作,具体地,可以根据实际情况而定,本公开实施例对此不加以限制。
在移动终端可以预先设置图形操作对应的监测程序,可以实时监测用户执行的图形操作指令,在监测到用户执行的图形操作指令时,即监测到用户执行的图形操作。
本公开实施例中,是针对APP中各图形操作对应的代码为OpenGL ES类型的代码进行的改进。
第一图形操作代码是指图形操作对应的OpenGL ES类型的代码。
在APP中可以预先保存图形操作对应的代码,例如,在接收到用户执行的美颜操作时,可以调用预先存储的美颜操作代码以实现美颜功能等等,该代码为OpenGL ES类型的代码,在监测到用户执行的图形操作指令之后,可以获取在相应APP中预先保存的对应于图形操作的第一图形操作代码。
在获取到图形操作对应的第一图形操作代码之后,执行步骤S22。
在步骤S22中,在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan 类型的代码之间的映射关系。
在本公开中,Vulkan模式是指移动终端执行的图形操作对应的代码的模式,即本公开中提及的Vulkan模式即是指移动终端执行的图形操作的代码为Vulkan代码。
代码转换模板是指移动终端中预先配置的,用于将OpenGL ES类型的代码转换为Vulkan类型的代码的模板。
在代码转换模板中预先保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,通过该映射关系可以明确将某个OpenGL ES类型的代码具体转换为哪个Vulkan类型的代码,例如,在代码转换模板中保存有如下映射关系,A-a,B-b,C-c,其中,A、 B和C为OpenGL ES类型的代码,a、b和c为Vulkan类型的代码,则在获取A、B和C 之后,可以明确将A转换为a,将B转换为b,将C转换为c,即实现OpenGL ES类型的代码至Vulkan类型的代码的转换。
可以理解地,上述示例仅是为了更好地理解本公开实施例的技术方案而列举的示例,不作为对本公开实施例的唯一限制。
对于上述映射关系可以是由业务人员预先根据图形操作平台(如快手平台等)提供的图形操作对应的代码,而预先获取的映射关系,在获取该映射关系之后,可以将该映射关系保存于配置的代码转换模板中,从而可以在代码转换模板中完成代码转换过程。
当然,对于不同的图形操作(如美颜、画眉等)可以具有不同的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,具体地,可以根据实际情况而定,本公开实施例对此不加以限制。
在移动终端执行图形操作的模式为Vulkan模式,并获取预先配置的代码转换模板之后,执行步骤S23。
在步骤S23中,申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存。
代码缓存内存是指系统中用于缓存第一图形操作代码的内存空间。
在移动终端执行图形操作的模式为Vulkan模式,并获取预先配置的代码转换模板,可以向系统申请代码缓存内存,以将第一图形操作代码缓存于代码缓存内存中。
在系统接收到代码缓存内存的申请时,可以对系统中的内存空间进行查询,以查询出指定内存容量的内存空间,以确保该内存空间可以缓存图形操作对应的第一图形操作代码所占用的内存,进而,提供指定内存容量的内存空间,以作为代码缓存内存。
在将第一图形操作代码存储于代码缓存内存之后,执行步骤S24。
在步骤S24中,在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系。
代码缓存内存可以预先设置一个调用接口,通过该调用接口可以直接调用代码转换模板。
在将第一图形操作代码存储于代码缓存内存之后,可以通过调用预先设置的调用接口调用代码转换模板,并从代码转换模板中获取OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系。
在获取OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系之后,执行步骤 S25。
在步骤S25中,根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
在本公开实施例中,第二图形操作代码是指图形操作对应的Vulkan类型的代码。
在获取到图形操作对应的第一图形操作代码之后,可以对第一图形操作代码进行转换处理,以将第一图形操作代码转换为第二图形操作代码,即将图形操作对应的OpenGLES 类型的代码转换为对应的Vulkan类型的代码。
具体地,在代码转换模板预先保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,当然,不同的图形操作可以对应不同的映射关系,如与美颜操作对应的映射关系A等等,在图形操作为美颜操作时,可以根据美颜操作对应的映射关系A,对第一图形操作代码进行代码转换。而在具体转换过程中,可以根据具体的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,实现OpenGL ES类型的代码与Vulkan类型的代码之间的转换,例如,承接上述示例,在确定美颜操作对应的映射关系A之后,美颜操作对应的图形代码包括代码A、代码B和代码C,而映射关系A中指定了代码A 对应于代码a,代码B对应于代码b,而代码C对应于代码c,其中,代码a、代码b和代码c为Vulkan类型的代码,通过该映射关系,可以实现美颜操作对应的OpenGL ES类型的代码与Vulkan类型的代码之间的代码转换过程。
可以理解地,上述示例仅是为了更好地理解本公开实施例的技术方案而列举的示例,不作为对本公开实施例的唯一限制。
在获取到预先配置的代码转换模板之后,可以根据代码转换模板中预先保存的OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,将第一图形操作代码转换为第二图形操作代码,即实现了图形操作代码从OpenGL ES类型的代码转换为Vulkan类型的代码。
当然,在将第一图形操作代码转换为第二图形操作代码之后,由于不同类型的图形操作代码执行顺序等是不相同的,因此,需要对第二图形操作代码的格式进行调整,具体地,以下述具体实现方式进行详细描述。
在本公开实施例的一种实现方式中,上述步骤S25可以包括:
在子步骤A1中,根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
在子步骤A2中,对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
在本公开实施例中,初始图形代码是指将第一图形操作代码转换为Vulkan类型的代码而得到的初始代码。
在根据OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,将第一图形操作代码进行初步转换后,仅是得到了图形操作对应的Vulkan类型的初始代码,而在实现图形操作时,Vulkan类型的图形操作代码还需要遵守特定的逻辑,比如执行顺序,执行规则,代码格式等等。
因而,在得到初始图形操作代码之后,还需要对初始图形操作代码的格式进行调整,在对初始图形操作代码的格式进行调整时,也可以按照Vulkan类型的代码的代码执行顺序、执行逻辑等等,对初始图形操作代码的格式进行调整,从而得到最终的图形操作对应的第二图形操作代码,即最终的Vulkan类型的图形操作代码。
在根据映射关系对第一图形操作代码进行转换处理,生成第二图形操作代码之后,执行步骤S26。
在步骤S26中,调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码。
图形操作接口函数是指图形操作对应的API接口函数,不同的代码对应有不同的API 接口函数。
图形硬件层是指用于执行图形操作代码的操作层。
在代码缓存内存中将第一图形操作代码转换为第二图形操作代码之后,可以调用图形硬件层的图形操作接口函数,从代码缓存内存中获取第二图形操作代码。
在调用图形硬件层的图形操作接口函数从代码缓存内存中获取第二图形操作代码之后,执行步骤S27。
在步骤S27中,执行所述第二图形操作代码,实现所述图形操作。
在从代码缓存内存中获取第二图形操作代码之后,可以在图形硬件层执行第二图形操作代码,具体地,可以根据第二图形操作代码的执行顺序,从图形硬件层依次调用相应的API接口函数,以执行第二图形操作代码,从而实现图形操作。
本公开实施例提供的图形操作实现方法,通过在监测到用户执行的图形操作时,获取图形操作对应的第一图形操作代码,第一图形操作代码为OpenGL ES类型的代码,在移动终端执行图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,代码转换模板保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,根据映射关系,将第一图形操作代码转换为第二图形操作代码,第二图形操作代码为Vulkan类型的代码,执行第二图形操作代码,实现所述图形操作。本公开实施例中,直接在原有架构中将图形操作对应的OpenGL ES类型的代码转换为Vulkan类型的图形操作代码,无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。
实施例三
图3是根据一示例性实施例示出的一种图形操作实现装置的框图。
参照图3,该装置包括:
图形操作代码获取模块310,用于在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;
代码转换模板获取模块320,用于在所述移动终端执行所述图形操作的模式为Vulkan 模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;
图形操作代码转换模块330,用于根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;
图形操作代码执行模块340,用于执行所述第二图形操作代码,实现所述图形操作。
本公开实施例提供的图形操作实现装置,通过在监测到用户执行的图形操作时,获取图形操作对应的第一图形操作代码,第一图形操作代码为OpenGL ES类型的代码,在移动终端执行图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,代码转换模板保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,根据映射关系,将第一图形操作代码转换为第二图形操作代码,第二图形操作代码为Vulkan类型的代码,执行第二图形操作代码,实现所述图形操作。本公开实施例中,直接在原有架构中将图形操作对应的OpenGL ES类型的代码转换为Vulkan类型的图形操作代码,无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。
实施例四
图4是根据一示例性实施例示出的一种图形操作实现装置的框图。
参照图4,该装置包括:
图形操作代码获取模块410,用于在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;
代码转换模板获取模块420,用于在所述移动终端执行所述图形操作的模式为Vulkan 模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;
图形操作代码转换模块430,用于根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;
图形操作代码执行模块440,用于执行所述第二图形操作代码,实现所述图形操作。
在本公开的一种具体实现中,所述图形操作代码转换模块430包括:
图形操作代码存储子模块431,用于申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存;
映射关系获取子模块432,用于在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系;
图形代码生成子模块433,用于根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
在本公开的一种具体实现中,所述图形代码生成子模块433包括:
初始图形代码获取子模块,用于根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
第二图形代码获取子模块,用于对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
在本公开的一种具体实现中,所述图形操作代码执行模块440包括:
图形操作代码获取子模块441,用于调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码;
图形操作代码执行子模块442,用于执行所述第二图形操作的代码,实现所述图形操作。
本公开实施例提供的图形操作实现装置,通过在监测到用户执行的图形操作时,获取图形操作对应的第一图形操作代码,第一图形操作代码为OpenGL ES类型的代码,在移动终端执行图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,代码转换模板保存有OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系,根据映射关系,将第一图形操作代码转换为第二图形操作代码,第二图形操作代码为Vulkan类型的代码,执行第二图形操作代码,实现所述图形操作。本公开实施例中,直接在原有架构中将图形操作对应的OpenGL ES类型的代码转换为Vulkan类型的图形操作代码,无需改变原有架构,从而减少了研发人员的工作量,节省了研发成本。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于图形操作实现的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件 814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800 一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD 图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图6是根据一示例性实施例示出的一种用于图形操作实现的装置1900的框图。例如,装置1900可以被提供为一服务器。参照图6,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法:在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述 OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;执行所述第二图形操作代码,实现所述图形操作。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM, MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种图形操作实现方法,应用于移动终端,其特征在于,包括:
在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;
在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;
根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;
执行所述第二图形操作代码,实现所述图形操作。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一图形操作代码转换为第二图形操作代码的步骤,包括:
申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存;
在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系;
根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
3.根据权利要求2所述的方法,其特征在于,所述根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码的步骤,包括:
根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
4.根据权利要求2所述的方法,其特征在于,所述执行所述第二图形操作代码,实现所述图形操作的步骤,包括:
调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码;
执行所述第二图形操作的代码,实现所述图形操作。
5.一种图形操作实现装置,应用于移动终端,其特征在于,包括:
图形操作代码获取模块,用于在监测到用户执行的图形操作时,获取所述图形操作对应的第一图形操作代码,所述第一图形操作代码为OpenGL ES类型的代码;
代码转换模板获取模块,用于在所述移动终端执行所述图形操作的模式为Vulkan模式时,获取预先配置的代码转换模板,所述代码转换模板保存有所述OpenGL ES类型的代码与Vulkan类型的代码之间的映射关系;
图形操作代码转换模块,用于根据所述映射关系,将所述第一图形操作代码转换为第二图形操作代码,所述第二图形操作代码为Vulkan类型的代码;
图形操作代码执行模块,用于执行所述第二图形操作代码,实现所述图形操作。
6.根据权利要求5所述的装置,其特征在于,所述图形操作代码转换模块包括:
图形操作代码存储子模块,用于申请代码缓存内存,并将所述第一图形操作代码存储于所述代码缓存内存;
映射关系获取子模块,用于在所述代码缓存内存中调用所述代码转换模板,获取所述映射关系;
图形代码生成子模块,用于根据所述映射关系对所述第一图形操作代码进行转换处理,生成所述第二图形操作代码。
7.根据权利要求6所述的装置,其特征在于,所述图形代码生成子模块包括:
初始图形代码获取子模块,用于根据所述映射关系,将所述第一图形操作代码转换为初始图形操作代码;所述初始图像操作的代码为Vulkan类型的代码;
第二图形代码获取子模块,用于对所述初始图形操作代码的格式进行调整,得到所述第二图形操作代码。
8.根据权利要求6所述的装置,其特征在于,所述图形操作代码执行模块包括:
图形操作代码获取子模块,用于调用图形硬件层的图形操作接口函数从所述代码缓存内存中获取所述第二图形操作代码;
图形操作代码执行子模块,用于执行所述第二图形操作的代码,实现所述图形操作。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1至4中任一项所述的图形操作实现方法。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得所述移动终端能够执行权利要求1至4中任一项所述的图形操作实现方法。
CN201910616644.6A 2019-07-09 2019-07-09 图形操作实现方法、装置、电子设备及存储介质 Active CN110515623B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910616644.6A CN110515623B (zh) 2019-07-09 2019-07-09 图形操作实现方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910616644.6A CN110515623B (zh) 2019-07-09 2019-07-09 图形操作实现方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110515623A CN110515623A (zh) 2019-11-29
CN110515623B true CN110515623B (zh) 2023-01-20

Family

ID=68622321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910616644.6A Active CN110515623B (zh) 2019-07-09 2019-07-09 图形操作实现方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110515623B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114494547A (zh) * 2020-11-13 2022-05-13 华为技术有限公司 一种绘制命令处理方法及其相关设备
CN116126320B (zh) * 2022-12-21 2024-02-23 瑞庭网络技术(上海)有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689970B1 (en) * 2003-10-31 2010-03-30 The Mathworks, Inc. System and method for generating source code from a graphical model
CN102681855A (zh) * 2012-05-25 2012-09-19 南京邮电大学 一种面向无线传感网的模型到代码的转化方法
CN108595184A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码转换方法、装置、计算机存储介质和代码转换终端
CN108717357A (zh) * 2018-05-23 2018-10-30 中国平安人寿保险股份有限公司 页面展示代码转换方法、装置、设备及计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513978B2 (en) * 2014-10-17 2016-12-06 International Business Machines Corporation Integrated support for application porting transparency and streamlined system migration in heterogeneous platform environments
US10162611B2 (en) * 2016-01-04 2018-12-25 Syntel, Inc. Method and apparatus for business rule extraction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689970B1 (en) * 2003-10-31 2010-03-30 The Mathworks, Inc. System and method for generating source code from a graphical model
CN102681855A (zh) * 2012-05-25 2012-09-19 南京邮电大学 一种面向无线传感网的模型到代码的转化方法
CN108595184A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码转换方法、装置、计算机存储介质和代码转换终端
CN108717357A (zh) * 2018-05-23 2018-10-30 中国平安人寿保险股份有限公司 页面展示代码转换方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN110515623A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
US9667774B2 (en) Methods and devices for sending virtual information card
EP3188066B1 (en) A method and an apparatus for managing an application
EP2998899A1 (en) Method and apparatus for running application program
EP3136793A1 (en) Method and apparatus for awakening electronic device
US20170060260A1 (en) Method and device for connecting external equipment
US20160226519A1 (en) Method and device for compressing firmware program, method and device for decompressing firmware program
US9870239B2 (en) Method and device for running application program
CN107657590B (zh) 图片处理方法、装置及存储介质
US20180342029A1 (en) Method, apparatus terminal device, and computer readable storage medium for invoking a virtual public transport card
EP3327548A1 (en) Method, device and terminal for processing live shows
CN112905089B (zh) 设备控制方法及装置
US20180238748A1 (en) Pressure detection method and apparatus, and storage medium
EP3173925B1 (en) Interface display method and apparatus, computer program and recording medium
CN111240694A (zh) 应用检测方法、应用检测装置及存储介质
CN107463372B (zh) 一种数据驱动的页面更新方法和装置
CN110515623B (zh) 图形操作实现方法、装置、电子设备及存储介质
US20170075671A1 (en) Method and apparatus for installing application and smart device using the same
CN106612149B (zh) 射频电路测试方法、装置、系统及移动终端
CN105786561B (zh) 进程调用的方法及装置
CN111541922B (zh) 显示界面输入信息的方法、装置及存储介质
CN109491655B (zh) 一种输入事件处理方法及装置
CN107885464B (zh) 数据存储方法、装置及计算机可读存储介质
US11269699B2 (en) Method and device for processing an application
CN110263211B (zh) 资源同步方法及装置
US20170185366A1 (en) Method and device for inputting information

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