欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

圖形處理方法和裝置制造方法

文檔序號:6526707閱讀:159來源:國知局
圖形處理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種圖形處理方法和裝置。該圖形處理方法包括獲取圖形節(jié)點(diǎn)的數(shù)據(jù);判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化;如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理;以及如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化,則不對圖形節(jié)點(diǎn)執(zhí)行重繪處理的方法,解決了現(xiàn)有技術(shù)中執(zhí)行圖形重繪處理時(shí)CPU消耗比較大的問題,進(jìn)而達(dá)到了在執(zhí)行圖形重繪時(shí)減少CPU消耗效果。
【專利說明】圖形處理方法和裝置【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種圖形處理方法和裝置。
【背景技術(shù)】
[0002]圖形容器用于繪制圖形,Canvas是HTML5所提供的一個圖形容器,在2D游戲中,應(yīng)用程序通過對Canvas不斷的擦除與繪制圖形節(jié)點(diǎn)(即重繪),實(shí)現(xiàn)了游戲畫面的變換。
[0003]目前Canvas使用最為普通的重繪方法是每秒擦除并重新繪制所有圖形節(jié)點(diǎn)N次來實(shí)現(xiàn),N通常大于30小于60。每秒擦除并重繪所有圖形節(jié)點(diǎn)N次的方法適用于畫面不斷發(fā)生變化的場景,當(dāng)畫面靜止的時(shí)候,例如棋牌游戲,在等待別人出牌時(shí),畫面是靜止不變的,在這樣的場景還使用普通的繪制方式,則會產(chǎn)生沒意義的畫面繪制:繪制后產(chǎn)生的畫面和繪制前的畫面完全一致。這些無意義的繪制會導(dǎo)致較高的CPU能耗,而高能耗又會帶來的電池續(xù)航劇減問題,這些問題會直接影響到用戶的使用體驗(yàn)。
[0004]針對上述技術(shù)中執(zhí)行圖形重繪處理時(shí)CPU消耗比較大的問題,目前尚未提出有效的解決方案。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的主要目的在于提供一種圖形處理方法和裝置,以解決現(xiàn)有技術(shù)在某些場景下執(zhí)行圖形重繪處理時(shí)CPU消耗比較大的問題。
[0006]為了實(shí)現(xiàn)上述 目的,根據(jù)本發(fā)明的一個方面,提供了一種圖形處理方法。該圖形處理方法包括:獲取圖形節(jié)點(diǎn)的數(shù)據(jù);判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化;如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理;以及如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化,則不對圖形節(jié)點(diǎn)執(zhí)行重繪處理。
[0007]進(jìn)一步地,獲取圖形節(jié)點(diǎn)的數(shù)據(jù)具體為:遍歷圖形容器上所有圖形節(jié)點(diǎn),以及更新所述圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),以及獲得更新后圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0008]進(jìn)一步地,在對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理之前,圖形處理方法包括:擦除圖形容器上的繪圖內(nèi)容。
[0009]進(jìn)一步地,圖形節(jié)點(diǎn)的數(shù)據(jù)包括圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)的標(biāo)識和圖形節(jié)點(diǎn)的屬性,判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化包括:獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù),其中,所述當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)為相鄰兩次檢測得到的圖形節(jié)點(diǎn)的數(shù)據(jù);判斷所述當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性是否都相同,如果是都相同,則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化,否則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0010]進(jìn)一步地,在對所述幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài),其中,在所述休眠狀態(tài)下,不執(zhí)行重繪處理,直到所述休眠狀態(tài)的持續(xù)時(shí)間達(dá)到所述預(yù)設(shè)時(shí)間,返回所述獲取圖形節(jié)點(diǎn)的數(shù)據(jù)的步驟。
[0011]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種圖形處理裝置。該圖形處理裝置包括:檢測單元,用于獲取圖形節(jié)點(diǎn)的數(shù)據(jù);判斷單元,用于判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化;重繪單元,用于在確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化時(shí),對圖形節(jié)點(diǎn)執(zhí)行重繪處理,以及在確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化時(shí),不對圖形節(jié)點(diǎn)執(zhí)行重繪處理。
[0012]進(jìn)一步地,檢測單元還包括:遍歷模塊,用于遍歷圖形容器上所有圖形節(jié)點(diǎn);更新模塊,用于更新圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0013]進(jìn)一步地,圖形處理裝置還包括:擦除單元,用于在遍歷圖形容器上所有圖形節(jié)點(diǎn)之前,擦除圖形容器上的繪圖內(nèi)容。
[0014]進(jìn)一步地,圖形節(jié)點(diǎn)的數(shù)據(jù)包括圖形節(jié)點(diǎn)的數(shù)量、所述圖形節(jié)點(diǎn)的標(biāo)識和圖形節(jié)點(diǎn)的屬性,所述判斷單元包括:獲取模塊,用于獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù),其中,所述當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)為相鄰兩次檢測得到的圖形節(jié)點(diǎn)的數(shù)據(jù);判斷模塊,用于判斷所述當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性是否都相同;確定模塊,用于在判斷模塊判斷當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性都相同時(shí),確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化,否則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0015]進(jìn)一步地,所述重繪單元還用于依次對所述圖形節(jié)點(diǎn)的幀執(zhí)行重繪處理,所述重繪單元包括:重繪模塊,用于對所述幀執(zhí)行重繪處理;休眠模塊,用于在對所述幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài),其中,在所述休眠狀態(tài)下,不執(zhí)行重繪處理;判斷模塊,用于判斷所述休眠狀態(tài)的持續(xù)時(shí)間是否達(dá)到預(yù)設(shè)時(shí)間,如果所述休眠狀態(tài)的持續(xù)時(shí)間達(dá)到所述預(yù)設(shè)時(shí)間,通知所述檢測單元獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0016]通過本發(fā)明,采用獲取圖形節(jié)點(diǎn)的數(shù)據(jù)后,判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化;如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對圖形節(jié)點(diǎn)執(zhí)行重繪處理;以及如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化,則不對圖形節(jié)點(diǎn)執(zhí)行重繪處理,而是休眠,與現(xiàn)有重繪技術(shù)相比,這種重繪判斷處理的方法在畫面相同的情況下是不進(jìn)行重繪處理,因此減少了沒意義的重繪處理從而降低了 CPU的能耗。
【專利附圖】

