一種多窗口中標(biāo)簽頁的展示方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及瀏覽器技術(shù)領(lǐng)域,特別是涉及一種多窗口中標(biāo)簽頁的展示方法及裝置。
【背景技術(shù)】
[0002]用戶利用終端設(shè)備內(nèi)的瀏覽器來瀏覽頁面成為用戶獲得網(wǎng)絡(luò)信息的主要途徑之一,而為了方便用戶對于瀏覽器的瀏覽,通常采用多標(biāo)簽技術(shù),即在一個(gè)瀏覽器中可以打開多個(gè)標(biāo)簽頁,每一標(biāo)簽頁對應(yīng)一個(gè)頁面。進(jìn)一步的,為了查看當(dāng)前所存在的多個(gè)標(biāo)簽頁,用戶需要進(jìn)入到多個(gè)標(biāo)簽頁所在的窗口(以下簡稱多窗口),多窗口中的標(biāo)簽頁以頁面截圖的方式展現(xiàn)。
[0003]現(xiàn)有技術(shù)中,多窗口中標(biāo)簽頁的展示方法包括:瀏覽器在接收到用戶發(fā)出的關(guān)于多窗口的展示操作后,調(diào)用靜態(tài)布局文件來初始化多窗口所對應(yīng)的根窗口,以及用來顯示標(biāo)簽集合的定位窗口,其中,根窗口位于瀏覽器的視圖窗口中,而定位窗口位于該根窗口下;根據(jù)當(dāng)前所存在的標(biāo)簽頁的屬性,確定當(dāng)前所存在的各個(gè)標(biāo)簽頁的標(biāo)題和內(nèi)容截圖;進(jìn)而,調(diào)用系統(tǒng)提供的應(yīng)用程序接口來利用CPU來進(jìn)行圖像繪制,從而實(shí)現(xiàn)多窗口中的標(biāo)簽頁的展示,具體的,在繪制時(shí),首先創(chuàng)建圖像繪制時(shí)各個(gè)標(biāo)簽頁所需的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),然后,基于該數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)來利用CPU繪制圖像,其中,創(chuàng)建數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)即為:創(chuàng)建多個(gè)子窗口,確定標(biāo)簽頁的標(biāo)題與內(nèi)容截圖所對應(yīng)子窗口以和位于子窗口的位置,并且,確定各個(gè)子窗口在定位窗口的位置。
[0004]盡管現(xiàn)有技術(shù)實(shí)現(xiàn)了多窗口中標(biāo)簽頁的展示,但是,每次進(jìn)入多窗口時(shí)都需要初始化根窗口和定位窗口,導(dǎo)致展示過程較為繁瑣;另外,當(dāng)圖片過大或過多時(shí),通過CPU來繪制圖像顯然會(huì)消耗較大的內(nèi)存,導(dǎo)致繪制速率較低,最終使得界面流暢性會(huì)受到影響。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例的目的在于提供一種多窗口中標(biāo)簽頁的展示方法及裝置,以簡化多窗口展示過程及提高繪制速率。具體技術(shù)方案如下:
[0006]第一方面,本發(fā)明實(shí)施例提供了一種多窗口中標(biāo)簽頁的展示方法,應(yīng)用于瀏覽器,所述方法包括:
[0007]獲得關(guān)于多窗口的展不指令;
[0008]確定位于所述瀏覽器的視圖窗口下的所述多窗口所對應(yīng)的根窗口以及位于所述根窗口下的定位窗口,其中,所述根窗口和所述定位窗口為:所述瀏覽器啟動(dòng)后,在第一次執(zhí)行多窗口中標(biāo)簽頁的展示過程中初始化生成的,其中,所述根窗口為與OpenGL匹配使用的植染窗口 GLSurfaceView ;
[0009]獲得所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖,其中,所述標(biāo)題和內(nèi)容截圖具有一一對應(yīng)性;
[0010]獲得所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),其中,所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)由CPU生成;
[0011]通過調(diào)用OpenGL將所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)繪制到所述根窗口下的所述定位窗口上,從而實(shí)現(xiàn)在所述定位窗口中展示當(dāng)前所存在的標(biāo)簽頁的頁面截圖。
[0012]可選的,所述獲得所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖,包括:
[0013]基于當(dāng)前所存在的標(biāo)簽頁的頁面屬性,得到當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖。
[0014]可選的,所述獲得所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖,包括:
[0015]判斷當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖是否緩存于第一預(yù)設(shè)緩存空間,如果是,從所述第一預(yù)設(shè)緩存空間中得到所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖,否則,基于所述當(dāng)前所存在的標(biāo)簽頁的頁面屬性,得到所述當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖。
[0016]可選的,所述獲得所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),包括:
[0017]將所述標(biāo)題和相應(yīng)內(nèi)容截圖加載到CPU中,以通過CPU生成所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)。
[0018]可選的,所述獲得所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),包括:
[0019]判斷所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)是否緩存于第二預(yù)設(shè)緩存空間,如果是,從所述第二預(yù)設(shè)緩存空間中得到所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),否則,將所述標(biāo)題和相應(yīng)內(nèi)容截圖加載到CPU中,以通過CPU生成所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù);
[0020]其中,所述第二預(yù)設(shè)緩存空間為GPU所對應(yīng)的緩存空間,且所述第二預(yù)設(shè)緩存空間所存儲(chǔ)的標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)為基于OpenGL實(shí)現(xiàn)的緩存。
[0021]可選的,所述通過調(diào)用OpenGL將所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)繪制到所述根窗口下的所述定位窗口上,包括:
[0022]確定所述根窗口下的定位窗口的布局方式;
[0023]為每一組標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)生成一子窗口 ;
[0024]基于所確定出的所述布局方式,將所述子窗口添加到所述定位窗口的相應(yīng)位置;
[0025]通過調(diào)用程序接口 setRenderMode使得OpenGL將所述根窗口設(shè)置為植染模式;
[0026]通過調(diào)用程序接口 requestRender使得OpenGL在各個(gè)子窗口上繪制相應(yīng)的標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),其中,所述標(biāo)題的紋理數(shù)據(jù)繪制在相應(yīng)子窗口的標(biāo)題位置,所述內(nèi)容截圖的紋理數(shù)據(jù)繪制在相應(yīng)子窗口的內(nèi)容區(qū)域。
[0027]第二方面,本發(fā)明實(shí)施例還提供了一種多窗口中標(biāo)簽頁的展示裝置,應(yīng)用于瀏覽器,所述裝置包括:
[0028]展示指令獲得模塊,用于獲得關(guān)于多窗口的展示指令;
[0029]窗口確定模塊,用于確定位于所述瀏覽器的視圖窗口下的所述多窗口所對應(yīng)的根窗口以及位于所述根窗口下的定位窗口,其中,所述根窗口和所述定位窗口為:所述瀏覽器啟動(dòng)后,在第一次執(zhí)行多窗口中標(biāo)簽頁的展示過程中初始化生成的,其中,所述根窗口為與OpenGL匹配使用的植染窗口 GLSurfaceView ;
[0030]信息獲得模塊,用于獲得所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖,其中,所述標(biāo)題和內(nèi)容截圖具有一一對應(yīng)性;
[0031]紋理數(shù)據(jù)獲得模塊,用于獲得所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),其中,所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)由CPU生成;
[0032]紋理數(shù)據(jù)繪制模塊,用于通過調(diào)用OpenGL將所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)繪制到所述根窗口下的所述定位窗口上,從而實(shí)現(xiàn)在所述定位窗口中展示當(dāng)前所存在的標(biāo)簽頁的頁面截圖。
[0033]可選的,所述信息獲得模塊包括:
[0034]第一信息獲得單元,用于基于當(dāng)前所存在的標(biāo)簽頁的頁面屬性,得到當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖。
[0035]可選的,所述信息獲得模塊包括:
[0036]第一判斷單元,用于判斷當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖是否緩存于第一預(yù)設(shè)緩存空間,如果是,觸發(fā)第二信息獲得單元,否則,觸發(fā)第三信息獲得單元;
[0037]所述第二信息獲得單元,用于從所述第一預(yù)設(shè)緩存空間中得到所述瀏覽器中當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖;
[0038]所述第三信息獲得單元,用于基于當(dāng)前所存在的標(biāo)簽頁的頁面屬性,得到當(dāng)前所存在的標(biāo)簽頁的標(biāo)題和內(nèi)容截圖。
[0039]可選的,所述紋理數(shù)據(jù)獲得模塊包括:
[0040]第一紋理數(shù)據(jù)獲得單元,用于將所述標(biāo)題和相應(yīng)內(nèi)容截圖加載到CPU中,以通過CPU生成所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)。
[0041]可選的,所述紋理數(shù)據(jù)獲得模塊包括:
[0042]判斷單元,用于判斷所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)是否緩存于第二預(yù)設(shè)緩存空間,如果是,觸發(fā)第二紋理數(shù)據(jù)獲得單元,否則,觸發(fā)第三紋理數(shù)據(jù)獲得單元;
[0043]所述第二紋理數(shù)據(jù)獲得單元,用于從所述第二預(yù)設(shè)緩存空間中得到所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù);
[0044]所述第三紋理數(shù)據(jù)獲得單元,用于將所述標(biāo)題和相應(yīng)內(nèi)容截圖加載到CPU中,以通過CPU生成所述標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù);
[0045]其中,所述第二預(yù)設(shè)緩存空間為GPU所對應(yīng)的緩存空間,且所述第二預(yù)設(shè)緩存空間所存儲(chǔ)的標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)為基于OpenGL實(shí)現(xiàn)的緩存。
[0046]可選的,所述紋理數(shù)據(jù)繪制模塊包括:
[0047]布局方式確定單元,用于確定所述根窗口下的定位窗口的布局方式;
[0048]子窗口生成單元,用于為每一組標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù)生成一子窗口 ;
[0049]子窗口添加單元,用于基于所確定出的所述布局方式,將所述子窗口添加到所述定位窗口的相應(yīng)位置;
[0050]窗口植染單元,用于通過調(diào)用程序接口 setRenderMode使得OpenGL將所述根窗口設(shè)置為渲染模式;
[0051]紋理數(shù)據(jù)繪制單元,用于通過調(diào)用程序接口 requestRender使得OpenGL在各個(gè)子窗口上繪制相應(yīng)的標(biāo)題的紋理數(shù)據(jù)和相應(yīng)內(nèi)容截圖的紋理數(shù)據(jù),其中,所述標(biāo)題的紋理數(shù)據(jù)繪制在相應(yīng)子窗口的標(biāo)題位置,所述內(nèi)容截圖的紋理數(shù)據(jù)繪