CN110083348B - 基于多进程浏览器的绘图方法、装置、设备和存储介质 - Google Patents
基于多进程浏览器的绘图方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110083348B CN110083348B CN201910270838.5A CN201910270838A CN110083348B CN 110083348 B CN110083348 B CN 110083348B CN 201910270838 A CN201910270838 A CN 201910270838A CN 110083348 B CN110083348 B CN 110083348B
- Authority
- CN
- China
- Prior art keywords
- graphic
- event
- browser
- thread
- main process
- 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
- 238000000034 method Methods 0.000 title claims abstract description 441
- 230000008569 process Effects 0.000 claims abstract description 287
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 34
- 229910052804 chromium Inorganic materials 0.000 claims description 26
- 239000011651 chromium Substances 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 20
- 238000009877 rendering Methods 0.000 description 19
- 230000000694 effects Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及一种基于多进程浏览器的绘图方法、基于Chromium浏览器的绘图方法、装置、设备和存储介质,通过图形处理器进程创建的图形绘制线程接收浏览器主进程的绘图事件,然后利用该图形绘制线程将该绘图事件转化成为绘图数据,通过该图形绘制线程去触发显卡驱动模块将绘图数据进行显示,该方案能够在不改变浏览器多进程框架的前提下,主进程接收到绘图事件后,直接通过进程间通信让图形处理器进程绘制图形,一方面减少了进程切换次数,在绘图效率方面有一定提升,另一方面也突破了网页进程的限制,可以在整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸的限制。
Description
技术领域
本发明涉及浏览器技术领域,特别是涉及一种基于多进程浏览器的绘图方法、基于多进程浏览器的绘图装置、基于Chromium浏览器的绘图方法、基于Chromium浏览器的绘图装置、计算机设备和计算机可读存储介质。
背景技术
随着互联网技术的发展,笔记本电脑和平板电脑等智能终端上通常会安装有浏览器,浏览器提供的书写绘制工具,能够在接收用户的输入事件的基础上,在浏览器的页面中进行相应的书写绘制操作,以实现浏览器的绘图功能。
传统的基于多进程框架下的浏览器,通常是基于Render进程、Browser进程和GPU进程相互间多次进程间通信,来实现浏览器的绘图功能。然而,这种方式从浏览器接收到输入事件,到完成图形绘制,需要经过多次的进程切换,实现绘图的过程比较复杂,而且最终显示绘制的图形也是在Render进程中,这会导致在绘制图形时,容易受到浏览器页面尺寸的限制,影响绘图效果。
发明内容
基于此,有必要针对传统技术在绘制图形时容易受到浏览器页面尺寸限制的技术问题,提供一种基于多进程浏览器的绘图方法、基于多进程浏览器的绘图装置、基于Chromium浏览器的绘图方法、基于Chromium浏览器的绘图装置、计算机设备和计算机可读存储介质。
一种基于多进程浏览器的绘图方法,包括步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;
利用所述图形绘制线程将所述绘图事件转化为绘图数据;
通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据。
一种基于Chromium浏览器的绘图方法,包括步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程;
利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;
通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;
利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
一种基于多进程浏览器的绘图装置,包括:
事件接收模块,用于通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;
数据转化模块,用于利用所述图形绘制线程将所述绘图事件转化为绘图数据;
数据显示模块,用于通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据。
一种基于Chromium浏览器的绘图装置,包括:
线程创建模块,用于通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程;
缓冲区创建模块,用于利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;
数据获取模块,用于通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;
数据显示模块,用于利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;利用所述图形绘制线程将所述绘图事件转化为绘图数据;通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据。
一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程;利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;利用所述图形绘制线程将所述绘图事件转化为绘图数据;通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程;利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
上述基于多进程浏览器的绘图方法、基于Chromium浏览器的绘图方法、装置、设备和存储介质,通过图形处理器进程创建的图形绘制线程接收浏览器主进程的绘图事件,然后利用该图形绘制线程将该绘图事件转化成为绘图数据,通过该图形绘制线程去触发显卡驱动模块将绘图数据进行显示,该方案能够在不改变浏览器多进程框架的前提下,主进程接收到绘图事件后,直接通过进程间通信让图形处理器进程绘制图形,一方面减少了进程切换次数,在绘图效率方面有一定提升,另一方面也突破了网页进程的限制,可以在整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸的限制。
附图说明
图1为一个实施例中基于多进程浏览器的绘图方法的应用场景图;
图2为一个实施例中基于多进程浏览器的绘图方法的流程示意图;
图3为一种基于多进程浏览器的绘图方案的终端界面图;
图4为一个实施例中基于多进程浏览器的绘图方案的终端界面图;
图5为一个实施例中基于Chromium浏览器的绘图方法的流程示意图;
图6为一种基于多进程浏览器的绘图方案的逻辑示意图;
图7为一个实施例中基于多进程浏览器的绘图方案的逻辑示意图;
图8为一个实施例中基于多进程浏览器的绘图装置的结构框图;
图9为一个实施例中基于Chromium浏览器的绘图装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供的基于多进程浏览器的绘图方法,可以应用于如图1所示的应用场景中,图1为一个实施例中基于多进程浏览器的绘图方法的应用场景图,该应用场景包括终端100,该终端100可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑等。该终端100可以用于安装如Chromium浏览器等基于多进程框架的浏览器,用户可以通过终端100使用该浏览器,基于多进程框架的浏览器为用户提供了各种各样的绘图工具,使得用户能够通过相应的绘图工具在浏览器中进行图形的绘制,也使得浏览器具备了绘图功能。
具体的,如图1所示,终端100的显示界面200上展示了浏览器300,该浏览器300可以打开网页,不同的网页可以通过相应的网页标签进行标识(如网页标签A、网页标签B等),用户可以通过浏览器300的绘图工具在各个网页中进行绘图。然而,传统技术提供的基于多进程浏览器的绘图方法,仅能满足用户在每个网页的页面范围内进行图形的绘制,例如用户在网页标签A标示的网页进行图形绘制,该网页的页面为页面310,则传统技术提供的基于多进程浏览器的绘图方法,使得用户只能够在页面310的页面范围内进行绘图,如绘制曲线L1,绘图的范围会受到浏览器300的页面310的页面尺寸的限制,也就是说,如果该页面尺寸较小,则用户无法绘制较大的图形。本发明实施例提供的基于多进程浏览器的绘图方法,能够应用于终端100当中,在不改变浏览器多进程框架的前提下,使得用户能够在终端100的整个屏幕上进行绘图,无需受到浏览器页面尺寸的限制。
在一个实施例中,提供了一种基于多进程浏览器的绘图方法,参考图2,图2为一个实施例中基于多进程浏览器的绘图方法的流程示意图,以该方法应用于图1中的终端100为例进行说明,该基于多进程浏览器的绘图方法可以包括以下步骤:
步骤S101,终端100可以通过图形绘制线程接收主进程的绘图事件。
本步骤中,上述图形绘制线程是由图形处理器(GPU,Graphics Processing Unit)进程创建的,主进程是指多进程浏览器的主进程(即Browser进程),图形处理器进程可以与该主进程进行进程间通信(IPC,InterProcess Communication),在该进程间通信的过程中创建该图形绘制线程,该图形绘制线程即为图形处理器创建的、用于处理绘图事件的线程。
终端100可以在图形绘制线程创建后,通过该图形绘制线程接收来自浏览器的主进程的绘图事件,其中,该绘图事件可以由用户通过多种方式在终端100的浏览器上进行触发,例如可以通过接收连接到终端100的鼠标的点击事件触发,还可以由连接到终端100的触摸屏、触摸板等设备的输入事件触发,即用户可以通过鼠标、触摸屏等连接到终端100的输入设备在终端100的浏览器上进行绘图,由此生成的绘图事件可以先由浏览器的主进程进行接收,从而终端100可以通过图形处理器进程创建的图形绘制线程直接从主进程处接收该绘图事件,进而对绘图事件进行处理。
步骤S102,终端100可以利用图形绘制线程将绘图事件转化为绘图数据。
本步骤主要是在图形绘制线程接收到主进程的绘图事件以后,终端100进一步利用该图形绘制线程来对该绘图事件进行处理,将该绘图事件转化为绘图数据,该绘图数据可以用于在终端100的显示界面上进行显示。其中,该绘图事件可以是绘制黑色曲线,则终端100可以利用图形绘制线程将该绘图事件转化为相应的绘图数据,如将该终端100的显示界面上与该曲线相对应的像素点位置进行标记,并将这些被标记的像素点的颜色设为黑色,从而得到绘图数据。
步骤S103,终端100通过图形绘制线程触发显卡驱动模块显示绘图数据。
本步骤中,由步骤S102得到的绘图数据可以通过终端100的显卡驱动模块进行显示,显卡驱动模块对应于终端100的显示卡的驱动模块,可以用于驱动显示卡将相关数据进行显示,显卡驱动模块一般为内核提供的模块,如内核的DRM驱动模块等,可以让内核基于绘图数据执行相应的显示操作。
本步骤,终端100可以通过图形绘制线程来触发如DRM驱动模块来显示相应的绘图数据,而由于该绘图数据是由图形处理器进程所创建的图形绘制线程转化得到的,没有经过多进程浏览器的网页进程,因此由该绘图数据绘制的图形将不会受到浏览器的网页页面尺寸的限制,从而可以在终端100的整个显示界面上进行书写绘制操作,即在不打破当前浏览器的多进程框架的前提下,实现了全屏绘图功能。
上述基于多进程浏览器的绘图方法,通过图形处理器进程创建的图形绘制线程接收浏览器主进程的绘图事件,然后利用该图形绘制线程将该绘图事件转化成为绘图数据,通过该图形绘制线程去触发显卡驱动模块将绘图数据进行显示,该方案能够在不改变浏览器多进程框架的前提下,主进程接收到绘图事件后,直接通过进程间通信让图形处理器进程绘制图形,一方面减少了进程切换次数,在绘图效率方面有一定提升,另一方面也突破了网页进程的限制,可以在整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸的限制。
为了更直观地表明本发明实施例提供的基于多进程浏览器的绘图方法所实现的技术效果,下面结合图3和图4对该技术效果进行说明。其中,传统技术提供的基于多进程浏览器的绘图方案,其具体效果可以参考图3,图3为一种基于多进程浏览器的绘图方案的终端界面图,该终端界面图包括终端的显示界面200,该显示界面200用于表示终端的显示屏的显示区域,该显示界面200可以显示有浏览器300,该浏览器300打开有网页标签A的网页,隐藏有网页标签B的网页,用户可以在该浏览器300打开的网页标签A的页面310上绘制曲线L1,而传统技术所采用的绘制方案,限制了该曲线L1只能绘制该页面310内进行绘制,使得图形的绘制受到了网页页面尺寸的限制。
然而,本发明实施例提供的基于多进程浏览器的绘图方法,具体效果可以参考图4,图4为一个实施例中基于多进程浏览器的绘图方案的终端界面图,由于本发明实施例提供的基于多进程浏览器的绘图方法,能够使得用户绘制曲线L1和曲线L2,与传统技术不同的是,本发明实施例提供的基于多进程浏览器的绘图方法,能够使得用户绘制的图形不受浏览器的网页页面尺寸的限制,能够在页面310外显示用户绘制图形(如曲线L2),从而达到了在终端的整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸限制的技术效果。
终端100在利用图形绘制线程处理绘图事件之前可以先监听绘图事件,在一个实施例中,在步骤S101之前,终端100可以利用主进程监听输入事件,提取该输入事件中的绘图事件,并通过主进程将该绘图事件传递至图形绘制线程。
本实施例中,浏览器的主进程(Browser进程)可以用于监听输入到浏览器中的输入事件,该输入事件通常是在用户使用浏览器时产生的,例如用户在使用浏览器时可以通过键盘等外设在浏览器的网址输入栏内输入网址从而对相应网页进行访问,而浏览器中的输入事件是多种多样的,终端100可以利用浏览器的主进程对多个输入事件进行监听,并利用该主进程从这些输入事件当中识别并提取出绘图事件,然后,终端100可以进一步通过该主进程,将提取出来的绘图事件通过该主进程与图形处理器进程的进程间通信发送给图形处理器进程中的图形绘制线程,以实现利用浏览器的主进程对绘图事件进行识别、提取和传递给图形绘制线程的目的。
在主进程提取出上述绘图事件以后,终端100还可以通过该主进程对该绘图事件进行预处理,在一个实施例中,进一步的,终端100通过主进程将绘图事件传递至图形绘制线程的步骤可以包括:
终端100可以通过主进程确定绘图事件的绘制类型;若绘制类型为全屏绘制,则终端100利用主进程将绘图事件传递至图形绘制线程。
本实施中,绘图事件的绘制类型可以包括多种,例如全屏绘制和网页内绘制等等,其中,全屏绘制是指该绘图事件用于在终端的全屏幕上进行图形绘制,网页绘制是指该绘图事件用于在终端的浏览器的网页页面内进行图形绘制,本实施例的方案能够为用户提供多种不同绘制类型的绘图方案,提高绘图的灵活性。
其中,终端100可以在将绘图事件进行传递前,先通过浏览器的主进程对该绘图事件的绘图类型进行识别,如果其绘图类型为全屏绘制,则终端100可以进一步利用该主进程将该绘图事件通过进程间通信传递至图形处理器进程的图形绘制线程进行处理,以满足用户在终端的全屏幕上进行图形绘制的目的。
在一个实施例中,如果其绘图类型为网页内绘制,则通过主进程将绘图事件传递至网页进程,触发网页进程在浏览器的网页内绘制与绘图事件相对应的内容。
本实施例中,如果主进程判断该绘图事件的绘图类型为网页内绘制,则可以通过主进程将该绘图事件传递给网页进程(如Render进程),由网页进程在浏览器的网页内绘制与该绘图事件相对应的内容。在多进程框架下,浏览器每显示一个页面,就对应一个网页进程,负责单个网页内的内容,而网页内容之外的绘制,网页进程是涉及不到的,因此,如果主进程判断该绘图事件为网页内绘制,则可以直接将该绘图事件传递给网页进程进行处理,以使该网页进程在浏览器的相应页面当中绘制出相应的图形,从而实现在浏览器全屏幕绘制的基础上,为用户提供网页内绘图的功能,提高图形绘制的灵活性,进一步增强其绘图功能。
进一步的,在一个实施例中,终端100通过主进程确定绘图事件的绘制类型的具体步骤可以包括:
终端100利用主进程接收对绘制类型选项的选择操作,并根据选择操作确定绘制类型;其中,绘制类型选项显示在浏览器的界面上。
参考图4,图4为一个实施例中基于多进程浏览器的绘图方案的终端界面图,终端可以在浏览器300的界面上展示绘制类型选项,用户可以该绘制类型选项进行选择,使得该绘制类型选项展示如“全屏绘制”、“网页内绘制”等多个选项,用户可以进一步对这些选项进行选择,终端可以利用浏览器的主进程接收用户对该绘制类型选项的选择操作,然后根据用户的选择操作来确定绘制类型,如用户选择“全屏绘制”选项,则可以确定该绘图事件的类型为全屏绘制,在选择该绘制类型后,用户可以在终端的全屏幕上绘制图形,若用户选择“网页内绘制”,则用户可以在页面310内进行图形绘制,当然,用户还可以将当前网页(网页标签A对应的网页)切换至网页标签B对应的网页,在该网页标签B对应的网页内进行绘图。本实施例的方案便于用户在浏览器上根据实际情况选择合适的绘制类型进行图形绘制,提高了图形绘制的灵活性。
在一个实施例中,终端100利用图形绘制线程将绘图事件转化为绘图数据的步骤可以包括:
终端100利用图形绘制线程,基于绘图事件在绘图数据缓冲区上进行绘制操作,得到绘图数据;其中,绘图数据缓冲区为图形绘制线程创建的数据缓冲区。
本实施例主要是图形绘制线程在将绘图事件转化为绘图数据的过程中,可以预先创建一个数据缓冲区,即绘图数据缓冲区,该绘图数据缓冲区可以用于存储需要在终端100上进行显示的绘图数据,而该绘图数据缓冲区可以是由如内核的DRM驱动模块等显卡驱动模块提供的一块内存,可以很方便地映射到用户空间,便于图形绘制线程在这块内存上进行绘制操作。由此,终端100可以利用图形绘制线程,在该绘图数据缓冲区中进行绘图操作,以使所有绘图数据都存储在该绘图缓冲区上,避免绘图数据丢失,而且也有利于图形处理器进程将绘图事件与绘图数据进行转换。
进一步的,在一个实施例中,终端100通过图形绘制线程触发显卡驱动模块显示绘图数据的步骤进一步包括:
终端100通过图形绘制线程将绘图数据缓冲区的绘图数据加入显示队列,利用图形绘制线程调用显卡驱动模块提供的图形显示接口,触发显卡驱动模块将显示队列中的绘图数据显示在屏幕上。
本实施例可以在图形绘制线程在绘图数据缓冲区上进行绘制操作得到绘图数据的基础上,终端100可以进一步通过该图形绘制线程将该绘图数据缓冲区上的绘图数据,加入到显示队列,该显示队列主要用于存储需要在终端的全屏幕上进行显示的全部绘图数据队列,终端100通过图形绘制线程将绘图数据加入显示队列,便于显卡驱动模块直接将该显示队列的绘图数据进行全屏显示,而显卡驱动模块还可以为图形处理器进程提供图形显示接口,使得图形处理器进程的图形绘制线程可以通过调用该图形显示接口,触发显卡驱动模块将该显示队列中的绘图数据直接显示在屏幕上,提高绘图数据的显示效率。
在一个实施例中,还提供了一种基于Chromium浏览器的绘图方法,参考图5,图5为一个实施例中基于Chromium浏览器的绘图方法的流程示意图,该基于Chromium浏览器的绘图方法可以应用于如图1所示的终端100实现,该方法可以包括如下步骤:
步骤S401,终端100通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;主进程为Chromium浏览器的主进程。
本步骤中,终端100可以在Chromium OS UI服务启动时,通图形处理器进程(即GPU进程)与主进程(即Browser进程)进行进程间通信,由图形处理器进程创建图形绘制线程实例,其中,该主进程为Chromium浏览器的主进程。
步骤S402,终端100利用图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区。
在创建图形处理器进程创建图形绘制线程实例后,终端100可以通过图形绘制线程调用libdrm库的缓冲区创建接口从而创建绘图数据缓冲区,并等待输入事件,该绘图数据缓冲区可以用于存储绘图数据。
步骤S403,终端100通过图形绘制线程,接收主进程的绘图事件,并基于绘图事件在绘图数据缓冲区上进行绘图操作得到绘图数据,将绘图数据加入显示队列。
终端100可以通过浏览器的主进程监听绘图事件,并通过该主进程将监听到的绘图事件通过进程间通信发送给图形绘制线程,该图形绘制线程可以在绘图数据缓冲区上进行绘图操作,从而可以在绘图数据缓冲区上存储相应的绘图数据,然后图形绘制线程可以将绘图数据缓冲区上存储的绘图数据加入到显示队列当中,该显示队列中的数据可以在终端的全屏幕上进行显示。
步骤S404,终端100利用图形绘制线程调用libdrm库的图形显示接口,触发DRM驱动模块将显示队列中的绘图数据显示在屏幕上。
本步骤中,终端100可以通过图形绘制线程调用libdrm库的图形显示接口,触发内核的DRM驱动模块,将显示队列中的全部数据显示在终端的屏幕上,其中,libdrm库提供的drmModePageFlip接口可以用于将显示队列中的数据显示在终端的屏幕上,该drmModePageFlip接口可以通过DRM驱动模块提供的DRM_IOCTL_MODE_PAGE_FLIP这个控制项让内核执行显示操作,从而实现全屏幕显示的效果。
下面结合图6和图7说明本发明实施例的绘图方法与传统技术提供的绘图方法的差异。以Chromium浏览器的多进程框架为例,Chromium浏览器的Render进程、Browser进程和GPU进程三个进程之间可以进行进程间通信。
传统技术提供的绘图方法可以参考图6,图6为一种基于多进程浏览器的绘图方案的逻辑示意图,在Chromium OS UI服务启动时,Browser进程(即浏览器的主进程)的DrmGpuPlatformSupportHost实例与GPU进程(即图形处理器进程)的DrmThreadMessageProxy实例进行IPC进程间通信,这一过程会创建DrmThread的线程实例,DrmThread线程的作用是通过调用libdrm库提供的接口,将画面显示在显示设备上,Browser进程在接收到输入事件后,该进程的EventRouter实例会将事件路由给Render进程(即网页进程),这一过程通过IPC进程间通信实现,Render进程接收到输入事件后,将输入事件转换为绘图命令,通过Command Buffer发送给GPU进程的GLES2Decoder实例,这一过程也经过了进程切换,其中,Render进程作为Command Buffer的Client,GPU进程作为CommandBuffer的Service;GPU进程的GLES2Decoder实例通过调用libdrm库提供的接口创建GbmBuffer缓冲区,并在GbmBuffer上进行图形绘制操作,DrmThread线程将GbmBuffer缓冲区加入到DrmOverlayPlane显示队列中,并通过CrtcController实例调用libdrm库提供的接口,将显示队列中的DrmOverlayPlane显示在屏幕上。因此,传统技术提供的方案从浏览器接收到输入事件,到完成书写绘制,需要经历多次进程切换,实现过程比较复杂,最终显示绘制的图形也是在Render进程中,这导致书写绘制的内容无法显示在整个屏幕上。
本发明实施例提供的绘制方法可以参考图7,图7为一个实施例中基于多进程浏览器的绘图方案的逻辑示意图,在Chromium OS UI服务启动时,Browser进程的DrmGpuPlatformSupportHost实例与GPU进程的DrmThreadMessageProxy实例进行IPC进程间通信,这一过程创建DrmPaintThread的线程实例,DrmPaintThread线程通过调用libdrm库创建DrmDumbBuffer缓冲区,并等待输入事件;Browser进程在接收到输入事件后,DrmGpuPlatformSupportHost实例通过IPC进程间通信,将事件发送给GPU进程的DrmThreadMessageProxy实例;GPU进程DrmThreadMessageProxy实例将事件发送给DrmPaintThread线程,DrmPaintThread线程在DrmDumbBuffer上进行绘制操作;DrmPaintThread线程将DrmDumbBuffer缓冲区加入到DrmOverlayPlane显示队列中,并通过CrtcController实例调用libdrm库提供的接口,将显示队列中的DrmOverlayPlane显示在屏幕上,其中,libdrm库提供的drmModePageFlip接口用于将缓冲区数据显示在屏幕上,drmModePageFlip接口可以通过DRM驱动提供的DRM_IOCTL_MODE_PAGE_FLIP,这个控制项能够让内核执行显示操作。可见,本发明实施例提供的绘制方法,能够在不改变Chromium浏览器多进程框架的前提下,在Browser进程接收到输入事件后,直接通过进程间通信,让GPU进程绘制图形,不需要涉及Render进程。这种方式减少了进程切换次数,在效率方面有一定的提升,另外也突破Render进程的限制,可以在整个系统屏幕上进行书写绘制操作,由于不会涉及到Render进程,可以实现系统级的书写绘制。
在一个实施例中,提供了一种基于多进程浏览器的绘图装置,参考图8,图8为一个实施例中基于多进程浏览器的绘图装置的结构框图,该装置可以包括:
事件接收模块101,用于通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,图形绘制线程为图形处理器进程与主进程进行进程间通信创建的;主进程为浏览器的主进程;
数据转化模块102,用于利用图形绘制线程将绘图事件转化为绘图数据;
数据显示模块103,用于通过图形绘制线程触发显卡驱动模块显示绘图数据。
在一个实施例中,还可以包括:
提取模块,用于利用主进程监听输入事件,提取输入事件中的绘图事件;
传递模块,用于通过主进程将绘图事件传递至图形绘制线程。
在一个实施例中,事件传递单元可以包括:
类型确定单元,用于通过主进程确定绘图事件的绘制类型;
事件传递单元,用于若绘制类型为全屏绘制,则利用主进程将绘图事件传递至图形绘制线程。
在一个实施例中,还可以包括:
内容绘制单元,用于若所述绘制类型为网页内绘制,则通过主进程将绘图事件传递至网页进程,触发网页进程在浏览器的网页内绘制与绘图事件相对应的内容。
在一个实施例中,类型确定单元进一步用于:
利用主进程接收对绘制类型选项的选择操作,并根据选择操作确定绘制类型;其中,绘制类型选项显示在浏览器的界面上。
在一个实施例中,数据转化模块102进一步用于:
利用图形绘制线程,基于绘图事件在绘图数据缓冲区上进行绘制操作,得到绘图数据;其中,绘图数据缓冲区为图形绘制线程创建的数据缓冲区。
在一个实施例中,数据显示模块103进一步用于:
通过图形绘制线程,将绘图数据缓冲区的绘图数据加入显示队列;利用图形绘制线程调用显卡驱动模块提供的图形显示接口,触发显卡驱动模块将显示队列中的绘图数据显示在屏幕上。
本发明的基于多进程浏览器的绘图装置与本发明的基于多进程浏览器的绘图方法一一对应,关于基于多进程浏览器的绘图装置的具体限定可以参见上文中对于基于多进程浏览器的绘图方法的限定,在上述基于多进程浏览器的绘图方法的实施例阐述的技术特征及其有益效果均适用于基于多进程浏览器的绘图装置的实施例中,在此不再赘述。上述基于多进程浏览器的绘图装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种基于Chromium浏览器的绘图装置,参考图9,图9为一个实施例中基于Chromium浏览器的绘图装置的结构框图,该装置可以包括:
线程创建模块401,用于通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;主进程为Chromium浏览器的主进程;
缓冲区创建模块402,用于利用图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;
数据获取模块403,用于通过图形绘制线程,接收主进程的绘图事件,并基于绘图事件在绘图数据缓冲区上进行绘图操作得到绘图数据,将绘图数据加入显示队列;
数据显示模块404,用于利用图形绘制线程调用libdrm库的图形显示接口,触发DRM驱动模块将显示队列中的绘图数据显示在屏幕上。
本发明的基于Chromium浏览器的绘图装置与本发明的基于Chromium浏览器的绘图方法一一对应,关于基于Chromium浏览器的绘图装置的具体限定可以参见上文中对于基于Chromium浏览器的绘图方法的限定,在上述基于Chromium浏览器的绘图方法的实施例阐述的技术特征及其有益效果均适用于基于Chromium浏览器的绘图装置的实施例中,在此不再赘述。上述基于Chromium浏览器的绘图装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示,图10为一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于多进程浏览器的绘图方法、基于Chromium浏览器的绘图方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,图形绘制线程为图形处理器进程与主进程进行进程间通信创建的;主进程为浏览器的主进程;利用图形绘制线程将绘图事件转化为绘图数据;通过图形绘制线程触发显卡驱动模块显示绘图数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
利用主进程监听输入事件,提取输入事件中的绘图事件;通过主进程将绘图事件传递至图形绘制线程。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过主进程确定绘图事件的绘制类型;若绘制类型为全屏绘制,则利用主进程将绘图事件传递至图形绘制线程。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若绘制类型为网页内绘制,则通过主进程将绘图事件传递至网页进程,触发网页进程在浏览器的网页内绘制与绘图事件相对应的内容。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
利用主进程接收对绘制类型选项的选择操作,并根据选择操作确定绘制类型;其中,绘制类型选项显示在浏览器的界面上。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
利用图形绘制线程,基于绘图事件在绘图数据缓冲区上进行绘制操作,得到绘图数据;其中,绘图数据缓冲区为图形绘制线程创建的数据缓冲区。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过图形绘制线程,将绘图数据缓冲区的绘图数据加入显示队列;利用图形绘制线程调用显卡驱动模块提供的图形显示接口,触发显卡驱动模块将显示队列中的绘图数据显示在屏幕上。
在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;主进程为Chromium浏览器的主进程;利用图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;通过图形绘制线程,接收主进程的绘图事件,并基于绘图事件在绘图数据缓冲区上进行绘图操作得到绘图数据,将绘图数据加入显示队列;利用图形绘制线程调用libdrm库的图形显示接口,触发DRM驱动模块将显示队列中的绘图数据显示在屏幕上。
上述计算机设备,通过所述处理器上运行的计算机程序,能够在不改变浏览器多进程框架的前提下,主进程接收到绘图事件后,直接通过进程间通信让图形处理器进程绘制图形,一方面减少了进程切换次数,在绘图效率方面有一定提升,另一方面也突破了网页进程的限制,可以在整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸的限制。
本领域普通技术人员可以理解实现如上任一项实施例所述的基于多进程浏览器的绘图方法、基于Chromium浏览器的绘图方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
据此,在一个实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,图形绘制线程为图形处理器进程与主进程进行进程间通信创建的;主进程为浏览器的主进程;利用图形绘制线程将绘图事件转化为绘图数据;通过图形绘制线程触发显卡驱动模块显示绘图数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
利用主进程监听输入事件,提取输入事件中的绘图事件;通过主进程将绘图事件传递至图形绘制线程。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过主进程确定绘图事件的绘制类型;若绘制类型为全屏绘制,则利用主进程将绘图事件传递至图形绘制线程。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若绘制类型为网页内绘制,则通过主进程将绘图事件传递至网页进程,触发网页进程在浏览器的网页内绘制与绘图事件相对应的内容。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
利用主进程接收对绘制类型选项的选择操作,并根据选择操作确定绘制类型;其中,绘制类型选项显示在浏览器的界面上。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
利用图形绘制线程,基于绘图事件在绘图数据缓冲区上进行绘制操作,得到绘图数据;其中,绘图数据缓冲区为图形绘制线程创建的数据缓冲区。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过图形绘制线程,将绘图数据缓冲区的绘图数据加入显示队列;利用图形绘制线程调用显卡驱动模块提供的图形显示接口,触发显卡驱动模块将显示队列中的绘图数据显示在屏幕上。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;主进程为Chromium浏览器的主进程;利用图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;通过图形绘制线程,接收主进程的绘图事件,并基于绘图事件在绘图数据缓冲区上进行绘图操作得到绘图数据,将绘图数据加入显示队列;利用图形绘制线程调用libdrm库的图形显示接口,触发DRM驱动模块将显示队列中的绘图数据显示在屏幕上。
上述计算机可读存储介质,通过其存储的计算机程序,能够在不改变浏览器多进程框架的前提下,主进程接收到绘图事件后,直接通过进程间通信让图形处理器进程绘制图形,一方面减少了进程切换次数,在绘图效率方面有一定提升,另一方面也突破了网页进程的限制,可以在整个屏幕上进行图形绘制操作,无需受到浏览器页面尺寸的限制。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于多进程浏览器的绘图方法,其特征在于,包括步骤:
通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;所述浏览器的主进程用于监听输入到所述浏览器中的输入事件,所述输入事件是在用户使用所述浏览器时产生的;其中,所述绘图事件由所述用户在所述浏览器上进行触发,生成的所述绘图事件由所述浏览器的主进程进行接收,通过所述图形处理器进程创建的图形绘制线程从所述主进程处接收所述绘图事件,对所述绘图事件进行处理;其中,若所述绘图事件的绘制类型为全屏绘制,则利用所述主进程将所述绘图事件传递至所述图形绘制线程;若所述绘图事件的所述绘制类型为网页内绘制,则通过所述主进程将所述绘图事件传递至网页进程,触发所述网页进程在所述浏览器的网页内绘制与所述绘图事件相对应的内容;
利用所述图形绘制线程将所述绘图事件转化为绘图数据;具体包括:利用所述图形绘制线程,基于所述绘图事件在绘图数据缓冲区上进行绘制操作,得到所述绘图数据;其中,所述绘图数据缓冲区为所述图形绘制线程创建的数据缓冲区;
通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据;具体包括:通过所述图形绘制线程,将所述绘图数据缓冲区的绘图数据加入显示队列;利用所述图形绘制线程调用所述显卡驱动模块提供的图形显示接口,触发所述显卡驱动模块将所述显示队列中的绘图数据显示在屏幕上。
2.根据权利要求1所述的方法,其特征在于,在所述通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件的步骤之前,还包括:
利用所述主进程监听输入事件,提取所述输入事件中的所述绘图事件;
通过所述主进程将所述绘图事件传递至所述图形绘制线程。
3.根据权利要求2所述的方法,其特征在于,所述通过所述主进程将所述绘图事件传递至所述图形绘制线程的步骤包括:
通过所述主进程确定所述绘图事件的绘制类型;
若所述绘制类型为全屏绘制,则利用所述主进程将所述绘图事件传递至所述图形绘制线程。
4.根据权利要求3所述的方法,其特征在于,还包括步骤:
若所述绘制类型为网页内绘制,则通过所述主进程将所述绘图事件传递至网页进程,触发所述网页进程在所述浏览器的网页内绘制与所述绘图事件相对应的内容。
5.根据权利要求3所述的方法,其特征在于,所述通过所述主进程确定所述绘图事件的绘制类型的步骤包括:
利用所述主进程接收对绘制类型选项的选择操作,并根据所述选择操作确定所述绘制类型;其中,所述绘制类型选项显示在所述浏览器的界面上。
6.一种基于Chromium浏览器的绘图方法,其特征在于,包括步骤:
通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程所述Chromium浏览器的主进程用于监听输入到所述Chromium浏览器中的输入事件,所述输入事件是在用户使用所述Chromium浏览器时产生的;
利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;
通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;其中,所述绘图事件由所述用户在所述Chromium浏览器上进行触发,生成的所述绘图事件由所述Chromium浏览器的主进程进行接收,通过所述图形处理器进程创建的图形绘制线程从所述主进程处接收所述绘图事件,对所述绘图事件进行处理;其中,若所述绘图事件的绘制类型为全屏绘制,则利用所述主进程将所述绘图事件传递至所述图形绘制线程;若所述绘图事件的所述绘制类型为网页内绘制,则通过所述主进程将所述绘图事件传递至网页进程,触发所述网页进程在所述浏览器的网页内绘制与所述绘图事件相对应的内容;
利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
7.一种基于多进程浏览器的绘图装置,其特征在于,包括:
事件接收模块,用于通过图形处理器进程创建的图形绘制线程,接收主进程的绘图事件;其中,所述图形绘制线程为所述图形处理器进程与主进程进行进程间通信创建的;所述主进程为浏览器的主进程;所述浏览器的主进程用于监听输入到所述浏览器中的输入事件,所述输入事件是在用户使用所述浏览器时产生的;其中,所述绘图事件由所述用户在所述浏览器上进行触发,生成的所述绘图事件由所述浏览器的主进程进行接收,通过所述图形处理器进程创建的图形绘制线程从所述主进程处接收所述绘图事件,对所述绘图事件进行处理;其中,若所述绘图事件的绘制类型为全屏绘制,则利用所述主进程将所述绘图事件传递至所述图形绘制线程;若所述绘图事件的所述绘制类型为网页内绘制,则通过所述主进程将所述绘图事件传递至网页进程,触发所述网页进程在所述浏览器的网页内绘制与所述绘图事件相对应的内容;
数据转化模块,用于利用所述图形绘制线程将所述绘图事件转化为绘图数据;具体包括:利用所述图形绘制线程,基于所述绘图事件在绘图数据缓冲区上进行绘制操作,得到所述绘图数据;其中,所述绘图数据缓冲区为所述图形绘制线程创建的数据缓冲区;
数据显示模块,用于通过所述图形绘制线程触发显卡驱动模块显示所述绘图数据;具体包括:通过所述图形绘制线程,将所述绘图数据缓冲区的绘图数据加入显示队列;利用所述图形绘制线程调用所述显卡驱动模块提供的图形显示接口,触发所述显卡驱动模块将所述显示队列中的绘图数据显示在屏幕上。
8.一种基于Chromium浏览器的绘图装置,其特征在于,包括:
线程创建模块,用于通过图形处理器进程与主进程进行进程间通信创建图形绘制线程;所述主进程为所述Chromium浏览器的主进程所述Chromium浏览器的主进程用于监听输入到所Chromium浏览器中的输入事件,所述输入事件是在用户使用所述Chromium浏览器时产生的;
缓冲区创建模块,用于利用所述图形绘制线程调用libdrm库的缓冲区创建接口,创建绘图数据缓冲区;
数据获取模块,用于通过所述图形绘制线程,接收主进程的绘图事件,并基于所述绘图事件在所述绘图数据缓冲区上进行绘图操作得到绘图数据,将所述绘图数据加入显示队列;其中,所述绘图事件由所述用户在所述Chromium浏览器上进行触发,由此生成的所述绘图事件先由所述Chromium浏览器的主进程进行接收,通过所述图形处理器进程创建的图形绘制线程直接从所述主进程处接收所述绘图事件,对所述绘图事件进行处理;其中,若所述绘图事件的绘制类型为全屏绘制,则利用所述主进程将所述绘图事件传递至所述图形绘制线程;若所述绘图事件的所述绘制类型为网页内绘制,则通过所述主进程将所述绘图事件传递至网页进程,触发所述网页进程在所述浏览器的网页内绘制与所述绘图事件相对应的内容;
数据显示模块,用于利用所述图形绘制线程调用所述libdrm库的图形显示接口,触发DRM驱动模块将所述显示队列中的绘图数据显示在屏幕上。
9.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910270838.5A CN110083348B (zh) | 2019-04-04 | 2019-04-04 | 基于多进程浏览器的绘图方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910270838.5A CN110083348B (zh) | 2019-04-04 | 2019-04-04 | 基于多进程浏览器的绘图方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083348A CN110083348A (zh) | 2019-08-02 |
CN110083348B true CN110083348B (zh) | 2023-09-26 |
Family
ID=67414312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910270838.5A Active CN110083348B (zh) | 2019-04-04 | 2019-04-04 | 基于多进程浏览器的绘图方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083348B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506655B (zh) * | 2020-12-07 | 2023-12-15 | 深圳市安冠科技有限公司 | 一种绘图方法、存储介质及应用服务器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478731A (zh) * | 2008-12-25 | 2009-07-08 | 腾讯科技(深圳)有限公司 | 移动终端的即时通讯方法、发送装置和系统 |
CN103106054A (zh) * | 2011-11-09 | 2013-05-15 | 优必达公司 | 以图形处理器提升可互动内容浏览服务的系统与方法 |
CN104572783A (zh) * | 2013-10-29 | 2015-04-29 | 深圳市腾讯计算机系统有限公司 | 网页点击情况的展示方法及装置 |
US9070211B1 (en) * | 2012-10-18 | 2015-06-30 | Google Inc. | Webview tag for a sandboxed multiprocess browser |
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
CN107368291A (zh) * | 2016-05-13 | 2017-11-21 | 北京搜狗科技发展有限公司 | 一种网页绘制装置、方法及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9171348B2 (en) * | 2012-01-23 | 2015-10-27 | Google Inc. | Rendering content on computing systems |
-
2019
- 2019-04-04 CN CN201910270838.5A patent/CN110083348B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478731A (zh) * | 2008-12-25 | 2009-07-08 | 腾讯科技(深圳)有限公司 | 移动终端的即时通讯方法、发送装置和系统 |
CN103106054A (zh) * | 2011-11-09 | 2013-05-15 | 优必达公司 | 以图形处理器提升可互动内容浏览服务的系统与方法 |
US9070211B1 (en) * | 2012-10-18 | 2015-06-30 | Google Inc. | Webview tag for a sandboxed multiprocess browser |
CN104572783A (zh) * | 2013-10-29 | 2015-04-29 | 深圳市腾讯计算机系统有限公司 | 网页点击情况的展示方法及装置 |
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
CN107368291A (zh) * | 2016-05-13 | 2017-11-21 | 北京搜狗科技发展有限公司 | 一种网页绘制装置、方法及电子设备 |
Non-Patent Citations (2)
Title |
---|
基于Chromium的智能终端多进程浏览器研究;胡琳琳等;《网络新媒体技术》;20170515(第03期);全文 * |
基于WebGL的Canvas元素2D绘制加速;谢贤博等;《软件》;20161215(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110083348A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868785B2 (en) | Application program page processing method and device | |
EP3667520A1 (en) | Webpage content extraction method and terminal device | |
CN112114916B (zh) | 一种在Linux操作系统上兼容运行Android应用的方法和装置 | |
US20150370912A1 (en) | Method and system for displaying customized webpage on double webview | |
US20140222947A1 (en) | Method and apparatus for browsings webpages, and storage medium | |
TW201435571A (zh) | 資料處理裝置、顯示控制裝置、半導體晶片、顯示裝置之控制方法、及電腦可讀取媒體 | |
EP3971818A1 (en) | Picture processing method and apparatus | |
CN110659092B (zh) | 网页截图方法、装置、计算机设备和存储介质 | |
CN106528587B (zh) | 复合网页系统中页面的展示方法和装置 | |
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
US20160247306A1 (en) | Apparatus and method for controlling display in electronic device having processors | |
CN109582890A (zh) | 页面加载方法、装置、计算机设备及存储介质 | |
CN110119490A (zh) | 网页浏览方法、装置、计算机设备和存储介质 | |
CN110083348B (zh) | 基于多进程浏览器的绘图方法、装置、设备和存储介质 | |
CN111783019A (zh) | 浏览器子页面创建方法、装置、计算机设备和存储介质 | |
CN112667326A (zh) | 弹窗页面的展示方法、装置、计算机设备和存储介质 | |
CN111159598A (zh) | 影像浏览方法、装置、计算机设备和存储介质 | |
CN111739136A (zh) | 渲染方法、计算机设备和存储介质 | |
CN111414085A (zh) | 一种麒麟移动操作系统的输入法运行方法、系统及介质 | |
KR102411608B1 (ko) | 보안 네트워크 시스템 및 그 데이터 처리 방법 | |
US9830202B1 (en) | Storage and process isolated web widgets | |
CN108139859B (zh) | 对触摸显示器快速着墨 | |
CN117557677A (zh) | 图表绘制方法、装置和计算机设备 | |
KR20100117156A (ko) | 웹페이지 캡쳐 화면 인쇄 방법 | |
EP3506130B1 (en) | Data extracting system and method |
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 |