【附圖說明】
[0017]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0018]圖1是根據(jù)本發(fā)明實(shí)施例的圖形處理方法的流程圖;
[0019]圖2是根據(jù)本發(fā)明實(shí)施例的判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化的流程圖;
[0020]圖3是根據(jù)本發(fā)明一實(shí)施例的圖形處理裝置的示意圖;
[0021]圖4是根據(jù)本發(fā)明又一實(shí)施例的圖形處理裝置的示意圖。
【具體實(shí)施方式】
[0022]需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0023]本發(fā)明實(shí)施例提供了 一種圖形處理方法。
[0024]圖1是根據(jù)本發(fā)明實(shí)施例的圖形處理方法的流程圖。如圖所示,該圖形處理方法包括如下步驟:[0025]步驟S101,獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0026]該步驟每隔一段預(yù)設(shè)的時(shí)間遍歷所有圖形節(jié)點(diǎn),更新所述圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),以及獲得更新后圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0027]具體地,檢測的時(shí)間與程序每秒繪制的幀率有關(guān),如果程序I秒的繪制幀率是35幀,那么每隔1/35秒就遍歷一次,獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0028]在瀏覽網(wǎng)頁或玩游戲所顯示出來的畫面,實(shí)際是應(yīng)用程序調(diào)用圖形容器(例如HTML5中的Canvas)不斷根據(jù)圖形節(jié)點(diǎn)進(jìn)行繪制獲得的。在極短的時(shí)間內(nèi),繪制若干張圖片并依次顯示,就形成了我們?nèi)庋鬯吹漠嬅?場景)切換。
[0029]圖形節(jié)點(diǎn)是根據(jù)實(shí)際業(yè)務(wù)場景設(shè)定的,是一種數(shù)據(jù)結(jié)構(gòu),通過調(diào)用圖形容器渲染這些節(jié)點(diǎn),就能在等到相應(yīng)的畫面(圖),一個畫面可以由一個圖形節(jié)點(diǎn)構(gòu)成,也可能由N個圖形節(jié)點(diǎn)構(gòu)成。動態(tài)的畫面切換,可以是程序根據(jù)不同的圖形節(jié)點(diǎn)渲染出的不同的畫面切換實(shí)現(xiàn),也可以是根據(jù)相同但屬性有變化的節(jié)點(diǎn)渲染出不同的畫面切換實(shí)現(xiàn)。圖形節(jié)點(diǎn)的變化取決于程序的業(yè)務(wù)邏輯需要,以及用戶輸入的操作指令。
[0030]步驟S102,判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化。
[0031]具體地,將當(dāng)次遍歷圖形節(jié)點(diǎn)的數(shù)據(jù)結(jié)果與上一次遍歷圖形節(jié)點(diǎn)的數(shù)據(jù)結(jié)果進(jìn)行對比,判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化。
[0032]步驟S103,如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理。
[0033]步驟S104,如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化,則不對圖形節(jié)點(diǎn)執(zhí)行重繪處理。
[0034]獲取圖形節(jié)點(diǎn)的數(shù)據(jù)具體包括:遍歷圖形容器上所有圖形節(jié)點(diǎn),以及更新圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0035]Canvas是HTML5提供的圖形容器,游戲開發(fā)者通過在Canvas上進(jìn)行不斷的擦除與重繪,實(shí)現(xiàn)游戲畫面變換。
[0036]例如玩游戲,畫面場景會不斷變化,為了及時(shí)判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生更改,每到預(yù)設(shè)的時(shí)間,則遍歷一次圖形節(jié)點(diǎn),更新圖形節(jié)點(diǎn)的數(shù)據(jù)。其中,圖形節(jié)點(diǎn)屬性的更新和檢測是通過游戲應(yīng)用調(diào)用JavaScript程序來處理。
[0037]為了避免繪制圖像時(shí)殘留之前的圖形,使繪制的圖形更加清晰,在重繪處理之前,游戲應(yīng)用調(diào)用JavaScript程序擦除圖形容器上的繪圖內(nèi)容。
[0038]判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化的流程圖如圖2所示,具體包括如下步驟:
[0039]步驟S201,獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0040]其中,圖形節(jié)點(diǎn)的數(shù)據(jù)包括圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)的標(biāo)識、圖形節(jié)點(diǎn)的屬性。其中,圖形節(jié)點(diǎn)標(biāo)識可以是名稱或一些可以識別的特征碼,名稱與特征碼的作用都是用來分辨出不同的圖形節(jié)點(diǎn),根據(jù)實(shí)際的情況,可以不局限以上的區(qū)分方式。
[0041]其中,圖形節(jié)點(diǎn)的屬性包括X坐標(biāo)、y坐標(biāo)、寬度、高度、旋轉(zhuǎn)角度、傾斜角度、透明度、可見性、當(dāng)前幀數(shù)和顏色等。
[0042]步驟S202,判斷當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)據(jù)是否相同。
[0043]具體的,判斷當(dāng)次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識及屬性與上一次圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)的標(biāo)識、圖形節(jié)點(diǎn)的屬性是否相同。
[0044]步驟S203,如果判斷出當(dāng)次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性都相同,則確定圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化。[0045]步驟S204,如果判斷出當(dāng)次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性有任一不相同,則確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0046]具體地,步驟S203和步驟S204中,將遍歷的當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)與遍歷的上一次圖形節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行對比,如果圖形節(jié)點(diǎn)的數(shù)量不一樣,則認(rèn)為圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生了變化;如果圖形節(jié)點(diǎn)的數(shù)量一樣,但圖形節(jié)點(diǎn)的標(biāo)識不一樣,則認(rèn)為圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生了變化;如果圖形節(jié)點(diǎn)的數(shù)量與標(biāo)識一樣,但任一圖形節(jié)點(diǎn)的屬性不一樣,也認(rèn)為圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生了變化。即圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性有任一不相同,則認(rèn)為圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0047]另外,如果確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理包括:對圖形節(jié)點(diǎn)所在的幀執(zhí)行重繪處理。
[0048]其中,對圖形節(jié)點(diǎn)所在的幀執(zhí)行重繪處理包括:
[0049]在對幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài),其中,在休眠狀態(tài)下,不執(zhí)行重繪處理;
[0050]判斷休眠狀態(tài)的持續(xù)時(shí)間是否達(dá)到預(yù)設(shè)時(shí)間;
[0051]如果判斷出休眠狀態(tài)的持續(xù)時(shí)間達(dá)到預(yù)設(shè)時(shí)間,則再次遍歷所有圖形節(jié)點(diǎn);
[0052]將當(dāng)次遍歷的圖形節(jié)點(diǎn)的數(shù)據(jù)與上一次遍歷的圖形節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行對比,結(jié)果不相同才重繪幀,如果兩次遍歷圖形節(jié)點(diǎn)的數(shù)據(jù)相同,則繼續(xù)休眠,直至到下一個預(yù)設(shè)時(shí)間。
[0053]從上面可以看到,當(dāng)畫面沒有發(fā)生變化,是不執(zhí)行重繪操作,而是休眠,與現(xiàn)有重繪技術(shù)相比,這種重繪判斷處理的方法在畫面相同的情況下是不進(jìn)行重繪處理,因此減少了沒意義的重繪處理從而降低了 CPU的能耗。
[0054]以下結(jié)合以斗地主的游戲?qū)Ρ景l(fā)明的實(shí)施方案進(jìn)行說明。
[0055]游戲應(yīng)用通過控制圖形容器進(jìn)行不斷的擦除與重繪,實(shí)現(xiàn)游戲畫面的切換。
[0056]用戶玩斗地主時(shí),游戲應(yīng)用每隔一段時(shí)間就檢測圖形節(jié)點(diǎn)是否變化。比如游戲繪制幀率為35幀/秒,那么每隔1/35秒,游戲應(yīng)用就會去遍歷所有的圖形節(jié)點(diǎn),在更新圖形節(jié)點(diǎn)時(shí),通過將當(dāng)次遍歷的圖形節(jié)點(diǎn)結(jié)果與上一次繪制后的圖形節(jié)點(diǎn)結(jié)果對比,如果一樣,說明圖形節(jié)點(diǎn)沒有變化,如果不一樣(圖形節(jié)點(diǎn)的數(shù)量不一樣,或圖形節(jié)點(diǎn)標(biāo)識不一樣,或圖形節(jié)點(diǎn)的屬性不一樣),說明圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生了變化。
[0057]圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則需要重新繪制所有的圖形節(jié)點(diǎn),在重繪圖形節(jié)點(diǎn)之前,游戲應(yīng)用通過調(diào)用JavaScript程序來將圖形容器上已有的繪圖內(nèi)容抹除,避免在重繪的過程中出現(xiàn)畫面的殘留。重繪過程在游戲中表現(xiàn)為:用戶執(zhí)行了打出一張卡牌A,游戲應(yīng)用獲得用戶操作輸入后,圖形節(jié)點(diǎn)發(fā)生了相應(yīng)的變化:在原有的基礎(chǔ)上增加了與“卡牌A”相對應(yīng)的節(jié)點(diǎn)。假設(shè)游戲應(yīng)用的渲染幀率為35幀,那么在1/35秒后,游戲應(yīng)用遍歷所有的圖形節(jié)點(diǎn)。在更新圖形節(jié)點(diǎn)時(shí),通過將當(dāng)次遍歷的圖形節(jié)點(diǎn)的數(shù)據(jù)與上一次繪制后的圖形節(jié)點(diǎn)的數(shù)據(jù)相比,當(dāng)次的圖形節(jié)點(diǎn)結(jié)果中多了與“卡牌A”相關(guān)的圖形節(jié)點(diǎn)。游戲應(yīng)用通過JavaScript程序調(diào)用圖形容器重繪所有的圖形節(jié)點(diǎn),在重繪之前,先將圖形容器上已有的圖像內(nèi)容抹除,繪制結(jié)束后,用戶可以看到游戲畫面上多了一張“卡牌A”(用戶執(zhí)行打出卡牌A的結(jié)果)。
[0058]從上可以看到,圖形節(jié)點(diǎn)變化是根據(jù)游戲?qū)嶋H場景變化而變化:游戲場景中的元素發(fā)生了變化:游戲場景增加了新的元素或減少了原有的元素,用戶執(zhí)行了某些操作導(dǎo)致游戲場景增加了新的元素或減少了原有的元素,實(shí)際中圖形節(jié)點(diǎn)就會發(fā)生相應(yīng)的變化,而圖形節(jié)點(diǎn)的屬性變更,則可以通過setX方法來更新節(jié)點(diǎn)屬性的X軸、y軸、寬度、高度、旋轉(zhuǎn)角度等數(shù)值。
[0059]作為本方案的另一個實(shí)施例,如果在一段時(shí)間內(nèi),玩家沒有出牌,游戲場景相比之前沒有發(fā)生改變:桌面上的卡牌一樣,場景中其他元素也一樣,那么在這段游戲場景沒有變化的時(shí)間內(nèi),游戲應(yīng)用是不執(zhí)行畫面重繪處理。具體為:
[0060]假設(shè)游戲應(yīng)用的渲染幀率為35幀,那么在1/35秒后,游戲應(yīng)用去遍歷所有的圖形節(jié)點(diǎn),在更新圖形節(jié)點(diǎn)時(shí),通過將當(dāng)次遍歷的圖形節(jié)點(diǎn)結(jié)果與上一次繪制后的圖形節(jié)結(jié)果對比,相比上一次的圖形節(jié)點(diǎn)結(jié)果,如果圖形節(jié)點(diǎn)的數(shù)量、節(jié)點(diǎn)標(biāo)識、屬性都一樣,那么圖形節(jié)點(diǎn)沒有發(fā)生變化,程序不執(zhí)行重繪,繼續(xù)睡眠,直到下一個1/35后喚醒,再遍歷圖形節(jié)點(diǎn),執(zhí)行圖形節(jié)點(diǎn)的數(shù)據(jù)對比。
[0061 ] 本發(fā)明實(shí)施例提供了 一種圖形處理裝置。
[0062]圖3是根據(jù)本發(fā)明一實(shí)施例的圖形處理裝置的示意圖。如圖所示,該圖形處理裝置包括檢測單元10、判斷單元20和重繪單元30。
[0063]檢測單元10用于獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0064]具體地,獲取數(shù)據(jù)的時(shí)間與程序每秒繪制的幀率有關(guān),如果程序I秒的繪制幀率是35幀,那么每隔1/35秒就獲取一次圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)標(biāo)識及圖形節(jié)點(diǎn)的屬性。
[0065]在瀏覽網(wǎng)頁或玩游戲所顯示出來的畫面切換,實(shí)際是通過程序調(diào)用圖形容器不斷根據(jù)圖形節(jié)點(diǎn)進(jìn)行繪制獲得的,在極短的時(shí)間內(nèi),繪制若干張圖片并依次顯示,就形成了我們?nèi)庋鬯吹漠嬅?場景)切換。
[0066]圖形節(jié)點(diǎn)是由程序所設(shè)定的,是一種數(shù)據(jù)結(jié)構(gòu),圖形容器渲染這些節(jié)點(diǎn)后,輸出相應(yīng)的畫面(圖),一個畫面可以由一個圖形節(jié)點(diǎn)構(gòu)成,也可能由N個圖形節(jié)點(diǎn)構(gòu)成。動態(tài)的畫面切換,可以是程序根據(jù)不同的圖形節(jié)點(diǎn)渲染出的不同的畫面切換實(shí)現(xiàn),也可以是根據(jù)相同但屬性有變化的節(jié)點(diǎn)渲染出不同的畫面切換實(shí)現(xiàn)。圖形節(jié)點(diǎn)的變化取決于程序的業(yè)務(wù)邏輯需要,以及用戶輸入的操作指令。
[0067]其中,圖形節(jié)點(diǎn)的屬性包括X坐標(biāo)、y坐標(biāo)、寬度、高度、旋轉(zhuǎn)角度、傾斜角度、透明度、可見性、當(dāng)前幀數(shù)和顏色等。
[0068]判斷單元20用于判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化。
[0069]具體地,將現(xiàn)在遍歷圖形節(jié)點(diǎn)結(jié)果與上一次遍歷圖形節(jié)點(diǎn)的結(jié)果進(jìn)行對比,判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否相同。如果圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)標(biāo)識及圖形節(jié)點(diǎn)的屬性都相同,則圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化;反之發(fā)生變化。
[0070]重繪單元30用于在確定圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化時(shí),對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理,以及在確定圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化時(shí),不對圖形節(jié)點(diǎn)執(zhí)行重繪處理。
[0071]在檢測圖形節(jié)點(diǎn)的數(shù)據(jù)之前,該圖形處理方法還包括:遍歷圖形容器上所有圖形節(jié)點(diǎn),以及更新圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),其中,每更新一次圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),檢測一次圖形節(jié)點(diǎn)的數(shù)據(jù)。瀏覽網(wǎng)頁或玩游戲,畫面場景會不斷變化,為了及時(shí)判斷圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生更改,每更新一次圖形節(jié)點(diǎn)的數(shù)據(jù),則檢測一次圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0072]Canvas是HTML5提供的圖形容器,2D游戲開發(fā)者通過在Canvas上進(jìn)行不斷的擦除與重繪,實(shí)現(xiàn)游戲畫面變換。[0073]為了確保每個圖形節(jié)數(shù)據(jù)的變化都被及時(shí)發(fā)現(xiàn),遍歷所有圖形節(jié)點(diǎn),并對遍歷的所有圖形節(jié)點(diǎn)進(jìn)行更新,以及對所有圖形節(jié)點(diǎn)檢測數(shù)據(jù)。其中,圖形節(jié)點(diǎn)屬性的更新和檢測是通過應(yīng)用程序調(diào)用JavaScript程序來處理。
[0074]為了避免繪制圖像時(shí)殘留之前的圖形,使繪制的圖形更加清晰,在繪制圖形節(jié)點(diǎn)之前,應(yīng)用程序調(diào)用JavaScript程序擦除圖形容器上的繪圖內(nèi)容。
[0075]檢測單元還包括遍歷模塊和更新模塊(圖中未示出),能夠遍歷圖形容器上的所有圖形節(jié)點(diǎn),并更新圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0076]具體地,
[0077]遍歷單元,用于遍歷圖形容器上所有圖形節(jié)點(diǎn)。
[0078]更新單元,用于更新圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),其中,每更新一次圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),會檢測一次圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0079]圖4是根據(jù)本發(fā)明又一實(shí)施例的圖形處理裝置的示意圖。該數(shù)據(jù)處理裝置包括檢測單元10、判斷單元20和重繪單元30,其中,判斷單元20包括獲取模塊201、判斷模塊202、確定模塊203。檢測單元10與重繪單元30與圖3所描述相同。獲取模塊201用于獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù),其中,所述當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)為相鄰兩次檢測得到的圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0080]根據(jù)實(shí)際的情況,可以不局限以上的區(qū)分方式。
[0081]判斷模塊202用于用于判斷所述當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性是否都相同。
[0082]確定模塊203用于在判斷模塊202判斷當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性都相同時(shí),確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化,否則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0083]具體地,將遍歷的當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)與遍歷的上一次圖形節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行對t匕,包括圖形節(jié)點(diǎn)的數(shù)量、圖形節(jié)點(diǎn)的標(biāo)識、圖形節(jié)點(diǎn)的屬性。
[0084]具體地,將將遍歷的當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)與遍歷的上一次圖形節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行對t匕,如果圖形節(jié)點(diǎn)的數(shù)量不一樣,則認(rèn)為圖形節(jié)點(diǎn)發(fā)生了變化;如果圖形節(jié)點(diǎn)的數(shù)量一樣,但圖形節(jié)點(diǎn)的標(biāo)識不一樣,則認(rèn)為圖形節(jié)點(diǎn)發(fā)生了變化;如果圖形節(jié)點(diǎn)的數(shù)量與標(biāo)識一樣,但圖形節(jié)點(diǎn)的屬性不一樣,也認(rèn)為圖形節(jié)點(diǎn)發(fā)生了變化。即圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性有任一不相同,則認(rèn)為圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
[0085]該圖形處理裝置中的重繪單元30用于依次對圖形節(jié)點(diǎn)的幀執(zhí)行重繪處理,重繪單元30包括:重繪模塊、休眠模塊、判斷模塊。
[0086]重繪模塊用于對圖形節(jié)點(diǎn)所在幀執(zhí)行重繪處理。
[0087]休眠模塊用于在對幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài),其中,在休眠狀態(tài)下,不執(zhí)行重繪處理。
[0088]判斷模塊用于判斷休眠狀態(tài)的持續(xù)時(shí)間是否達(dá)到預(yù)設(shè)時(shí)間,到達(dá)預(yù)設(shè)時(shí)間,通知所述檢測單元10獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
[0089]本發(fā)明實(shí)施例提供了一種移動終端裝置,該移動終端裝置包括上述圖3或圖4所包含的圖形處理裝置。
[0090]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個的計(jì)算裝置上,或者分布在多個計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0091]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種圖形處理方法,其特征在于,包括: 獲取圖形節(jié)點(diǎn)的數(shù)據(jù); 判斷所述圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化; 如果確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化,則對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理;以及 如果確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化,則不對所述圖形節(jié)點(diǎn)執(zhí)行重繪處理。
2.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,獲取圖形節(jié)點(diǎn)的數(shù)據(jù)具體為: 遍歷圖形容器上所有圖形節(jié)點(diǎn); 以及 更新所述圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù),獲得更新后圖形節(jié)點(diǎn)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的圖形處理方法,其特征在于,在對所有圖形節(jié)點(diǎn)執(zhí)行重繪處理之前,所述圖形處理方法包括: 擦除所述圖形容器上的繪圖內(nèi)容。
4.根據(jù)權(quán)利要求1所述的圖形處理方法,其特征在于,所述圖形節(jié)點(diǎn)的數(shù)據(jù)包括所述圖形節(jié)點(diǎn)的數(shù)量、所述圖形節(jié)點(diǎn)的標(biāo)識和圖形節(jié)點(diǎn)的屬性,判斷所述圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化包括: 獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù),其中,所述當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)為相鄰兩次檢測得到的圖形節(jié)點(diǎn)的數(shù)據(jù); 判斷所述當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性是否都相同,如果是都相同,則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化,否則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
5.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,對所述圖形節(jié)點(diǎn)執(zhí)行重繪處理包括對所述圖形節(jié)點(diǎn)的幀執(zhí)行重繪處理,其中: 在對所述幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài), 其中,在所述休眠狀態(tài)下,不執(zhí)行重繪處理,直到所述休眠狀態(tài)的持續(xù)時(shí)間達(dá)到所述預(yù)設(shè)時(shí)間,返回所述獲取圖形節(jié)點(diǎn)的數(shù)據(jù)的步驟。
6.一種圖形處理裝置,其特征在于,包括: 檢測單元,獲取圖形節(jié)點(diǎn)的數(shù)據(jù); 判斷單元,用于判斷所述圖形節(jié)點(diǎn)的數(shù)據(jù)是否發(fā)生變化;以及重繪單元,用于在確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化時(shí),對所述圖形節(jié)點(diǎn)執(zhí)行重繪處理,以及在確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)未發(fā)生變化時(shí),不對所述圖形節(jié)點(diǎn)執(zhí)行重繪處理。
7.根據(jù)權(quán)利要求6所述的圖形處理裝置,其特征在于,所述檢測單元包括: 遍歷模塊,用于遍歷圖形容器上所有圖形節(jié)點(diǎn);以及 更新模塊,用于更新所述圖形容器上圖形節(jié)點(diǎn)的數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的圖形處理裝置,其特征在于,所述圖形處理裝置還包括: 擦除單元,用于對所述圖形節(jié)點(diǎn)執(zhí)行重繪處理之前,擦除所述圖形容器上的繪圖內(nèi)容。
9.根據(jù)權(quán)利要求6所述的圖形處理裝置,其特征在于,所述圖形節(jié)點(diǎn)的數(shù)據(jù)包括所述圖形節(jié)點(diǎn)的數(shù)量、所述圖形節(jié)點(diǎn)的標(biāo)識和所述圖形節(jié)點(diǎn)的屬性,所述判斷單元包括: 獲取模塊,用于獲取當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù),其中,所述當(dāng)次圖形節(jié)點(diǎn)的數(shù)據(jù)和上一次圖形節(jié)點(diǎn)的數(shù)據(jù)為相鄰兩次檢測得到的圖形節(jié)點(diǎn)的數(shù)據(jù); 判斷模塊,用于判斷所述當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性是否都相同;以及 確定模塊,用于在判斷模塊判斷當(dāng)次圖形節(jié)點(diǎn)與上一次圖形節(jié)點(diǎn)的數(shù)量、標(biāo)識和屬性都相同時(shí),確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)沒有發(fā)生變化,否則確定所述圖形節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化。
10.根據(jù)權(quán)利要求6所述的圖形處理裝置,其特征在于,所述重繪單元還用于依次對所述圖形節(jié)點(diǎn)的幀執(zhí)行重繪處理,所述重繪單元包括: 重繪模塊,用于對所述幀執(zhí)行重繪處理; 休眠模塊,用于在對所述幀執(zhí)行重繪處理之后,進(jìn)入休眠狀態(tài),其中,在所述休眠狀態(tài)下,不執(zhí)行重繪處理;以及 判斷模塊,用于判斷所述休眠狀態(tài)的持續(xù)時(shí)間是否達(dá)到預(yù)設(shè)時(shí)間,如果所述休眠狀態(tài)的持續(xù)時(shí)間達(dá)到所述預(yù)設(shè)·時(shí)間,通知所述檢測單元獲取圖形節(jié)點(diǎn)的數(shù)據(jù)。
【文檔編號】G06T1/00GK103713725SQ201310746376
【公開日】2014年4月9日 申請日期:2013年12月30日 優(yōu)先權(quán)日:2013年12月30日
【發(fā)明者】梁捷, 馮震坤 申請人:優(yōu)視科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
城口县| 长岭县| 封开县| 邻水| 赤水市| 根河市| 双辽市| 泸州市| 博爱县| 加查县| 乌苏市| 屏山县| 攀枝花市| 上高县| 阳信县| 岳普湖县| 松原市| 天镇县| 巨鹿县| 温宿县| 贞丰县| 望城县| 景谷| 那曲县| 铁力市| 中江县| 基隆市| 东台市| 苍溪县| 通海县| 金昌市| 清镇市| 扶绥县| 蓝山县| 怀来县| 信宜市| 潞西市| 库尔勒市| 淳化县| 宣恩县| 晋城|