RAM大小等參數(shù)確定,紋理池是紋理塊的集合,多個紋理塊放在一起構(gòu)成紋理池,紋理塊是指頁面繪制時使用的基本介質(zhì)單元,是頁面內(nèi)容的承載介質(zhì),用于承載頁面內(nèi)容。
[0058]獲取單元20用于從紋理池中獲取可用紋理塊。
[0059]繪制單元30用于在獲取到的可用紋理塊上繪制頁面內(nèi)容,以進行頁面緩存,其中,將繪制有頁面內(nèi)容的紋理塊最終被傳輸?shù)斤@示屏幕上即可實現(xiàn)頁面的顯示。
[0060]本發(fā)明實施例所提供的瀏覽器使用紋理的裝置,通過基于瀏覽器所能使用的紋理總內(nèi)存大小的上限建立紋理池,進而從紋理池中獲取可用紋理塊,并在獲取到的可用紋理塊上繪制頁面內(nèi)容,實現(xiàn)了基于終端設(shè)備的本身的內(nèi)存能量進行頁面的緩存,相比現(xiàn)有技術(shù)中按照“頁面可見區(qū)域周圍幾屏高度”這樣的物理面積進行頁面緩存的方式而言,基于終端設(shè)備的本身的內(nèi)存能量進行頁面緩存的方式能夠盡量多的緩存頁面內(nèi)容,實現(xiàn)了提高對頁面內(nèi)容進行繪制的能力和速度,避免出現(xiàn)繪制延遲,解決了現(xiàn)有技術(shù)中的頁面緩存方案容易導(dǎo)致頁面顯示空白的問題,進而達(dá)到了提高頁面緩存效率和緩存流暢度的效果。
[0061]圖4是根據(jù)本發(fā)明優(yōu)選實施例的瀏覽器使用紋理的裝置的示意圖,如圖4所示,在本發(fā)明優(yōu)選實施例中,獲取單元20主要包括第一判斷模塊21和第一獲取模塊22,其中:
[0062]第一判斷模塊21用于判斷紋理池中是否存在處于空閑狀態(tài)的紋理塊即,當(dāng)需要進行新頁面內(nèi)容緩存時,第一判斷模塊21先判斷紋理池中是否存在處于空閑狀態(tài)的紋理塊。
[0063]第一獲取模塊22用于在第一判斷模塊21判斷出紋理池中存在處于空閑狀態(tài)的紋理塊的情況下,從處于空閑狀態(tài)的紋理塊中獲取可用紋理塊,具體地,可以提取出一個紋理塊作為可用紋理塊,如果處于空閑狀態(tài)的紋理塊的數(shù)量為多個,也可以提取出多個處于空閑狀態(tài)的紋理塊作為可用紋理塊。
[0064]如果紋理池中還存在處于空閑狀態(tài)的紋理塊的話,說明紋理塊所占用的內(nèi)容還未達(dá)到瀏覽器所能使用的紋理總內(nèi)存大小的上限,此種情況下,通過從處于空閑狀態(tài)的紋理塊中提取可用紋理塊,而不是淘汰當(dāng)前頁面的紋理塊,實現(xiàn)了在上下滾動頁面過程中,向下滾動之后在向上滾動的話,不會因已繪制過的頁面內(nèi)容被丟失而需要重新繪制,這樣,只需在第一次向下滾動頁面的時候,繪制相關(guān)內(nèi)容到紋理塊上,而再向上滾動時,則無需重新繪制,上下滾動過程中所需時間會很少,頁面內(nèi)容的顯示幾乎與滾動同步,進一步提高了頁面緩存效率。
[0065]其中,在本發(fā)明實施例中,對于處于后端的頁面,可以只緩存可見區(qū)域的紋理塊,艮P,可以只將可見區(qū)域的內(nèi)容繪制到紋理塊上,承載其他區(qū)域內(nèi)容的紋理塊均可以被釋放到紋理塊組成的紋理池中。
[0066]進一步地,獲取單元20還包括第二判斷模塊23和第二獲取模塊24,其中:
[0067]第二判斷模塊23用于在第一判斷模塊21判斷出紋理池中不存在處于空閑狀態(tài)的紋理塊的情況下,判斷第一紋理塊中是否存在處于非可見區(qū)域的紋理塊,其中,第一紋理塊為紋理池中繪制有后臺頁面內(nèi)容的紋理塊,即,判斷對應(yīng)后臺頁面的紋理塊中是否存在處于非可見區(qū)域的紋理塊,非可見區(qū)域是相當(dāng)可見區(qū)域而言,可見區(qū)域是指終端設(shè)備瀏覽器上的可見部分,通常為瀏覽器窗口的大小,相應(yīng)地,除去顯示在瀏覽器上的部分,頁面的剩余部分則為非可見區(qū)域。
[0068]第二獲取模塊24用于在第二判斷模塊23判斷出第一紋理塊中存在處于非可見區(qū)域的紋理塊的情況下,從第一紋理塊中處于非可見區(qū)域的紋理塊中獲取可用紋理塊。即,從后臺頁面的非可見區(qū)域的紋理塊中獲取可用紋理塊,其中,可以選用非可見區(qū)域的紋理塊中最早繪制頁面內(nèi)容的紋理塊,具體地,本發(fā)明優(yōu)選實施例的瀏覽器使用紋理的裝置還包括:賦值單元,該賦值單元主要用于將繪制計數(shù)賦值給繪制頁面內(nèi)容時所使用的紋理塊,其中,繪制計數(shù)的初始值為預(yù)設(shè)值,每繪制一次頁面內(nèi)容,將繪制計數(shù)加一,通過賦值繪制計數(shù)至繪制頁面內(nèi)容所使用的紋理塊,第二獲取模塊24即可利用第一獲取子模塊和第一確定子模塊通過以下方式從第一紋理塊中處于非可見區(qū)域的紋理塊中提取出可用紋理塊:首先,第一獲取子模塊獲取處于非可見區(qū)域的紋理塊中繪制計數(shù)的數(shù)值最小的紋理塊;然后,第一確定子模塊確定獲取到的繪制計數(shù)的數(shù)值最小的紋理塊為可用紋理塊。
[0069]更進一步地,獲取單元20還包括第三獲取模塊25、第三判斷模塊26、申請模塊27和第一確定模塊28,其中:
[0070]在第二判斷模塊23判斷出第一紋理塊中不存在處于非可見區(qū)域的紋理塊的情況下,第三獲取模塊25用于獲取紋理池所占用內(nèi)存的總大小。
[0071]第三判斷模塊26用于判斷紋理池所占用內(nèi)存的總大小是否達(dá)到瀏覽器所能使用的紋理總內(nèi)存大小的上限。
[0072]申請模塊27用于在第三判斷模塊26判斷出紋理池所占用內(nèi)存的總大小未達(dá)到瀏覽器所能使用的紋理總內(nèi)存大小的上限的情況下,紋理池向操作系統(tǒng)申請紋理塊,即,從可使用內(nèi)存中申請一部分一部分內(nèi)存建立新的紋理塊。
[0073]第一確定模塊28用于確定申請的紋理塊為可用紋理塊,即,確定新申請建立的紋理塊即為可用紋理塊。
[0074]再進一步地,獲取單元20還包括第四判斷模塊29、第四獲取模塊210和第二確定模塊211,其中,在第三判斷模塊26判斷出紋理池所占用內(nèi)存的總大小達(dá)到瀏覽器所能使用的紋理總內(nèi)存大小的上限的情況下,第四判斷模塊29判斷是否存在第二紋理塊,其中,第二紋理塊為繪制有當(dāng)前頁面內(nèi)容非緩存區(qū)域的紋理塊。如果第四判斷模塊29判斷出存在第二紋理塊,則第四獲取模塊210用于獲取第二紋理塊中繪制計數(shù)的數(shù)值最小的紋理塊,如果第四判斷模塊29判斷出不存在第二紋理塊,則第四獲取模塊210用于獲取第一紋理塊中繪制計數(shù)的數(shù)值最小的紋理塊;第二確定模塊211用于確定獲取到的繪制計數(shù)的數(shù)值最小的紋理塊為可用紋理塊。
[0075]在本發(fā)明優(yōu)選實施例所提供的瀏覽器使用紋理的裝置中,對于所有頁面的繪制,通過添加一個繪制計數(shù)的概念,每次繪制一次頁面,計數(shù)加1,這個計數(shù)將被賦予到這次所繪制的紋理塊上去,同一次繪制的紋理塊擁有相同的計數(shù)。紋理塊計數(shù)越大,表明是最近使用的塊,它被淘汰的優(yōu)先級最低。當(dāng)可用內(nèi)存資源(可用紋理塊所消耗的內(nèi)存)達(dá)到預(yù)估的上限時,紋理池將淘汰計數(shù)最小的(即最久使用的)紋理塊以生成新的頁面內(nèi)容。
[0076]本發(fā)明優(yōu)選實施例所提供的瀏覽器使用紋理的裝置,實現(xiàn)了多個頁面共享紋理塊,并且分配給當(dāng)期頁面紋理塊資源的優(yōu)先級最高,實現(xiàn)了在瀏覽器打開多個頁面的情況下,在保證其他頁面基本需要的情況下,優(yōu)先滿足當(dāng)期頁面的繪制資源需要,加大了當(dāng)前頁面的繪制緩存,進一步提升了用戶瀏覽過程中的體驗度。
[0077]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了盡量發(fā)揮設(shè)備終端本身的內(nèi)存能力,提高了瀏覽器的繪制能力和效率,并且優(yōu)先滿足當(dāng)期頁面的繪制資源需要,加大了當(dāng)前頁面的繪制緩存,進一步提升了用戶瀏覽過程中的體驗度。
[0078]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0079]在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0080]其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
[0081]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單