CN108509240A - 图片绘制方法及相关产品 - Google Patents
图片绘制方法及相关产品 Download PDFInfo
- Publication number
- CN108509240A CN108509240A CN201810195162.3A CN201810195162A CN108509240A CN 108509240 A CN108509240 A CN 108509240A CN 201810195162 A CN201810195162 A CN 201810195162A CN 108509240 A CN108509240 A CN 108509240A
- Authority
- CN
- China
- Prior art keywords
- image data
- worker thread
- threads
- written
- graphic buffer
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 238000005304 joining Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 15
- 238000005538 encapsulation Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 6
- 230000004807 localization Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开了一种图片绘制方法及相关产品。该方法应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,方法包括:所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。本申请实施例有利于解决图片显示的卡顿问题,提高移动终端图片绘制的速度,减少图片绘制的耗时。
Description
技术领域
本申请涉及移动终端技术领域,具体涉及图片绘制方法及相关产品。
背景技术
随着移动终端(例如,智能手机)相关技术的快速发展,越来越多的应用被安装在移动终端中,如相机类应用、支付类应用等,其中,随着人们生活水平的提升,人们对相机类应用的使用越来越频繁。
目前,在相机类应用中,人们对相册显示的性能需求越来越高,然而,当显示图片的数据量较大或者同时显示的图片较多时,如何提升图片的显示速度,解决图片的显示卡顿现象成为亟待解决的问题。
发明内容
本申请实施例提供了图片绘制方法及相关产品,可以解决图片显示的卡顿问题,提高移动终端图片绘制的速度,减少图片绘制的耗时。
第一方面,本申请实施例提供一种图片绘制方法,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述方法包括:
所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
第二方面,本申请实施例提供一种图片绘制装置,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置包括写入单元、封装单元和执行单元,其中,
所述写入单元,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述封装单元,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述执行单元,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
第三方面,本申请实施例提供一种移动终端,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
附图说明
下面将对本申请实施例所涉及到的附图作简单地介绍。
图1A是本申请实施例提供的一种智能手机的结构示意图;
图1B是本申请实施例提供的一种智能手机的代码运行空间的示例图;
图1C是本申请实施例提供的一种安卓系统中显示系统的架构图
图2是本申请实施例提供的一种图片绘制方法的流程示意图;
图3是本申请实施例公开的一种图片绘制方法的流程示意图;
图4是本申请实施例公开的一种图片绘制方法的流程示意图;
图5是本申请实施例公开的一种移动终端的结构示意图;
图6A是本申请实施例公开的一种图片绘制装置的功能单元组成框图;
图6B是本申请实施例公开的另一种图片绘制装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的移动终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为移动终端。本发明实施例所涉及到的嵌入式操作系统是对硬件资源进行统一管理,并向用户提供业务接口的软件系统。
以移动终端中的智能手机为例,示例性的,图1A是本申请实施例提供了一种智能手机100的结构示意图,上述智能手机100包括:壳体110、触控显示屏120、主板130、电池140和副板150,主板130上设置有前置摄像头131、处理器132、存储器133、电源管理芯片134、射频系统135等,副板上设置有振子151、一体音腔152、VOOC闪充接口153。
所述处理器是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器133内的软件程序和/或模块,以及调用存储在存储器133内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。该处理器可包括一个或多个处理单元,如可集成应用处理器AP和基带处理器(又称为基带芯片、基带)等,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器中。该处理器例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific IntegratedCircuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
所述存储器133可用于存储软件程序以及模块,处理器通过运行存储在存储器133的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器133可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据智能手机的使用所创建的数据等。此外,存储器133可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。该存储器133例如可以是随机存取存储器(RandomAccess Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质。
图1B是本申请实施例提供的一种智能手机的代码运行空间的示例图,目前智能手机等移动终端一般设置有程序运行空间,该程序运行空间包括用户空间和操作系统空间,其中,用户空间运行有一个或多个应用程序,该一个或多个应用程序为移动终端安装的第三方应用程序,操作系统空间运行有移动终端的操作系统。该移动终端具体可以运行安卓Android系统、苹果公司开发的移动操作系统iOS等,此处不做唯一限定。
以上述移动终端运行有Android系统为例,Android系统中包括显示系统,显示系统的架构如图1C所示,该显示系统包括界面绘制服务(SurfaceFlinger)、图形拼接程序接口(OpenGL for Embedded Systems,OpenGL ES)、EGL接口、本地化窗口NativeWindow和硬件抽象层Gralloc。其中,该SurfaceFlinger中持有一个GraphicPlane成员变量来描述显示屏,以及一个显示屏硬件DisplayHardware对象实例。OpenGL ES为一个接口协议,即一个通用的函数库,在不同的平台系统上需要被“本地化”——即把它与具体平台上的窗口系统建立起关联,这样才能保证它正常工作。其中,NativeWindow就是将OpenGL ES在Android平台上本地化的窗口,而EGL接口是为OpengGL ES配置本地窗口的中间适配翻译层。
一般设计中,以移动终端的相册显示的业务为例,在嵌入式系统中,相册的显示包括了相片数据的上传写入操作,相片的绘制操作,相片的显示操作等,其中,相片数据的上传写入操作,相片的绘制操作使用了OpenGL ES中的相关函数调用GL线程来实现,其中,当显示的相片数据量较大或者同时显示的相片数量较多等情况下,在通过OpenGL ES进行相片数据的上传写入操作时,会阻塞GL线程,导致相片显示出现严重的卡顿现象,而且显示的速度慢,并且,在动态修改已显示的相片时,需要将修改后的数据重新上传至OpenGL ES进行显示,进一步导致了GL线程的阻塞,其实,相片数据的上传写入操作可以不需要通过OpenGL ES中的函数,而是相片的绘制操作必须要使用到OpenGL ES中的相关函数,因此,针对这一情况,对相册显示的业务提出如下申请。
针对上述情况,本申请实施例提出一种针对移动终端的图片绘制方法,移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,该方法中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。解决了图片显示的卡顿问题,有利于提高移动终端图片绘制的速度,并减少图片绘制的耗时。
下面结合附图对本申请实施例进行介绍。
请参阅图2,图2是本申请实施例提供了一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,如图所示,本图片绘制方法包括:
S201,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer。
其中,图形拼接程序接口OpenGL ES为用于嵌入式系统的OpenGL版本。
其中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer的触发条件可以是多种多样的,例如可以是检测到任意程序针对任一图片的显示操作,或者可以是检测到相册应用针对某一图片的修改生成新图片的操作等,在此不做限定。
其中,所述移动终端工作线程将目标图片的图像数据写入图形缓存区GraphicBuffer之前,检测到针对所述目标图片的显示操作,并接收由上层应用程序发送的所述目标图片的图像数据,该图像数据的格式为位图文件Bitmap。
其中,执行所述目标图片的图像数据写入Graphic Buffer操作的工作线程可以是一个,也可以是多个工作线程将图像数据分区域,共同执行图像数据的写入GraphicBuffer操作,在此不做限定。
其中,所述图像缓存区可以是由GL线程创建的,也可以是由工作线程创建的,在此不做唯一限定。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
其中,所述前台运行有相册应用程序为当前显示屏显示的应用程序,以及当前用户正在操作的应用程序。
其中,所述多图显示界面可以为相册中的年度照片显示界面,照片的数量可以为十张,百张,千张等,在此不作限定。
可见,本示例中,在移动终端前台运行相册应用程序,且运行界面包括多图显示界面时,使用该图片绘制方法,使用工作线程执行图像数据的写入操作,有利于提升多图片同时显示场景的显示速度,解决图片显示卡顿问题。
S202,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式。
在一个可能的示例中,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,包括:
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;
所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
其中,完成数据写入操作的多个数据模块的格式为上述本地化窗口NativeWindow识别的Graphic Buffer图像数据,然后GL线程识别的Texture数据格式,因此在数据封装过程中,如图1C所示,首先将Graphic Buffer图像数据封装为中间适配翻译层EGL接口识别的EGLImage格式的图像数据,然后将EGLImage格式的图像数据封装为GL线程识别的Texture数据格式。
可见,本示例中,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的阻塞问题。
S203,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
其中,所述GL线程获取工作线程封装完成的Texture格式的图像数据,使用OpenGLES中的专属函数对图像数据执行绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,所述方法还包括:
所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
可见,本示例中,工作线程将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
在一个可能的示例中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GraphicBuffer。
其中,所述图像数据的数据量越大,创建的图形缓存区越大,所述数据量与Graphic Buffer的大小的关系可以由开发工作人员在移动终端出厂前根据经验进行设定的。
可见,本示例中,工作线程在写入操作中首先自己创建于数据量匹配的GraphicBuffer,而不是随意创建固定大小的Graphic Buffer,有利于提升显存缓存的利用率,而且由工作线程创建Graphic Buffer,进一步降低了GL线程的负担,有效解决了GL线程的阻塞问题。
在一个可能的示例中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
可见,本示例中,工作线程将图像数据写入GL线程创建的所述Graphic Buffer,而不是由工作线程自主创建Graphic Buffer,减少了数据写入完成后GL线程查找数据的时间消耗,有利于提升后期GL线程绘制目标图片的速度。
在一个可能的示例中,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer,包括:
所述工作线程对所述Graphic Buffer启动读写锁;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GraphicBuffer;
所述工作线程关闭所述读写锁。
可见,本示例中,移动终端在调用线程将图像数据写入缓存区时,将该线程对应的缓存区域启动读写锁,仅仅针对该线程写入的数据的缓存区启动读写锁,有利于提升线程的数据写入成功率,在启动读写锁时并不是针对GL线程创建的整体缓存区域启动读写锁,对后期移动终端针对不同区域的数据进行修改时,而不需要对所有数据进行重新写入操作,有利于提升数据修改后的写入的速度。
与上述图2所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGLES调用的GL线程和除所述GL线程之外的工作线程。如图所示,本图片绘制方法包括:
S301,所述工作线程获取格式为位图文件Bitmap的图像数据。
S302,所述工作线程创建与所述图像数据的数据量匹配的图形缓存区GraphicBuffer。
S303,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GraphicBuffer。
S304,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据。
S305,所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有Texture格式的图像数据。
S306,所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程。
S307,所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据以执行针对目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
此外,工作线程在写入操作中首先自己创建于数据量匹配的Graphic Buffer,而不是随意创建固定大小的Graphic Buffer,有利于提升显存缓存的利用率,而且由工作线程创建Graphic Buffer,进一步降低了GL线程的负担,有效解决了GL线程的阻塞问题。
此外,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的阻塞问题,并且将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
与上述图2所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGLES调用的GL线程和除所述GL线程之外的工作线程。如图所示,本图片绘制方法包括:
S401,当所述移动终端的前台运行有相册应用程序时,所述工作线程获取格式为位图文件Bitmap的图像数据。
其中,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
S402,所述GL线程创建图形缓存区Graphic Buffer,并将所述Graphic Buffer的地址标识发送给所述工作线程。
S403,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GraphicBuffer。
S404,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据。
S405,所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有Texture格式的图像数据。
S406,所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程。
S407,所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据以执行针对目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
此外,在移动终端前台运行相册应用程序,且运行界面包括多图显示界面时,使用该图片绘制方法,使用工作线程执行图像数据的写入操作,有利于提升多图片同时显示场景的显示速度,解决图片显示卡顿问题,而且将图像数据写入GL线程创建的所述GraphicBuffer,而不是由工作线程自主创建Graphic Buffer,减少了数据写入完成后GL线程查找数据的时间消耗,有利于提升后期GL线程绘制目标图片的速度。
此外,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的阻塞问题,并且将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
与上述图2、图3、图4所示的实施例一致的,请参阅图5,图5是本申请实施例提供的一种移动终端的结构示意图,该所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,而且,该移动终端运行有一个或多个应用程序和操作系统,如图所示,该移动终端包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令;
控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,在控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
在这个可能的示例中,上述程序还包括用于执行以下步骤的指令:控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,移动终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对移动终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图6A示出了上述实施例中所涉及的图片绘制装置的一种可能的功能单元组成框图。图片绘制装置600应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置600包括写入单元601、封装单元602和执行单元603,其中,
所述写入单元601,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述封装单元602,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述执行单元603,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,在控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述封装单元602具体用于:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
在这个可能的示例中,如图6B所示,所述图片绘制装置600还包括发送单元604,其中,
所述发送单元604,用于所述执行单元控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
需要注意的是,本申请装置实施例所描述的图片绘制装置是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
具体来说,上述写入单元601、封装单元602和执行单元603可以是移动终端的处理器,发送单元604可能是内部通信接口。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括移动终端。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括移动终端。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种图片绘制方法,其特征在于,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述方法包括:
所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
2.根据权利要求1所述的方法,其特征在于,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,包括:
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;
所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
3.根据权利要求2所述的方法,其特征在于,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,所述方法还包括:
所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
6.根据权利要求4或5所述的方法,其特征在于,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer,包括:
所述工作线程对所述Graphic Buffer启动读写锁;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;
所述工作线程关闭所述读写锁。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
8.一种图片绘制装置,其特征在于,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置包括写入单元、封装单元和执行单元,其中,
所述写入单元,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述封装单元,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述执行单元,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
9.根据权利要求8所述的装置,其特征在于,在控制所述工作线程将写入所述GraphicBuffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述封装单元具体用于:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
10.根据权利要求9所述的装置,其特征在于,所述图片绘制装置还包括发送单元,其中,
所述发送单元,用于所述执行单元控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
11.根据权利要求8-10任一项所述的装置,其特征在于,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
12.根据权利要求8-10任一项所述的装置,其特征在于,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
13.根据权利要求11或12所述的装置,其特征在于,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
14.一种移动终端,其特征在于,包括处理器、存储器,所述存储器存储有程序,所述处理器用于调用所述程序以执行如权利要求1-7任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810195162.3A CN108509240B (zh) | 2018-03-09 | 2018-03-09 | 图片绘制方法及相关产品 |
PCT/CN2019/077196 WO2019170110A1 (zh) | 2018-03-09 | 2019-03-06 | 图片绘制方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810195162.3A CN108509240B (zh) | 2018-03-09 | 2018-03-09 | 图片绘制方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509240A true CN108509240A (zh) | 2018-09-07 |
CN108509240B CN108509240B (zh) | 2020-08-11 |
Family
ID=63376318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810195162.3A Expired - Fee Related CN108509240B (zh) | 2018-03-09 | 2018-03-09 | 图片绘制方法及相关产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108509240B (zh) |
WO (1) | WO2019170110A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019170110A1 (zh) * | 2018-03-09 | 2019-09-12 | Oppo广东移动通信有限公司 | 图片绘制方法及相关产品 |
CN110737433A (zh) * | 2019-10-16 | 2020-01-31 | 李富科 | 一种c语言程序的图形显示方法及装置 |
CN112530549A (zh) * | 2020-12-03 | 2021-03-19 | 武汉联影医疗科技有限公司 | 图像显示方法、装置和计算机设备 |
CN115167949A (zh) * | 2022-09-08 | 2022-10-11 | 西安芯瞳半导体技术有限公司 | 高版本OpenGL函数适配低版本应用程序的方法、装置及介质 |
WO2023245494A1 (zh) * | 2022-06-22 | 2023-12-28 | 云智联网络科技(北京)有限公司 | 从渲染引擎中获取纹理数据的方法及装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021952A (zh) * | 2007-03-23 | 2007-08-22 | 北京中星微电子有限公司 | 一种实现三维视频特效的方法及装置 |
US20110063313A1 (en) * | 2009-09-11 | 2011-03-17 | Bolz Jeffrey A | Memory coherency in graphics command streams and shaders |
US20150116310A1 (en) * | 2013-10-28 | 2015-04-30 | Vmware, Inc. | Method and system to virtualize graphic processing services |
CN106340055A (zh) * | 2016-08-19 | 2017-01-18 | 江苏电力信息技术有限公司 | 一种基于多线程的OpenGL快速绘制方法 |
CN107223264A (zh) * | 2016-12-26 | 2017-09-29 | 深圳前海达闼云端智能科技有限公司 | 一种渲染方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191860A1 (en) * | 2002-04-05 | 2003-10-09 | Gadepalli Krishna K. | Accelerated collaboration of high frame rate applications |
CN104142807A (zh) * | 2014-08-02 | 2014-11-12 | 合一网络技术(北京)有限公司 | 基于安卓控件利用OpenGL绘制图像的方法和系统 |
CN108509240B (zh) * | 2018-03-09 | 2020-08-11 | Oppo广东移动通信有限公司 | 图片绘制方法及相关产品 |
-
2018
- 2018-03-09 CN CN201810195162.3A patent/CN108509240B/zh not_active Expired - Fee Related
-
2019
- 2019-03-06 WO PCT/CN2019/077196 patent/WO2019170110A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021952A (zh) * | 2007-03-23 | 2007-08-22 | 北京中星微电子有限公司 | 一种实现三维视频特效的方法及装置 |
US20110063313A1 (en) * | 2009-09-11 | 2011-03-17 | Bolz Jeffrey A | Memory coherency in graphics command streams and shaders |
US20150116310A1 (en) * | 2013-10-28 | 2015-04-30 | Vmware, Inc. | Method and system to virtualize graphic processing services |
CN106340055A (zh) * | 2016-08-19 | 2017-01-18 | 江苏电力信息技术有限公司 | 一种基于多线程的OpenGL快速绘制方法 |
CN107223264A (zh) * | 2016-12-26 | 2017-09-29 | 深圳前海达闼云端智能科技有限公司 | 一种渲染方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019170110A1 (zh) * | 2018-03-09 | 2019-09-12 | Oppo广东移动通信有限公司 | 图片绘制方法及相关产品 |
CN110737433A (zh) * | 2019-10-16 | 2020-01-31 | 李富科 | 一种c语言程序的图形显示方法及装置 |
CN110737433B (zh) * | 2019-10-16 | 2023-04-25 | 李富科 | 一种c语言程序的图形显示方法及装置 |
CN112530549A (zh) * | 2020-12-03 | 2021-03-19 | 武汉联影医疗科技有限公司 | 图像显示方法、装置和计算机设备 |
CN112530549B (zh) * | 2020-12-03 | 2023-09-29 | 武汉联影医疗科技有限公司 | 图像显示方法、装置和计算机设备 |
WO2023245494A1 (zh) * | 2022-06-22 | 2023-12-28 | 云智联网络科技(北京)有限公司 | 从渲染引擎中获取纹理数据的方法及装置、电子设备 |
CN115167949A (zh) * | 2022-09-08 | 2022-10-11 | 西安芯瞳半导体技术有限公司 | 高版本OpenGL函数适配低版本应用程序的方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108509240B (zh) | 2020-08-11 |
WO2019170110A1 (zh) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509240A (zh) | 图片绘制方法及相关产品 | |
CN108510428A (zh) | 图片绘制方法及相关产品 | |
US10402065B2 (en) | Method and apparatus for operating a virtual keyboard | |
EP3160150A1 (en) | Electronic device and method for executing function using speech recognition thereof | |
US9602286B2 (en) | Electronic device and method for extracting encrypted message | |
US10599336B2 (en) | Method of displaying content and electronic device adapted to the same | |
US10671258B2 (en) | Electronic device having hole area and method of controlling hole area thereof | |
CN115097981B (zh) | 处理内容的方法及其电子设备 | |
EP2869181A1 (en) | Method for executing functions in response to touch input and electronic device implementing the same | |
US10347221B2 (en) | Electronic device and method for controlling display thereof | |
EP2983074B1 (en) | Method and apparatus for displaying a screen in electronic devices | |
US10198174B2 (en) | Electronic device and method of managing memory of electronic device | |
KR20160005609A (ko) | 그래픽 사용자 인터페이스를 표시하는 방법 및 이를 지원하는 전자장치 | |
US20180196991A1 (en) | Electronic device and method for sensing fingerprints | |
US9380463B2 (en) | Method for displaying lock screen and electronic device thereof | |
US20150143277A1 (en) | Method for changing an input mode in an electronic device | |
KR20150066876A (ko) | 사용자 인터페이스 제어 방법 및 그 전자 장치 | |
CN110191045A (zh) | 一种信息分享方法、装置、终端及可读存储介质 | |
KR102137686B1 (ko) | 컨텐츠 무결성 제어 방법 및 그 전자 장치 | |
CN109246467A (zh) | 标记待分享视频的方法、装置、摄像机和智能手机 | |
WO2020078323A1 (zh) | 水印嵌入方法、装置、终端及存储介质 | |
CN113495744A (zh) | 一种版本升级方法及相关装置 | |
KR20150027934A (ko) | 다각도에서 촬영된 영상을 수신하여 파일을 생성하는 전자 장치 및 방법 | |
KR20150117968A (ko) | 입력방향에 따라 기능을 전환하는 전자 장치 및 방법 | |
EP2916282A1 (en) | Advertisement method for electronic device and electronic device thereof |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200811 |