CN111696186A - 界面渲染方法及装置 - Google Patents

界面渲染方法及装置 Download PDF

Info

Publication number
CN111696186A
CN111696186A CN201910144290.XA CN201910144290A CN111696186A CN 111696186 A CN111696186 A CN 111696186A CN 201910144290 A CN201910144290 A CN 201910144290A CN 111696186 A CN111696186 A CN 111696186A
Authority
CN
China
Prior art keywords
sub
frame buffer
display area
frame
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.)
Granted
Application number
CN201910144290.XA
Other languages
English (en)
Other versions
CN111696186B (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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201910144290.XA priority Critical patent/CN111696186B/zh
Publication of CN111696186A publication Critical patent/CN111696186A/zh
Application granted granted Critical
Publication of CN111696186B publication Critical patent/CN111696186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本申请提供一种界面渲染方法及装置,方法包括:当子进程接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于触发事件生成图像帧并存储至选择的帧缓冲,并将帧缓冲的标识发送至主进程;主进程从帧缓冲中读取图像帧并渲染到子进程对应的显示区域。本申请中的子进程通过使用多个帧缓冲,使得子进程绘制下一图像帧的过程与主进程渲染当前图像帧的过程可以同步进行,即主进程在将帧缓冲中的图像渲染到界面的过程中,子进程可在其它帧缓冲中存储下一帧图像,并通知主进程切换使用的帧缓冲即可,从而主进程无需等待,可直接从帧缓冲读取图像帧进行渲染,进而可提高主进程的界面渲染效率,保证界面的流畅性,用户体验好。

Description

界面渲染方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种界面渲染方法及装置。
背景技术
目前一个应用程序通常由一个主进程和多个子进程组成,主进程通过调度和协调各个子进程以实现界面的渲染显示,且主进程的界面窗口由这些子进程对应的显示区域组成。
在相关技术中,主进程的界面渲染过程是:各个子进程将各自生成的图像帧通过共享内存传递给主进程,主进程将各个子进程的图像帧分别渲染到对应的显示区域显示,从而实现界面渲染显示。然而这种传递方式效率比较低,导致界面更新速度很低,进而导致用户体验不佳。
发明内容
有鉴于此,本申请提供一种界面渲染方法及装置,以解决相关技术中的界面更新速度很低,用户体验不佳的问题。
根据本申请实施例的第一方面,提供一种界面渲染方法,所述方法应用于安装有应用程序的电子设备,所述应用程序包括主进程和子进程,所述方法包括:
当所述子进程接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至所述主进程;
所述主进程从所述帧缓冲中读取所述图像帧并渲染到所述子进程对应的显示区域。
根据本申请实施例的第二方面,提供一种界面渲染装置,所述装置应用于安装有应用程序的电子设备,所述应用程序包括主进程和子进程,所述装置包括:
子进程处理模块,用于当接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至所述主进程;
主进程处理模块,用于从所述帧缓冲中读取所述图像帧并渲染到所述子进程对应的显示区域。
根据本申请实施例的第三方面,提供一种电子设备,所述设备包括可读存储介质和处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现上述第一方面所述方法的步骤。
应用本申请实施例,当子进程接收到触发事件时,通过从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲,然后基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至主进程,从而所述主进程可以从所述帧缓冲中读取所述图像帧并渲染到该子进程对应的显示区域。
基于上述描述可知,子进程通过使用多个帧缓冲,使得子进程绘制下一图像帧的过程与主进程渲染当前图像帧的过程可以同步进行,即主进程在将帧缓冲中的图像渲染到界面的过程中,子进程可在其它帧缓冲中存储下一帧图像,并通知主进程切换使用的帧缓冲即可,从而主进程无需等待,可直接从帧缓冲读取图像帧进行渲染,进而可提高主进程的界面渲染效率,保证界面的流畅性,用户体验好。
附图说明
图1A为本申请根据一示例性实施例示出的一种界面渲染方法的实施例流程图;
图1B为本申请根据图1A所示实施例示出的一种界面显示结构示意图;
图2为本申请根据一示例性实施例示出的一种电子设备的硬件结构图;
图3为本申请根据一示例性实施例示出的一种界面渲染装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,子进程是通过共享内存将图像帧传递给主进程,并由主进程将图像帧渲染到子进程对应的显示区域显示,由于只有主进程将共享内存中的图像帧渲染显示之后,子进程才能继续通过共享内存传递下一个图像帧给主进程,即子进程传递图像帧和主进程渲染图像帧的过程属于异步进行,因此这种传递方式效率比较低,导致界面更新速度很低,很难保证界面的流畅性,用户体验不佳。
为解决上述问题,本申请提出一种界面渲染方法,当子进程接收到触发事件时,通过从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲,然后基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至主进程,从而所述主进程可以从所述帧缓冲中读取所述图像帧并渲染到该子进程对应的显示区域。
基于上述描述可知,子进程通过使用多个帧缓冲,使得子进程绘制下一图像帧的过程与主进程渲染当前图像帧的过程可以同步进行,即主进程在将帧缓冲中的图像渲染到界面的过程中,子进程可在其它帧缓冲中存储下一帧图像,并通知主进程切换使用的帧缓冲即可,从而主进程无需等待,可直接从帧缓冲读取图像帧进行渲染,进而可提高主进程的界面渲染效率,保证界面的流畅性,用户体验好。
图1A为本申请根据一示例性实施例示出的一种界面渲染方法的实施例流程图,所述界面渲染方法可以应用于安装有应用程序的电子设备上,所述应用程序可以包括主进程和子进程。本申请实施例中,应用程序包括的子进程有多个,每个子进程均对应有一个显示区域,且均包括在主进程的界面中,另外,各个显示区域之间可能存在重叠部分。
如图1A所示,所述界面渲染方法包括如下步骤:
步骤101:当子进程接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲。
在执行步骤101之前,主进程需要预先为子进程创建帧缓冲,创建过程可以是:主进程根据子进程对应的显示区域的大小为所述子进程创建N个帧缓冲,并将所述N个帧缓冲的标识发送至所述子进程。
其中,显示区域的大小实际指的是在该显示区域显示的图像所需要占用的空间大小,创建的N个帧缓冲的大小即为所需要占用的空间大小,因此创建的N个帧缓冲的大小可以均相同。由于创建的帧缓冲是用于存储子进程生成的需要更新的图像帧,为了保证子进程绘制下一图像帧的过程与主进程渲染当前图像帧的过程可以同步进行,需要为每个子进程至少创建两个帧缓冲,即N大于1。
在一实施例中,由于主进程有系统窗口句柄,而子进程没有系统窗口句柄,即主进程能够直接从系统接收触发事件,而子进程不能直接从系统接收触发事件,因此子进程接收到的触发事件可以由主进程分发。
主进程的分发过程可以是:当主进程检测到触发事件时,获取排序队列,所述排序队列是由各个子进程对应的显示区域在主进程界面中的前后关系并按照从前往后的顺序排序得到的,从所述排序队列中的第一个子进程开始,判断该子进程是否设置有第一预设标记,所述第一预设标记用于指示不接收任何触发事件,若未设置第一预设标记,则判断所述触发事件的触发点是否位于该子进程对应的显示区域;若位于,则将所述触发事件发送至该子进程;若设置有第一预设标记或未位于显示区域,则从所述排序队列中选择下一个子进程,并返回执行判断该子进程是否设置有第一预设标记的步骤。
其中,主进程检测到的触发事件是在主进程界面中检测到,该触发事件可以是键盘、鼠标等事件。通过以主进程界面的水平方向为横轴,垂直方向为纵轴,垂直于界面的方向为Z轴建立坐标系,各个子进程具有以下几个属性:显示区域的位置、Z轴值、事件穿透,该显示区域的位置可以用区域顶点的横纵轴坐标值、区域宽度和区域高度表示,Z轴值表示的子进程对应的显示区域在主进程界面中的前后关系,Z轴值越大越在排序队列中越靠前,事件穿透指的是子进程对应的显示区域是否设置有用于指示不接收任何触发事件的标记。基于此,主进程的分发策略可以是优先将触发事件分发给比较靠前的且未设置不接收任何触发事件的标记的子进程,同时触发事件的触发点也位于该子进程对应的显示区域。
需要说明的是,如果排序队列中的所有子进程均不满足上述判断条件,则由主进程自身处理该触发事件。本领域技术人员可以理解的是,主进程自身处理触发事件的过程可以通过相关技术实现,本申请在此不再详述。
在一示例性场景中,如图1B所示,主进程的界面包括子进程1对应的显示区域1和子进程2对应的显示区域2,显示区域1与显示区域2之间有重叠区域,且显示区域2的Z轴值大于显示区域1的Z轴值,且显示区域2还具有半透明属性,从而可以隐约看到重叠区域后面的内容。假设触发点位于显示区域1与显示区域2之间的重叠区域中,且显示区域1未设置第一预设标记,显示区域2设置有第一预设标记,因此,主进程执行上述所述的分发过程后,将触发事件发送给子进程1。
步骤102:子进程基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至主进程。
在一实施例中,针对子进程基于所述触发事件生成图像帧并存储至选择的帧缓冲的过程,子进程可以将帧缓冲的标识所指向的帧缓冲与预设绘图工具绑定,然后基于所述触发事件所对应的操作,并通过预设绘图工具在帧缓冲中绘制图像帧。
其中,预设绘图工具可以是OpenGL、DirectX、GDI等工具。以子进程对应的显示区域用于显示一个按钮为例,假设触发事件所对应的操作为改变按钮的显示状态,子进程利用绑定的绘图工具在帧缓冲中绘制改变后的显示状态所对应的文字、背景色以及按钮的矩形框等。
步骤103:主进程从所述帧缓冲中读取图像帧并渲染到该子进程对应的显示区域。
在一实施例中,由于主进程每启动一次界面渲染流程,就需要预先准备一些工具,再对需要渲染的各个子进程所对应的显示区域进行渲染,因此在保证界面流畅性的前提下,为了减少主进程的渲染次数,降低系统资源占用,主进程可以通过预设的消息队列来达到减少渲染次数的目的。实现过程可以是:所述主进程在接收到各个子进程发送的帧缓冲的标识时,可以先将接收到的帧缓冲的标识插入预设的消息队列,所述消息队列中的消息具有先进先出特点,然后再从所述消息队列获取一个消息,若获取的消息为帧缓冲的标识,则为发送所述帧缓冲对应的子进程所对应的显示区域设置第二预设标记,并将所述帧缓冲的标识对应所述显示区域记录下来,并将渲染指令插入所述消息队列;若获取的消息为渲染指令,则获取设置有第二预设标记的显示区域,并针对获取的每个显示区域,从该显示区域对应的帧缓冲的标识所指向的帧缓冲中读取图像帧并渲染到该子进程对应的显示区域。
其中,由于消息队列具有先进先出(FIFO)的特点,因此每次是从队列入口插入消息,并从队列出口读取消息。另外,主进程在处理一条渲染指令并对设置有第二预设标记的显示区域渲染完成后,可以将设置的第二预设标记和记录的帧缓冲的标识释放掉。
在一实施例中,由于主进程每处理一条渲染指令,就要启动一次界面渲染流程,进而就需要预先准备一些工具,才能开始进行渲染,为了节省系统资源开销,避免主进程后续需要处理多余的渲染指令的问题,若获取的消息为渲染指令,则可以释放所述消息队列中剩余的渲染指令。
下面以一个例子来说明:
假设消息队列中目前依次存有子进程1的帧缓冲的标识1、子进程2的帧缓冲的标识2、子进程3的帧缓冲的标识3,当从消息队列中获取到子进程1的帧缓冲的标识1时,将一条渲染指令插入消息队列;当从消息队列中获取到子进程2的帧缓冲的标识2时,将一条渲染指令插入消息队列;当从消息队列中获取到子进程3的帧缓冲的标识3时,将一条渲染指令插入消息队列,此时消息队列中依次存有三条渲染指令,当从消息队列中获取到第一次插入的渲染指令时,主进程会一次将子进程1、子进程2、子进程3各自对应的显示区域均重新渲染,此时消息队列中剩余的两条渲染指令已失去意义,因此可以将剩余的两条渲染指令释放掉。
在本申请实施例中,当子进程接收到触发事件时,通过从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲,然后基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至主进程,从而所述主进程可以从所述帧缓冲中读取所述图像帧并渲染到该子进程对应的显示区域。
基于上述描述可知,子进程通过使用多个帧缓冲,使得子进程绘制下一图像帧的过程与主进程渲染当前图像帧的过程可以同步进行,即主进程在将帧缓冲中的图像渲染到界面的过程中,子进程可在其它帧缓冲中存储下一帧图像,并通知主进程切换使用的帧缓冲即可,从而主进程无需等待,可直接从帧缓冲读取图像帧进行渲染,进而可提高主进程的界面渲染效率,保证界面的流畅性,用户体验好。
图2为本申请根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口201、处理器202、机器可读存储介质203和总线204;其中,通信接口201、处理器202和机器可读存储介质203通过总线204完成相互间的通信。处理器202通过读取并执行机器可读存储介质203中与界面渲染方法的控制逻辑对应的机器可执行指令,可执行上文描述的界面渲染方法,该方法的具体内容参见上述实施例,此处不再累述。
本申请中提到的机器可读存储介质203可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质203可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
图3为本申请根据一示例性实施例示出的一种界面渲染装置的实施例结构图,所述装置可以应用于安装有应用程序的电子设备,所述应用程序包括主进程和子进程,如图3所示,所述界面渲染装置包括:
子进程处理模块310,用于当接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至所述主进程;
主进程处理模块320,用于从所述帧缓冲中读取所述图像帧并渲染到所述子进程对应的显示区域。
在一可选实现方式中,所述主进程处理模块320,可包括:
帧缓冲创建子模块,用于根据所述子进程对应的显示区域的大小为所述子进程创建N个帧缓冲;将所述N个帧缓冲的标识发送至所述子进程。
在一可选实现方式中,所述子进程包括多个子进程,所述主进程处理模块320,还可包括:
事件分发子模块,用于当检测到触发事件时,获取排序队列,所述排序队列是由各个子进程对应的显示区域在主进程界面中的前后关系并按照从前往后的顺序排序得到的;从所述排序队列中的第一个子进程开始,判断该子进程是否设置有第一预设标记,所述第一预设标记用于指示不接收任何触发事件;若未设置第一预设标记,则判断所述触发事件的触发点是否位于该子进程对应的显示区域;若位于,则将所述触发事件发送至该子进程;若设置有第一预设标记或未位于显示区域,则从所述排序队列中选择下一个子进程,并返回执行判断该子进程是否设置有第一预设标记的步骤。
在一可选实现方式中,所述主进程处理模块320,还可包括:
消息插入子模块,用于将接收到的帧缓冲的标识插入预设的消息队列,所述消息队列中的消息具有先进先出特点;
消息获取子模块,用于从所述消息队列获取一个消息;
消息处理子模块,用于若获取的消息为帧缓冲的标识,则为所述帧缓冲对应的子进程所对应的显示区域设置第二预设标记,并将所述帧缓冲的标识对应所述显示区域记录下来,并将渲染指令插入所述消息队列;若获取的消息为渲染指令,则获取设置有第二预设标记的显示区域,并针对获取的每个显示区域,从该显示区域对应的帧缓冲的标识所指向的帧缓冲中读取图像帧并渲染到该子进程对应的显示区域。
在一可选实现方式中,所述主进程处理模块320,还可包括:
释放子模块,用于在获取的消息为渲染指令时,释放所述消息队列中剩余的渲染指令。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (11)

1.一种界面渲染方法,其特征在于,所述方法应用于安装有应用程序的电子设备,所述应用程序包括主进程和子进程,所述方法包括:
当所述子进程接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至所述主进程;
所述主进程从所述帧缓冲中读取所述图像帧并渲染到所述子进程对应的显示区域。
2.根据权利要求1所述的方法,其特征在于,通过如下方式为子进程创建帧缓冲:
所述主进程根据所述子进程对应的显示区域的大小为所述子进程创建N个帧缓冲;
将所述N个帧缓冲的标识发送至所述子进程。
3.根据权利要求1所述的方法,其特征在于,所述子进程包括多个子进程,在子进程接收到触发事件之前,所述方法还包括:
当所述主进程检测到触发事件时,获取排序队列,所述排序队列是由各个子进程对应的显示区域在主进程界面中的前后关系并按照从前往后的顺序排序得到的;
从所述排序队列中的第一个子进程开始,判断该子进程是否设置有第一预设标记,所述第一预设标记用于指示不接收任何触发事件;
若未设置第一预设标记,则判断所述触发事件的触发点是否位于该子进程对应的显示区域;若位于,则将所述触发事件发送至该子进程;
若设置有第一预设标记或未位于显示区域,则从所述排序队列中选择下一个子进程,并返回执行判断该子进程是否设置有第一预设标记的步骤。
4.根据权利要求1所述的方法,其特征在于,所述主进程从所述帧缓冲中读取所述图像帧并渲染到该子进程对应的显示区域,包括:
所述主进程将接收到的帧缓冲的标识插入预设的消息队列,所述消息队列中的消息具有先进先出特点;
从所述消息队列获取一个消息;
若获取的消息为帧缓冲的标识,则为所述帧缓冲对应的子进程所对应的显示区域设置第二预设标记,并将所述帧缓冲的标识对应所述显示区域记录下来,并将渲染指令插入所述消息队列;
若获取的消息为渲染指令,则获取设置有第二预设标记的显示区域,并针对获取的每个显示区域,从该显示区域对应的帧缓冲的标识所指向的帧缓冲中读取图像帧并渲染到该子进程对应的显示区域。
5.根据权利要求4所述的方法,其特征在于,若获取的消息为渲染指令,则所述方法还包括:
释放所述消息队列中剩余的渲染指令。
6.一种界面渲染装置,其特征在于,所述装置应用于安装有应用程序的电子设备,所述应用程序包括主进程和子进程,所述装置包括:
子进程处理模块,用于当接收到触发事件时,从预先为本子进程创建的N个帧缓冲中选择一个帧缓冲;基于所述触发事件生成图像帧并存储至选择的帧缓冲,并将所述帧缓冲的标识发送至所述主进程;
主进程处理模块,用于从所述帧缓冲中读取所述图像帧并渲染到所述子进程对应的显示区域。
7.根据权利要求6所述的装置,其特征在于,所述主进程处理模块,包括:
帧缓冲创建子模块,用于根据所述子进程对应的显示区域的大小为所述子进程创建N个帧缓冲;将所述N个帧缓冲的标识发送至所述子进程。
8.根据权利要求6所述的装置,其特征在于,所述子进程包括多个子进程,所述主进程处理模块,包括:
事件分发子模块,用于当检测到触发事件时,获取排序队列,所述排序队列是由各个子进程对应的显示区域在主进程界面中的前后关系并按照从前往后的顺序排序得到的;从所述排序队列中的第一个子进程开始,判断该子进程是否设置有第一预设标记,所述第一预设标记用于指示不接收任何触发事件;若未设置第一预设标记,则判断所述触发事件的触发点是否位于该子进程对应的显示区域;若位于,则将所述触发事件发送至该子进程;若设置有第一预设标记或未位于显示区域,则从所述排序队列中选择下一个子进程,并返回执行判断该子进程是否设置有第一预设标记的步骤。
9.根据权利要求6所述的装置,其特征在于,所述主进程处理模块,包括:
消息插入子模块,用于将接收到的帧缓冲的标识插入预设的消息队列,所述消息队列中的消息具有先进先出特点;
消息获取子模块,用于从所述消息队列获取一个消息;
消息处理子模块,用于若获取的消息为帧缓冲的标识,则为所述帧缓冲对应的子进程所对应的显示区域设置第二预设标记,并将所述帧缓冲的标识对应所述显示区域记录下来,并将渲染指令插入所述消息队列;若获取的消息为渲染指令,则获取设置有第二预设标记的显示区域,并针对获取的每个显示区域,从该显示区域对应的帧缓冲的标识所指向的帧缓冲中读取图像帧并渲染到该子进程对应的显示区域。
10.根据权利要求9所述的装置,其特征在于,所述主进程处理模块,包括:
释放子模块,用于在获取的消息为渲染指令时,释放所述消息队列中剩余的渲染指令。
11.一种电子设备,其特征在于,所述设备包括可读存储介质和处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现权利要求1-5任一所述方法的步骤。
CN201910144290.XA 2019-02-27 2019-02-27 界面渲染方法及装置 Active CN111696186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910144290.XA CN111696186B (zh) 2019-02-27 2019-02-27 界面渲染方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910144290.XA CN111696186B (zh) 2019-02-27 2019-02-27 界面渲染方法及装置

Publications (2)

Publication Number Publication Date
CN111696186A true CN111696186A (zh) 2020-09-22
CN111696186B CN111696186B (zh) 2023-09-26

Family

ID=72474426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910144290.XA Active CN111696186B (zh) 2019-02-27 2019-02-27 界面渲染方法及装置

Country Status (1)

Country Link
CN (1) CN111696186B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422873A (zh) * 2020-11-30 2021-02-26 Oppo(重庆)智能科技有限公司 插帧方法、装置、电子设备及存储介质
CN112929740A (zh) * 2021-01-20 2021-06-08 广州虎牙科技有限公司 一种渲染视频流的方法、装置、存储介质及设备
CN113726950A (zh) * 2021-06-10 2021-11-30 荣耀终端有限公司 一种图像处理方法和电子设备
WO2023093779A1 (zh) * 2021-11-25 2023-06-01 华为技术有限公司 界面生成方法及电子设备
CN117539582A (zh) * 2024-01-10 2024-02-09 中航国际金网(北京)科技有限公司 多进程界面融合方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030164831A1 (en) * 2002-03-01 2003-09-04 Walls Jeffrey Joel System and method utilizing multiple processes to render graphical data
US20100231599A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Frame Buffer Management
US20140043345A1 (en) * 2012-08-13 2014-02-13 Tobesoft Co., Ltd Rendering processing apparatus and method using multiprocessing
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
CN107463370A (zh) * 2017-06-30 2017-12-12 百度在线网络技术(北京)有限公司 跨进程渲染方法及系统
WO2018119602A1 (zh) * 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 一种渲染方法及装置
CN109194960A (zh) * 2018-11-13 2019-01-11 北京奇艺世纪科技有限公司 一种图像帧渲染方法、装置及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030164831A1 (en) * 2002-03-01 2003-09-04 Walls Jeffrey Joel System and method utilizing multiple processes to render graphical data
US20100231599A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Frame Buffer Management
US20140043345A1 (en) * 2012-08-13 2014-02-13 Tobesoft Co., Ltd Rendering processing apparatus and method using multiprocessing
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
WO2018119602A1 (zh) * 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 一种渲染方法及装置
CN107463370A (zh) * 2017-06-30 2017-12-12 百度在线网络技术(北京)有限公司 跨进程渲染方法及系统
CN109194960A (zh) * 2018-11-13 2019-01-11 北京奇艺世纪科技有限公司 一种图像帧渲染方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
乔少杰;王有为;倪胜巧;彭京;: "基于OpenGL的快速图像渲染方法" *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422873A (zh) * 2020-11-30 2021-02-26 Oppo(重庆)智能科技有限公司 插帧方法、装置、电子设备及存储介质
CN112929740A (zh) * 2021-01-20 2021-06-08 广州虎牙科技有限公司 一种渲染视频流的方法、装置、存储介质及设备
CN112929740B (zh) * 2021-01-20 2023-06-27 广州虎牙科技有限公司 一种渲染视频流的方法、装置、存储介质及设备
CN113726950A (zh) * 2021-06-10 2021-11-30 荣耀终端有限公司 一种图像处理方法和电子设备
CN113726950B (zh) * 2021-06-10 2022-08-02 荣耀终端有限公司 一种图像处理方法和电子设备
WO2023093779A1 (zh) * 2021-11-25 2023-06-01 华为技术有限公司 界面生成方法及电子设备
CN117539582A (zh) * 2024-01-10 2024-02-09 中航国际金网(北京)科技有限公司 多进程界面融合方法及装置
CN117539582B (zh) * 2024-01-10 2024-05-07 中航国际金网(北京)科技有限公司 多进程界面融合方法及装置

Also Published As

Publication number Publication date
CN111696186B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN111696186A (zh) 界面渲染方法及装置
CN110232037A (zh) 主机系统及其方法和加速模块
US8824003B2 (en) Print job status identification using graphical objects
JP5053857B2 (ja) 3次元グラフィックス処理装置および方法
US7784060B2 (en) Efficient virtual machine communication via virtual machine queues
JP2003518673A (ja) 3d環境ラベリング
CN111274019B (zh) 一种数据处理方法、装置及计算机可读存储介质
US7659904B2 (en) System and method for processing high priority data elements
CN109284180A (zh) 一种任务调度方法、装置、电子设备及存储介质
CN102402401A (zh) 一种磁盘io请求队列调度的方法
EP2192568A1 (en) Map drawing device
CN111338769A (zh) 一种数据处理方法、装置及计算机可读存储介质
JP4827659B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
US20190005604A1 (en) Bin streamout preemption in a graphics processing pipeline
CN111310638A (zh) 一种数据处理方法、装置及计算机可读存储介质
US10678744B2 (en) Method and system for lockless interprocessor communication
EP0729104A2 (en) A data transfer control device for controlling data transfer between shared memories of clusters
JPH0465711A (ja) 表示装置の表示制御方式
CN103593606B (zh) 上下文信息管理方法及系统
CN114358577A (zh) 订单信息处理方法和装置
CN112068908B (zh) 图形处理方法及相关装置和设备
CN109145263B (zh) 一种文档处理方法及装置、计算机可读存储介质
US8145786B2 (en) Efficient buffer utilization in a computer network-based messaging system
US9292245B2 (en) Predictive schedule-based tracking of incoming print jobs
CN108140363B (zh) 基于翻转队列管理的图形上下文调度

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant