本申請涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種界面渲染方法和裝置。
背景技術(shù):
隨著圖像技術(shù)的不斷發(fā)展,終端必然會涉及到動態(tài)畫面的渲染處理。如,在游戲運行過程中,終端需要對不斷變化的游戲畫面進(jìn)行渲染,并輸出到終端的顯示界面中進(jìn)行展現(xiàn)。又如,終端在展現(xiàn)網(wǎng)頁的過程中,如果網(wǎng)頁中存在連續(xù)動畫,則終端也需要逐次對各幀動畫進(jìn)行渲染并呈現(xiàn)。
然而,終端渲染每幀畫面都會占用一部分處理器資源,這樣,在終端需要連續(xù)長時間進(jìn)行畫面渲染的情況下,如果終端每秒渲染的畫面幀數(shù)過多,則會占用較多的計算資源,使得終端的能耗過大,并導(dǎo)致終端的產(chǎn)熱過多;而如果終端每秒渲染的畫面幀數(shù)過少,又可能會造成動畫卡頓,從而影響到用戶正常的畫面觀看。仍以在終端運行游戲為例,在終端運行游戲的過程中,如果終端長時間以較高渲染幀率來渲染畫面,則會使得終端的能耗過大,導(dǎo)致設(shè)備耗電量多,且發(fā)熱明顯;而如果終端以較低的渲染幀率來渲染畫面,又可能會導(dǎo)致游戲畫面不流暢,影響到用戶的游戲操作以及正常的游戲交互。
可見,如何在不影響用戶正常觀看畫面的前提下,降低終端渲染畫面所耗費的計算資源,降低終端的能耗以及產(chǎn)熱是本領(lǐng)域技術(shù)人員迫切需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┝艘环N界面渲染方法和裝置,以在不影響用戶正常觀看窗口界面中的畫面圖像的前提下,降低渲染窗口界面中的畫面圖像所需耗費的計算資源,減少終端的能耗,降低終端的產(chǎn)熱。
為實現(xiàn)上述目的,一方面,本申請實施例提供了一種界面渲染方法,包括:
檢測到窗口界面被展現(xiàn)時,按照預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第一畫面圖像;
監(jiān)控所述窗口界面中是否存在滿足預(yù)設(shè)的提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件,所述目標(biāo)觸發(fā)事件用于觸發(fā)連續(xù)動畫事件,所述連續(xù)動畫事件為向所述窗口界面中播放連續(xù)多幀動畫;
當(dāng)監(jiān)控到所述目標(biāo)觸發(fā)事件時,按照預(yù)設(shè)的高渲染幀數(shù)以及所述連續(xù)動畫事件,向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第二畫面圖像;
監(jiān)控所述窗口界面中是否存在尚未結(jié)束的所述連續(xù)動畫事件;
當(dāng)所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件時,按照所述預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第三畫面圖像。
另一方面,本申請還提供了一種界面渲染裝置,包括:
初始渲染單元,用于檢測到窗口界面被展現(xiàn)時,按照預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第一畫面圖像;
事件監(jiān)控單元,用于監(jiān)控所述窗口界面中是否存在滿足預(yù)設(shè)的提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件,所述目標(biāo)觸發(fā)事件用于觸發(fā)連續(xù)動畫事件,所述連續(xù)動畫事件為向所述窗口界面中播放連續(xù)多幀動畫;
幀數(shù)調(diào)整單元,用于如果監(jiān)控到所述目標(biāo)觸發(fā)事件時,按照預(yù)設(shè)的高渲染幀數(shù)以及所述連續(xù)動畫事件,向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第二畫面圖像;
動畫監(jiān)控單元,用于監(jiān)控所述窗口界面中是否存在尚未結(jié)束的所述連續(xù)動畫事件;
幀數(shù)恢復(fù)單元,用于在所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件時,按照所述預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第三畫面圖像。
經(jīng)由上述的技術(shù)方案可知,在本申請實施例中,窗口界面被展現(xiàn)之后,會以預(yù)設(shè)的低渲染幀數(shù),向該窗口界面中渲染并輸出畫面圖像,只有當(dāng)窗口界面中存在需要提升渲染幀數(shù)的目標(biāo)觸發(fā)事件時,才會將渲染幀數(shù)調(diào)整為高渲染幀數(shù),以保證用戶可以觀看流暢的連續(xù)動畫,避免卡頓;而當(dāng)目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件結(jié)束時,則又會將該窗口界面對應(yīng)的渲染幀數(shù)恢復(fù)為低渲染幀數(shù),從而將低渲染幀數(shù)作為該窗口界面對應(yīng)的渲染畫面圖像的常態(tài),而將觸發(fā)向窗口界面中播放連續(xù)多幀動畫的目標(biāo)事件作為觸發(fā)窗口界面進(jìn)入高渲染幀數(shù)的短期異常狀態(tài),實現(xiàn)了不存在目標(biāo)觸發(fā)事件觸發(fā)的情況下,長時間維持該窗口界面的渲染幀數(shù)為低渲染幀數(shù),進(jìn)而降低了終端的計算資源的耗費,減少了能耗,也有利于減少終端的產(chǎn)熱。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實施例公開的計算機(jī)設(shè)備的一種組成結(jié)構(gòu)示意圖;
圖2為本申請實施例所公開的界面渲染方法所適用的一種應(yīng)用場景的示意圖;
圖3為本申請實施例公開的一種界面渲染方法的一個實施例的流程示意圖;
圖4為本申請實施例公開的一種靜態(tài)界面的示意圖;
圖5a、5b、5c、5d、5e和5f示出了本申請實施例的一種窗口界面在不同觸發(fā)事件觸發(fā)下所觸發(fā)的渲染幀數(shù)變化的示意圖;
圖6示出了圖5a-5f中渲染幀數(shù)變化的曲線趨勢示意圖;
圖7示出了本申請實施例公開的一種界面渲染方法又一個實施例的流程示意圖;
圖8示出了本申請實施例公開的一種界面渲染裝置一個實施例的組成結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
本申請實施例提供了一種界面渲染方法和裝置,該方法和裝置應(yīng)用于計算機(jī)動畫、虛擬現(xiàn)實、游戲等領(lǐng)域所涉及到的畫面渲染,以降低終端渲染畫面所需耗費的能耗,減少終端的產(chǎn)熱。
例如,本申請的方案可以應(yīng)用于游戲運行過程中,對游戲中各個游戲界面所涉及到的游戲畫面的渲染控制。
本實施例的方法和裝置適用于任意計算機(jī)設(shè)備中,以通過該計算機(jī)設(shè)備控制畫面的渲染幀數(shù),并實現(xiàn)畫面的渲染與呈現(xiàn)。如,該計算機(jī)設(shè)備可以為運行網(wǎng)絡(luò)游戲、單機(jī)游戲、虛擬現(xiàn)實等的終端,例如,手機(jī)、平板電腦、筆記本等等。
如圖1,其示出了本申請實施例的界面渲染方法和裝置所適用的計算機(jī)設(shè)備的一種組成結(jié)構(gòu)示意圖。在圖1中,該計算機(jī)設(shè)備可以包括:處理器101、存儲器102、通信接口103、顯示器104、輸入單元105和通信總線106。
處理器101、存儲器102、通信接口103、顯示器104、輸入單元105均通過通信總線106完成相互間的通信。
在本申請實施例中,該處理器101可以包括:顯卡中的圖形處理器(gpu,graphicsprocessingunit)1012,gpu可以用于實現(xiàn)本申請實施例中畫面圖像的渲染等相關(guān)的圖形數(shù)據(jù)處理。
該處理器101中還包括中央處理器(cpu,centralprocessingunit)1011,以控制畫面渲染幀數(shù),并實現(xiàn)該計算機(jī)設(shè)備主要的數(shù)據(jù)處理操作,當(dāng)然,該中央處理器還可以被替換為特定應(yīng)用集成電路(application-specificintegratedcircuit,asic),數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件等。
存儲器102中用于存放一個或者一個以上程序,程序可以包括程序代碼,所述程序代碼包括計算機(jī)操作指令。該存儲器可能包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
該通信接口103可以為通信模塊的接口,如gsm模塊的接口。
該顯示器104可用于窗口界面,并在窗口界面中顯示渲染出的畫面圖像;還可以顯示由用戶輸入的信息,或者提供給用戶的信息,以及計算機(jī)設(shè)備的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖片等任意組合來構(gòu)成。該顯示器可以包括顯示面板,如,可以為采用液晶顯示器、有機(jī)發(fā)光二極管等形式來配置的顯示面板。進(jìn)一步的,該顯示器可以包括具備采集觸摸事件的觸摸顯示面板。
可選的,計算機(jī)設(shè)備還可以包括輸入單元105,該輸入單元105可用于接收輸入的用戶輸入的字符、數(shù)字等信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的信號輸入。該輸入單元可以包括但不限于物理鍵盤、鼠標(biāo)、操作桿等中的一種或多種。
當(dāng)然,圖1所示的計算機(jī)設(shè)備結(jié)構(gòu)并不構(gòu)成對計算機(jī)設(shè)備的限定,在實際應(yīng)用中計算機(jī)設(shè)備可以包括比圖1所示的更多或更少的部件,或者組合某些部件。
為了便于理解本申請的方案,下面對本申請的方案所適用的場景進(jìn)行簡單介紹。
在一種場景中,終端上可以運行有游戲等應(yīng)用,在終端運行該應(yīng)用的過程中,可以展現(xiàn)出該應(yīng)用相關(guān)的窗口界面,并在窗口界面中呈現(xiàn)渲染出的畫面圖像。例如,該應(yīng)用可以為單機(jī)游戲,終端可以在運行單機(jī)游戲的過程中,渲染游戲畫面并輸出到游戲的相應(yīng)界面中。
在又一種場景中,可以參見圖2,其示出了本申請一種界面渲染方法所適用的一種場景示意圖。如圖2所示,在該種應(yīng)用場景中可以包括由至少一臺服務(wù)器201組成的服務(wù)系統(tǒng),以及多臺終端202。
其中,終端可以為手機(jī)、筆記本電腦、臺式機(jī)等等。
終端202,用于向服務(wù)器發(fā)送圖像數(shù)據(jù)請求。
服務(wù)器201,用于響應(yīng)于終端的圖像數(shù)據(jù)請求,向終端傳輸圖像數(shù)據(jù),并在檢測到圖像數(shù)據(jù)存在更新時,向終端傳輸更新后的圖像數(shù)據(jù)。
例如,以單人或多人在線的網(wǎng)絡(luò)游戲為例,終端202可以向提供游戲服務(wù)的服務(wù)器201發(fā)送用于獲取游戲畫面的圖像數(shù)據(jù)請求,并在服務(wù)器返回圖像數(shù)據(jù)之后,按照當(dāng)前設(shè)定的渲染幀數(shù),對圖像數(shù)據(jù)進(jìn)行渲染并輸出到瀏覽器中游戲相應(yīng)的窗口界面中。
基于以上本實施例的共性,對本申請實施例的界面渲染方法進(jìn)行詳細(xì)介紹。
參見圖3,其示出了本申請一種界面渲染方法一個實施例的流程示意圖,本實施例的方法可以應(yīng)用于前面所提到的計算機(jī)設(shè)備,該方法可以包括:
s301,在檢測到窗口界面被展現(xiàn)時,檢測該窗口界面屬于滿足低渲染幀數(shù)條件的界面。
其中,窗口界面也可以簡稱為界面,其用于呈現(xiàn)所需渲染并呈現(xiàn)出的畫面圖像。如,以游戲為例,游戲中會有多個不同的窗口界面,如,游戲中玩家進(jìn)行游戲交互的主窗口界面,在該主窗口界面中可以顯示出各個游戲玩家在游戲中的角色、角色位置以及姿態(tài)等等;當(dāng)用戶選擇武器裝備時,可以打開游戲中的用于選擇武器裝備的裝備選擇界面。
在本申請實施例中,檢測到窗口界面被展現(xiàn)可以是窗口界面被打開,例如游戲玩家進(jìn)入游戲,打開游戲的主窗口界面;也可以是:由另外一個窗口界面切換到該窗口界面,例如,從游戲的主窗口界面切換到裝備選擇界面。
其中,該低渲染幀數(shù)條件為用于判斷該窗口界面是否適合按照較低渲染幀數(shù)渲染畫面圖像的條件。
如,該低渲染幀數(shù)條件可以為包括以下任意一種或幾種:
窗口界面為不具有連續(xù)動畫的靜態(tài)界面;
該窗口界面所需呈現(xiàn)的動畫的時長小于預(yù)設(shè)閾值;
以及,該窗口界面所呈現(xiàn)出的畫面圖像中超過預(yù)設(shè)比例的區(qū)域為靜止?fàn)顟B(tài),而僅有小于預(yù)設(shè)比例的小部分區(qū)域存在動畫,且該動畫不屬于預(yù)設(shè)的重點顯示內(nèi)容。
其中,動畫是指窗口界面所呈現(xiàn)的畫面圖像中的一部分內(nèi)容,該部分內(nèi)容具有在多幀畫面圖像中連續(xù)性變化的特征。例如,仍以游戲為例,當(dāng)有游戲玩家觸發(fā)射擊時,就會在該窗口界面呈現(xiàn)出的畫面圖像中顯示出連續(xù)多幀射擊動畫,以表征射擊過程中子彈的變化;又如,游戲畫面中會存在爆破動畫,以體現(xiàn)出爆破過程中各個階段的變化。
可以理解的是,完全不存在連續(xù)動畫的靜態(tài)界面非常少,因此,在實際應(yīng)用中可以具有動畫幀率小于每秒5幀的動畫的界面確定為靜態(tài)界面。如,圖4,其示出了一種靜態(tài)界面的示意圖,在該圖4示出了在網(wǎng)絡(luò)游戲中選擇服務(wù)器的界面示意圖,在該界面中用戶可以選擇游戲的服務(wù)器(也就是俗稱的選區(qū)),在該種界面就可以認(rèn)為不存在連續(xù)動畫,界面中顯示出的各幀畫面圖像幾乎沒有差別,如果按照較高渲染幀率渲染該界面中的選擇服務(wù)器的圖像,則會造成資源耗費。
進(jìn)一步的,由于大部分窗口界面都始終存在隱藏的動畫或者不太重要的動畫,例如,游戲中的按鈕上的特效可能始終存在,因此,如果直接檢測是否存在不具有動畫的靜態(tài)界面或者窗口界面中所需呈現(xiàn)的動畫的時長小于預(yù)設(shè)閾值等,則可能導(dǎo)致大部分窗口界面都無法滿足該低渲染幀數(shù)條件,進(jìn)而導(dǎo)致檢測錯誤。
為了減少檢測錯誤,可選的,在本申請實施例中可以根據(jù)該低渲染幀數(shù)條件,預(yù)先確定出滿足低渲染幀數(shù)條件的窗口界面所組成的窗口界面集合,并預(yù)置該窗口界面集合,這樣,可以直接檢測當(dāng)前展現(xiàn)出的窗口界面是否為預(yù)置的窗口界面集合中的界面,如果該窗口界面屬于該窗口界面集合,則確定可以將該窗口界面的渲染幀數(shù)設(shè)置為較低的渲染幀數(shù)。
s302,當(dāng)該窗口界面為滿足低渲染幀數(shù)條件的界面,則按照預(yù)設(shè)的低渲染幀數(shù),向該窗口界面中渲染并輸出畫面圖像。
渲染幀數(shù)(framepersecond)也稱渲染幀率,是指畫面圖像每秒渲染的幀數(shù)。一般情況下,每秒渲染的幀數(shù)越多,窗口界面所顯示的動作就越流暢,但終端的計算量越大、耗能越大;反之,每秒渲染的幀數(shù)越少,動畫越顯卡頓,但計算量越小、耗能下降。
在本申請實施例中,如果判斷出該窗口界面為滿足低渲染幀數(shù)條件的界面,則可以維持該窗口界面對應(yīng)的渲染幀數(shù)為低渲染幀數(shù)。
其中,該預(yù)設(shè)的低渲染幀數(shù)可以根據(jù)需要設(shè)置,該低渲染幀數(shù)小于目前窗口界面中常規(guī)的渲染幀數(shù)。
本申請的發(fā)明人經(jīng)過測試發(fā)現(xiàn):渲染幀率分別為30幀和60幀,對于終端的操作系統(tǒng)的能耗差別不到5%,并不能改變能耗級別。而如果將渲染幀率降至10幀以下,則能有效地將能耗級別降至能源報告中的“低”能耗級別。同時,為了保證能夠正常接收用戶的輸入操作,窗口界面對應(yīng)的渲染幀率不能下降至0,否則窗口界面對應(yīng)的業(yè)務(wù)邏輯的更新就會完全停止,而當(dāng)渲染幀率是5幀時,窗口界面對應(yīng)的業(yè)務(wù)邏輯的反應(yīng)延時最長0.2秒,在人類反應(yīng)時間(0.15-0.4秒)以內(nèi),是個比較合適的經(jīng)驗值。因此,在本申請實施例可以將低渲染幀數(shù)設(shè)置為每秒5幀作為一種優(yōu)選實施方式。
需要說明的是,檢測展現(xiàn)出的窗口界面是否滿足低渲染幀數(shù)條件是一種優(yōu)選步驟,在實際應(yīng)用中,也可以在監(jiān)測到切換或打開某個窗口界面時,直接將該窗口界面的渲染幀率設(shè)置為預(yù)設(shè)的低渲染幀數(shù)。而檢測窗口界面是否滿足低渲染幀數(shù)條件的目的是為了能夠避免將一些具有持續(xù)動畫的動態(tài)界面設(shè)置為低渲染幀率,而使得終端不斷將渲染幀數(shù)切換到較高的渲染幀數(shù),而導(dǎo)致不必要的資源耗費。
s303,監(jiān)控窗口界面中是否存在滿足預(yù)設(shè)的提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件。
可選的,滿足提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件至少可以包括以下任意一種或幾種:
能夠觸發(fā)窗口界面的畫面圖像發(fā)生變化的觸摸事件;
能夠觸發(fā)窗口界面的畫面圖像發(fā)生變化的網(wǎng)絡(luò)事件
能夠觸發(fā)窗口界面的畫面圖像發(fā)生變化的定時動畫事件。
以上幾種觸發(fā)事件的共性是能夠觸發(fā)窗口界面的畫面圖像發(fā)生變化,也就是說,這些事件可以用于觸發(fā)啟動連續(xù)動畫事件,該連續(xù)動畫事件為向所述窗口界面中播放連續(xù)多幀動畫。其中,該連續(xù)動畫事件所對應(yīng)的連續(xù)多幀動畫的動畫幀速率大于預(yù)設(shè)值,如,動畫幀速率大于5幀或者30幀等。
其中,該觸摸事件可以是用戶手指的觸摸動作,也可以是觸摸筆以及鼠標(biāo)光標(biāo)的觸摸動作。如果某個觸摸事件無法觸發(fā)窗口界面的畫面圖像發(fā)生改變的話,則不屬于滿足提升渲染幀數(shù)條件的觸摸事件,例如,在裝備選擇界面中,如果玩家點擊無法選中的圖標(biāo)或者區(qū)域,則不會觸發(fā)該窗口界面的畫面圖像發(fā)生變化;而如果玩家點擊裝備選擇按鍵,則會觸發(fā)窗口界面中呈現(xiàn)出包含所選取的裝備的相關(guān)信息的動畫。
相應(yīng)的,如果網(wǎng)絡(luò)事件無法觸發(fā)窗口界面的畫面圖像發(fā)生變化,則該網(wǎng)絡(luò)事件也不屬于滿足提升渲染幀數(shù)條件的網(wǎng)絡(luò)事件,如,如果網(wǎng)絡(luò)事件是網(wǎng)絡(luò)側(cè)傳輸?shù)男奶?,由于心跳包不會引起窗口界面的畫面圖像發(fā)生變化,因此,檢測到心跳包的網(wǎng)絡(luò)事件不屬于滿足提升渲染幀數(shù)條件的網(wǎng)絡(luò)事件。又如,如果游戲中其他玩家觸發(fā)了射擊指令,在檢測到該射擊指令時,則會觸發(fā)射擊動畫事件,以渲染出子彈射擊過程所對應(yīng)的多幀連續(xù)動畫,因此,檢測到網(wǎng)絡(luò)側(cè)發(fā)送的射擊事件或指令,則可以確定檢測到目標(biāo)觸發(fā)事件。
其中,定時動畫事件是指定時觸發(fā)播放多幀動畫的定時事件,例如,在網(wǎng)絡(luò)游戲中,如果檢測到炮彈擊中某個對象之后可以觸發(fā)定時動畫事件,以觸發(fā)在炮彈擊中對象之后延遲指定時長觸發(fā)爆炸動畫。
可以理解的是,如果在檢測到窗口界面中存在事件時,實時檢測該事件是否屬于滿足提升渲染幀數(shù)條件,則會耗費較多的計算資源,也會導(dǎo)致耗時較長;甚至可能會出現(xiàn)無法精準(zhǔn)判斷事件是否滿足提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件。因此,可選的,可以預(yù)先確定出滿足提升渲染幀數(shù)條件的事件,并預(yù)置滿足提升渲染幀數(shù)條件的事件所組成的事件集合,這樣,可以監(jiān)控該窗口界面中是否存在屬于預(yù)置的事件集合的目標(biāo)觸發(fā)事件。
s304,當(dāng)監(jiān)控到目標(biāo)觸發(fā)事件時,按照預(yù)設(shè)的高渲染幀數(shù)以及該目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件,向該窗口界面中渲染并輸出畫面圖像。
可以理解的是,由于目標(biāo)觸發(fā)事件會觸發(fā)連續(xù)動畫事件,因此,在監(jiān)控到該目標(biāo)觸發(fā)事件時,可以先確定目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件,然后,依據(jù)該連續(xù)動畫事件,確定窗口界面中所需呈現(xiàn)的畫面圖像的內(nèi)容并進(jìn)行相應(yīng)的渲染。同時,為了保證連續(xù)動畫事件對應(yīng)的多幀連續(xù)動畫的流暢播放,可以將窗口界面對應(yīng)的渲染幀數(shù)提高為預(yù)設(shè)的高渲染幀數(shù)。
其中,該預(yù)設(shè)的高渲染幀數(shù)大于該預(yù)設(shè)的低渲染幀數(shù)。該高渲染幀數(shù)同樣可以根據(jù)需要設(shè)定,一般以能夠保證動畫可以流程播放為準(zhǔn),可選的,該高渲染幀數(shù)為大于或等于每秒30幀,如,高渲染幀數(shù)可以為每秒30幀或者每秒60幀。
需要說明的是,窗口界面在不同時刻所需輸出的畫面圖像可能會有所不同,因此,該步驟s304所輸出的畫面圖像可以不同于該步驟s302中所輸出的畫面圖像,為了便于區(qū)分出該窗口界面中在不同時刻所需輸出的畫面圖像,在本申請實施例中,可以將步驟s302中,向窗口界面渲染并輸出的畫面圖像稱為在判斷出該窗口界面為滿足低渲染幀數(shù)條件的界面這一時刻所需輸出的第一畫面圖像;相應(yīng)的,該步驟s304中為在監(jiān)控到目標(biāo)觸發(fā)事件時,依據(jù)該目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件,向該窗口界面中輸出的當(dāng)前所需展現(xiàn)的第二畫面圖像。s305,監(jiān)控該窗口界面中是否存在尚未結(jié)束的連續(xù)動畫事件。
s306,在該窗口界面中不存在尚未結(jié)束的連續(xù)動畫事件時,按照預(yù)設(shè)的低渲染幀數(shù),向該窗口界面中渲染并輸出畫面圖像。
為了便于與前面步驟s302和步驟s304中輸出的畫面圖像進(jìn)行區(qū)分,將在窗口界面不存在尚未結(jié)束的連續(xù)動畫事件時,該窗口界面中當(dāng)前需要展現(xiàn)的畫面圖像稱為第三畫面圖像。
需要說明的是,在同一時刻窗口界面中可以會同時維持多個連續(xù)動畫事件,使得窗口界面中同時播放多個不同的動畫。如,仍以游戲為例,在計算機(jī)設(shè)備運行游戲的過程中,如果游戲的窗口界面中檢測到一個射擊事件會觸發(fā)一個射擊動畫事件;而下一時刻窗口界面中可能會出現(xiàn)另一個射擊事件,從而觸發(fā)了又一個射擊動畫事件,這樣,在前一個射擊動畫事件對應(yīng)的連續(xù)多幀射擊動畫未播放結(jié)束的前提下,窗口界面會同時播放另一個射擊動畫事件所對應(yīng)的多幀射擊動畫。
相應(yīng)的,為了保證窗口界面中每個連續(xù)動畫事件所對應(yīng)的多幀連續(xù)動畫的流暢播放,需要檢測是否每個連續(xù)動畫事件均已經(jīng)結(jié)束。如果當(dāng)前時刻該窗口界面中仍存在未結(jié)束播放的連續(xù)動畫事件,則仍需要保持該窗口界面的渲染幀數(shù)為高渲染幀數(shù),以保證窗口界面中呈現(xiàn)出的動畫的連續(xù)性以及流暢度,避免出現(xiàn)卡頓,影響到用戶的觀看;而如果窗口界面中不存在處于播放狀態(tài)的連續(xù)動畫事件,則可以將該窗口界面對應(yīng)的渲染幀數(shù)降低為低渲染幀數(shù),以降低設(shè)備的能耗,減少設(shè)備的產(chǎn)熱。
可見,在本申請實施例中,窗口界面被展現(xiàn)之后,會以預(yù)設(shè)的低渲染幀數(shù),向該窗口界面中渲染并輸出畫面圖像,只有當(dāng)窗口界面中存在目標(biāo)觸發(fā)事件才會將渲染幀數(shù)調(diào)整為高渲染幀數(shù),以保證用戶可以看出連續(xù)的動畫,避免卡頓;而當(dāng)目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件結(jié)束時,則又會將該窗口界面對應(yīng)的渲染幀數(shù)恢復(fù)為低渲染幀數(shù),從而將低渲染幀數(shù)作為該窗口界面對應(yīng)的渲染畫面圖像的常態(tài),而將存在目標(biāo)事件觸發(fā)向窗口界面中播放連續(xù)多幀動畫作為觸發(fā)窗口界面進(jìn)入高渲染幀數(shù)的短期異常狀態(tài),實現(xiàn)了不存在目標(biāo)觸發(fā)事件觸發(fā)的情況下,長時間維持該窗口界面的渲染幀數(shù)為低渲染幀數(shù),進(jìn)而降低了終端的計算資源的耗費,減少了能耗,也有利于減少終端的產(chǎn)熱。
為了便于理解本申請的方案所帶來的有益效果,以計算機(jī)設(shè)備運行游戲的場景為例進(jìn)行介紹,如,可以參見圖5a、5b、5c、5d、5e和5f分別示出了本申請實施例的一種窗口界面在不同觸發(fā)事件觸發(fā)下所引起的渲染幀數(shù)的變化示意圖。其中,在這幾幅圖中窗口界面的右上角所顯示的數(shù)字為針對該窗口界面進(jìn)行圖像渲染的渲染幀數(shù)。
如圖5a,在打開該窗口界面之后,由于該窗口界面中存在進(jìn)入動畫,此時需要將渲染幀數(shù)從每秒5幀的渲染幀數(shù)調(diào)整為每秒30幀的高渲染幀數(shù),需要說明的是,由于檢測間隔為1秒,在將幀率提升到每秒30幀之后,對于持續(xù)時間短于1秒的30幀率,測試出的渲染幀數(shù)會接近30幀但是低于30幀。如圖5a渲染幀數(shù)為每秒27幀,以保證進(jìn)入動畫的流暢播放。在進(jìn)入動畫播放完畢之后,計算機(jī)設(shè)備將該渲染幀數(shù)調(diào)整為低渲染幀數(shù),如圖5b,窗口界面對應(yīng)的渲染幀數(shù)為每秒5幀。
在維持渲染幀數(shù)為每秒5幀的過程中,監(jiān)控到該窗口界面中存在向上滑動列表的觸摸事件,由于該觸摸事件會觸發(fā)窗口界面中所顯示出的列表發(fā)生移動,也就是說,該觸摸事件會使得窗口界面的畫面圖像發(fā)生改變,觸發(fā)啟動列表移動動畫,因此,計算機(jī)設(shè)備將渲染幀數(shù)提高為每秒30幀,如圖5c中,測試出的渲染幀數(shù)提升為每秒23幀。相應(yīng)的,當(dāng)向上滑動列表的觸摸事件釋放之后,列表回彈到原處,此時窗口界面中沒有其他連續(xù)多幀動畫需要播放,則窗口界面的渲染幀數(shù)降低為每秒5幀,如圖5d所示。
進(jìn)一步的,如果用戶點擊該窗口界面中的“兌換”按鈕,觸發(fā)兌換獎勵動畫事件,計算機(jī)設(shè)備又會將窗口界面的渲染幀數(shù)提升為每秒30幀左右,以流暢播放該兌換獎勵畫面,如圖5e所示。相應(yīng)的,當(dāng)兌換獎勵畫面結(jié)束之后,計算機(jī)設(shè)備又會將該窗口界面的渲染幀數(shù)降低為每秒5幀,如圖5f所示。
對比這幾幅圖可以看出,如果窗口界面中存在目標(biāo)觸發(fā)事件,在該目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件之后,如果連續(xù)動畫事件對應(yīng)的連續(xù)多幀動畫未結(jié)束播放,則窗口界面對應(yīng)的渲染幀數(shù)處于較高的渲染幀數(shù);相應(yīng)的,當(dāng)目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件均結(jié)束時,終端又會將窗口界面的渲染幀數(shù)設(shè)置為較低的渲染幀數(shù),以降低能耗。參見圖6,其示出了圖5a-5f中渲染幀數(shù)變化的曲線趨勢示意圖,由圖6可以直觀的看出不同目標(biāo)事件觸發(fā)下,該窗口界面對應(yīng)的渲染幀數(shù)的變化趨勢。
可以理解的是,在本申請實施例中,監(jiān)控該窗口界面中是否存在尚未結(jié)束的連續(xù)動畫事件可以是實時對該連續(xù)動畫事件進(jìn)行監(jiān)控,以判斷該連續(xù)動畫事件所對應(yīng)的多幀連續(xù)動畫是否播放完畢,然而為了實時監(jiān)控連續(xù)動畫是否播放完畢,需要預(yù)先針對不同的連續(xù)動畫事件編寫不同的監(jiān)控邏輯,會導(dǎo)致開發(fā)成本較高。
為了降低開發(fā)成本,可選的,可以預(yù)先確定出連續(xù)動畫事件的持續(xù)時長,該持續(xù)時長表征該連續(xù)動畫事件所對應(yīng)的多幀連續(xù)動畫播放完畢所需的耗時。相應(yīng)的,如果監(jiān)控到該目標(biāo)觸發(fā)事件時,則可以獲取目標(biāo)觸發(fā)事件觸發(fā)的所述連續(xù)動畫事件的持續(xù)時長;然后,根據(jù)該連續(xù)動畫事件的持續(xù)時長,設(shè)置計時器的計時時長。如果到達(dá)計時器的計時時長,則說明該連續(xù)動畫事件播放完畢。這樣可以直接監(jiān)控是否存在與窗口界面對應(yīng)的尚未終止計時的計時器,如果不存在與該窗口界面對應(yīng)的尚未終止計時的計時器,則確定窗口界面中不存在尚未結(jié)束的連續(xù)動畫事件。
為了便于描述,以在計算機(jī)設(shè)備中運行游戲為例進(jìn)行介紹,參見圖7,其示出了本申請一種界面渲染方法一個實施例的流程示意圖,本實施例的方法可以應(yīng)用于前面所提到的計算機(jī)設(shè)備,本實施例的方法可以包括:
s701,在終端開啟游戲后,在當(dāng)前監(jiān)控到開啟或切換至游戲的一個窗口界面時,檢測該窗口界面是否為預(yù)置的窗口界面集合中的界面,如果是,則執(zhí)行步驟s702;如果否,則結(jié)束;
如果運行游戲過程中打開或切換到的窗口界面不屬于預(yù)置的窗口界面集合中的界面,則說明沒有必要將該窗口界面的渲染幀數(shù)設(shè)置為以預(yù)設(shè)的低渲染幀數(shù)作為常態(tài),而可以直接按照常規(guī)的渲染方式對該窗口界面待輸出的畫面圖像進(jìn)行渲染。
s702,按照每秒5幀的低渲染幀數(shù),向該窗口界面渲染并輸出第一畫面圖像。
其中,在本申請實施例是以低渲染幀數(shù)為每秒5幀為例進(jìn)行介紹,但是當(dāng)?shù)弯秩編瑪?shù)設(shè)置為其他數(shù)值時,也同樣適用于本申請實施例。
s703,監(jiān)控該窗口界面中是否存在屬于預(yù)置的事件集合的目標(biāo)觸發(fā)事件。
可以理解的是,通過前面實施例的其他方式來監(jiān)控窗口界面中的目標(biāo)觸發(fā)事件也同樣適用于本實施例,在此不加以限制。
需要說明的是,該步驟s702和步驟s703的順序并不限于圖7所示,在實際應(yīng)用中,也可以同時執(zhí)行該步驟s702和步驟s703。
s704,當(dāng)在該窗口界面中監(jiān)測到目標(biāo)觸發(fā)事件,按照每秒30幀的高渲染幀數(shù)以及該目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件,向窗口界面中渲染并輸出當(dāng)前所需展現(xiàn)的第二畫面圖像。
其中,在本申請實施例是以高渲染幀數(shù)為每秒30幀為例進(jìn)行介紹,但是當(dāng)高渲染幀數(shù)設(shè)置為其他數(shù)值時,也同樣適用于本申請實施例。
s705,判斷是否預(yù)置有該目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件的持續(xù)時長,如果是,則執(zhí)行步驟s706;如果否,則執(zhí)行步驟s711;
可以理解的是,有些連續(xù)動畫事件的持續(xù)時長是可以預(yù)先確定的,在該種情況下,可以預(yù)先設(shè)置連續(xù)動畫事件的持續(xù)時長,從而可以避免針對該連續(xù)動畫事件單獨編寫監(jiān)控邏輯來監(jiān)控該連續(xù)動畫事件是否結(jié)束,從而可以減少額外的開發(fā)成本和風(fēng)險。
相應(yīng)的,有些連續(xù)動畫事件的持續(xù)時長無法預(yù)先確定,如,有些動畫可能需要等待服務(wù)器回包驅(qū)動的動畫,而由于網(wǎng)絡(luò)延遲不可預(yù)先計算,所以無法確定連續(xù)動畫事件所對應(yīng)的多幀連續(xù)動畫需要維持多長時間才可以播放完畢,在該種情況下,就需要針對該連續(xù)動畫事件設(shè)置監(jiān)控邏輯,以監(jiān)控該連續(xù)動畫事件是否結(jié)束。
s706,檢測當(dāng)前是否存在計時器,如果是,則執(zhí)行步驟s707;如果否,則執(zhí)行步驟s709;
可以理解的是,該計時器可以理解為一個全局計時器,也可以認(rèn)為是與該窗口界面對應(yīng)的計時器。
s707,判斷該計時器的剩余計時時長t是否大于或等于該連續(xù)動畫事件的持續(xù)時長t1,如果是,則維持該計時器的剩余計時時長不變,并跳轉(zhuǎn)到步驟s710;如果否,則執(zhí)行步驟s708;
s708,將計時器的剩余計時時長t設(shè)置為該連續(xù)動畫事件的持續(xù)時長t1,并執(zhí)行步驟s710。
s709,生成一個計時器,設(shè)置該計時器的計時時長為該連續(xù)動畫事件的持續(xù)時長t1,并將窗口界面對應(yīng)的計數(shù)器的數(shù)值加一。
如果當(dāng)前不存在計時器(或者說,不存在與該窗口界面對應(yīng)的計時器),則需要新建一個計時器,并將計時器的計時時長設(shè)置為該持續(xù)時長。
可以理解的是,在本申請實施例中,所有目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件均對應(yīng)著一個計時器,通過該計時器來監(jiān)控所有連續(xù)動畫事件是否播放結(jié)束。
如果當(dāng)前檢測到目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件的持續(xù)時長大于該計時器的剩余時長,則說明在到達(dá)該計時器的剩余計時時長時,該連續(xù)動畫事件仍未結(jié)束,因此,需要將計時器的剩余時長調(diào)整為該連續(xù)動畫事件的持續(xù)時長,以保證計時器可以準(zhǔn)確監(jiān)控連續(xù)動畫事件是否結(jié)束;相應(yīng)的,如果該計時器的剩余計時時長大于或等于該連續(xù)動畫事件的持續(xù)時長,則不會影響該計時器對該連續(xù)動畫事件的監(jiān)控,可以維持計時器的剩余計時時長不變。
需要說明的是,所有目標(biāo)觸發(fā)事件所觸發(fā)的連續(xù)動畫事件均對應(yīng)著一個計時器是一種優(yōu)選實施方式,在實際應(yīng)用中,也可以分別為每個目標(biāo)觸發(fā)事件生成一個計時器,并將目標(biāo)觸發(fā)事件對應(yīng)的計時器的計時時長設(shè)置為該目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件的持續(xù)時長,這樣,當(dāng)游戲計時器均達(dá)到計時時長,或者說,不存在處于計時狀態(tài)的計時器時,才可以確定窗口界面中不存在尚未結(jié)束且可以確定持續(xù)時長的連續(xù)動畫事件。
s710,當(dāng)檢測到計時器到達(dá)計時時長時,釋放該計時器,并將該計數(shù)器的數(shù)值減一,跳轉(zhuǎn)到步驟s713;
s711,將計數(shù)器的數(shù)值加一,并監(jiān)控該目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件是否結(jié)束;
s712,當(dāng)監(jiān)控到該連續(xù)動畫事件結(jié)束時,將計數(shù)器的數(shù)值減一。
需要說明的是,該步驟s711和步驟s712為可選步驟,如果窗口界面中所涉及的所有連續(xù)動畫事件的持續(xù)時長均可以預(yù)先確定的話,則無需執(zhí)行該步驟s711和步驟s712。
s713,監(jiān)控計數(shù)器的數(shù)值是否為零,如果是,則執(zhí)行步驟s714,如果否,則維持該窗口界面對應(yīng)的渲染幀數(shù)處于預(yù)設(shè)的高渲染幀數(shù)。
在本實施例中,計數(shù)器的數(shù)值用于統(tǒng)計計時器的個數(shù),以及無法預(yù)先確定持續(xù)時長的連續(xù)動畫事件的總數(shù)量。具體的,如果計數(shù)器的數(shù)值大于零,則說明窗口界面中仍存在尚未結(jié)束的連續(xù)動畫事件;如果計數(shù)器的數(shù)值為零,則說明窗口界面中不存在尚未結(jié)束的連續(xù)動畫事件。
可選的,在執(zhí)行步驟s702的同時,可以先將計數(shù)器進(jìn)行初始化,將計數(shù)器的初始值設(shè)置為零。這樣,每生成一個計時器或者檢測到一個無法預(yù)先確定持續(xù)時長的連續(xù)動畫事件被觸發(fā)啟動時,就會將計數(shù)器的數(shù)值加一。相應(yīng)的,如果計時器結(jié)束計時,釋放計時器時,則會將計數(shù)器的數(shù)值減一;而且如果監(jiān)控到無法預(yù)先確定持續(xù)時長的連續(xù)動畫事件結(jié)束時,也會將計數(shù)器的數(shù)值減一,由此可見,只要是窗口界面中存在任意一個目標(biāo)觸發(fā)事件所觸發(fā)啟動的連續(xù)動畫事件未結(jié)束,該計數(shù)器的數(shù)值就不會為零;只有在當(dāng)前時刻該窗口界面中不存在處于播放狀態(tài)的連續(xù)動畫事件,即,所有連續(xù)動畫事件均結(jié)束,該計數(shù)器的數(shù)值才會為零,因此,通過監(jiān)控該計數(shù)器的數(shù)值可以判斷當(dāng)前是否不存在需要以高渲染幀數(shù)進(jìn)行渲染的連續(xù)動畫。
當(dāng)然,通過計數(shù)器來監(jiān)控窗口界面中仍存在尚未結(jié)束的連續(xù)動畫事件僅僅是一種優(yōu)選實施方式,而不是唯一的實現(xiàn)方式。在實際應(yīng)用中,也可以直接監(jiān)控當(dāng)前是否仍存在計時器,以及已經(jīng)被觸發(fā)啟動且無法獲取到持續(xù)時長的連續(xù)動畫事件是否結(jié)束,這樣,如果監(jiān)控到當(dāng)前不存在計時器,而且窗口界面中已經(jīng)被觸發(fā)啟動且無法獲取到持續(xù)時長的連續(xù)動畫事件均結(jié)束播放時,則恢復(fù)窗口界面的渲染幀數(shù)為預(yù)設(shè)的低渲染幀數(shù)。
s714,按照每秒5幀的低渲染幀數(shù),向該窗口界面渲染并輸出第三畫面圖像。
需要說明的是,圖7實施例僅僅是為了便于描述,以在計算機(jī)設(shè)備中運行游戲為例進(jìn)行說明,當(dāng)在計算機(jī)設(shè)備中運行其他應(yīng)用或者程序時,如果應(yīng)用或程序中涉及到向窗口界面中渲染圖像,均可以采用圖7所示的方式,在此不加以限制。
下面對本發(fā)明實施例提供的一種界面渲染裝置進(jìn)行介紹,下文描述的一種界面渲染裝置可與上文描述的一種界面渲染方法相互對應(yīng)參照。
參見圖8,其示出了本申請一種界面渲染裝置的一個實施例的組成結(jié)構(gòu)示意圖,本實施例的裝置可以包括:
初始渲染單元801,用于如果檢測到窗口界面被展現(xiàn)時,按照預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出畫面圖像;
事件監(jiān)控單元802,用于監(jiān)控所述窗口界面中是否存在滿足預(yù)設(shè)的提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件,所述目標(biāo)觸發(fā)事件用于觸發(fā)啟動連續(xù)動畫事件,所述連續(xù)動畫事件為向所述窗口界面中播放連續(xù)多幀動畫;
幀數(shù)調(diào)整單元803,用于如果監(jiān)控到所述目標(biāo)觸發(fā)事件時,按照預(yù)設(shè)的高渲染幀數(shù)以及所述連續(xù)動畫事件,向所述窗口界面中渲染并輸出畫面圖像;
動畫監(jiān)控單元804,用于監(jiān)控所述窗口界面中是否存在尚未結(jié)束的所述連續(xù)動畫事件;
幀數(shù)恢復(fù)單元805,用于如果所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件,則按照所述預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出畫面圖像。
可選的,所述事件監(jiān)控單元具體為,用于監(jiān)控所述窗口界面中是否存在屬于預(yù)置的事件集合的目標(biāo)觸發(fā)事件。
可選的,所述初始渲染單元,包括:
界面檢測單元,用于如果檢測到窗口界面被展現(xiàn),檢測所述窗口界面屬于滿足預(yù)設(shè)的低渲染幀數(shù)條件的界面;
初始渲染子單元,用于如果所述窗口界面屬于滿足預(yù)設(shè)的低渲染幀數(shù)條件的界面,按照預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出畫面圖像。
進(jìn)一步的,所述界面檢測單元在檢測到所述窗口界面屬于滿足預(yù)設(shè)的低渲染幀數(shù)條件的界面時,具體用于檢測到所述窗口界面屬于預(yù)置的窗口界面集合中的界面。
可選的,所述低渲染幀數(shù)為每秒5幀;所述高渲染幀數(shù)大于每秒30幀。
可選的,該裝置還可以包括:
時長獲取單元,用于在所述事件監(jiān)控單元監(jiān)控到所述目標(biāo)觸發(fā)事件時,獲取所述目標(biāo)觸發(fā)事件觸發(fā)的所述連續(xù)動畫事件的持續(xù)時長;
計時器設(shè)置單元,用于根據(jù)所述連續(xù)動畫事件的持續(xù)時長,設(shè)置計時器的計時時長;
所述動畫監(jiān)控單元,具體為,用于監(jiān)控是否存在與所述窗口界面對應(yīng)的尚未終止計時的計時器,如果所不存在與所述窗口界面對應(yīng)的尚未終止計時的計時器,則確定所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件。
進(jìn)一步的,所述計時器設(shè)置單元,可以包括:
計時器檢測單元,用于檢測是否存在計時器;
余時確定單元,用于如果所述計時器檢測單元檢測到當(dāng)前存在計時器,則獲取所述計時器的剩余計時時長;
第一設(shè)置單元,用于如果所述計時器的剩余計時時長大于或等于所述持續(xù)時長,則維持計時器的剩余計時時長不變;
第二設(shè)置單元,用于如果所述計時器的剩余計時時長小于所述持續(xù)時長,則將所述計時器的剩余計時時長更新為所述持續(xù)時長;
計時器生成單元,用于如果所述計時器檢測單元檢測到當(dāng)前不存在計時器,則為所述窗口界面生成計時器,并設(shè)置生成的計時器的計時時長為所述持續(xù)時長。
進(jìn)一步的,該裝置還可以包括:
第一計數(shù)單元,用于當(dāng)檢測到生成計時器時,將所述窗口界面對應(yīng)的計數(shù)器的數(shù)值加一;
第二計數(shù)單元,用于當(dāng)檢測到所述計時器到達(dá)計時時長時,釋放到達(dá)計時時長的計時器,并將所述計數(shù)器的數(shù)值減一;
所述動畫監(jiān)控單元,可以包括:
計數(shù)器監(jiān)控單元,用于監(jiān)控所述計數(shù)器的數(shù)值是否為零,如果所述計數(shù)器的數(shù)值為零時,則確定所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件。
進(jìn)一步的,所述裝置還可以包括:
時長檢測單元,用于在所述時長獲取單元獲取所述目標(biāo)觸發(fā)事件觸發(fā)的所述連續(xù)動畫事件的持續(xù)時長之前,檢測是否存儲有所述目標(biāo)觸發(fā)事件觸發(fā)的所述連續(xù)動畫事件的持續(xù)時長;
所述時長獲取單元,具體為,用于在所述時長檢測單元檢測到存儲有所述連續(xù)動畫事件的持續(xù)時長時,獲取存儲的所述目標(biāo)觸發(fā)事件觸發(fā)的所述連續(xù)動畫事件的持續(xù)時長;
狀態(tài)監(jiān)控單元,用于如果所述時長檢測單元檢測到未存儲所述連續(xù)動畫事件的持續(xù)時長,將計數(shù)器的數(shù)值加一,并監(jiān)控所述連續(xù)動畫事件是否結(jié)束;
第三計數(shù)單元,用于當(dāng)所述狀態(tài)監(jiān)控單元監(jiān)控到所述連續(xù)動畫事件結(jié)束時,將所述計數(shù)器的數(shù)值減一。
另一方面,本申請實施例還提供了一種計算機(jī)設(shè)備,該計算機(jī)設(shè)備的組成可以參見圖1所示。其中該計算機(jī)設(shè)備的存儲器中存儲的程序具體用于:
如果檢測到窗口界面被展現(xiàn)時,按照預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出畫面圖像;
監(jiān)控所述窗口界面中是否存在滿足預(yù)設(shè)的提升渲染幀數(shù)條件的目標(biāo)觸發(fā)事件,所述目標(biāo)觸發(fā)事件用于觸發(fā)啟動連續(xù)動畫事件,所述連續(xù)動畫事件為向所述窗口界面中播放連續(xù)多幀動畫;
如果監(jiān)控到所述目標(biāo)觸發(fā)事件時,按照預(yù)設(shè)的高渲染幀數(shù)以及所述連續(xù)動畫事件,向所述窗口界面中渲染并輸出畫面圖像;
監(jiān)控所述窗口界面中是否存在尚未結(jié)束的所述連續(xù)動畫事件;
如果所述窗口界面中不存在尚未結(jié)束的所述連續(xù)動畫事件,則按照所述預(yù)設(shè)的低渲染幀數(shù),向所述窗口界面中渲染并輸出畫面圖像。
需要說明的是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
以上僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。