技術(shù)領(lǐng)域
本發(fā)明涉及終端顯示技術(shù)領(lǐng)域,尤其涉及一種用于移動(dòng)終端顯示的緩存處理方法及裝置。
背景技術(shù):
移動(dòng)終端設(shè)備(如手機(jī))的顯示系統(tǒng)是一個(gè)重要的組成部分,顯示效果的好壞直接決定了移動(dòng)終端設(shè)備的優(yōu)劣,主機(jī)(host)的顯示系統(tǒng)最終能夠?qū)?shù)據(jù)顯示在液晶顯示屏(Liquid Crystal Display,LCD)上,需要緩沖區(qū)(buffer)的中間過(guò)渡。即移動(dòng)終端的上層應(yīng)用系統(tǒng)首先將需要顯示的數(shù)據(jù)寫(xiě)入buffer中,在進(jìn)行顯示時(shí),移動(dòng)終端的驅(qū)動(dòng)部分從buffer中獲取數(shù)據(jù)并顯示在LCD上。
現(xiàn)有的移動(dòng)終端顯示系統(tǒng)多采用RGB接口(即分紅、綠、藍(lán)三原色輸入的接口)的顯示屏,在使用RGB接口的顯示屏?xí)r,必然需要在主機(jī)的動(dòng)態(tài)隨機(jī)存儲(chǔ)區(qū)(如DDR)中設(shè)定一塊存儲(chǔ)區(qū)域作為buffer,一般情況下,僅設(shè)定一個(gè)buffer區(qū)域,在移動(dòng)終端的應(yīng)用系統(tǒng)部分和驅(qū)動(dòng)部分分時(shí)操作的情況下,對(duì)buffer區(qū)域的讀操作和寫(xiě)操作是不會(huì)發(fā)生沖突的,即同一時(shí)間僅對(duì)該buffer區(qū)域進(jìn)行讀操作或?qū)懖僮鳎粫?huì)同時(shí)進(jìn)行兩種操作。但是,在移動(dòng)終端的應(yīng)用系統(tǒng)部分和驅(qū)動(dòng)部分分別獨(dú)立對(duì)buffer進(jìn)行操作時(shí),即對(duì)buffer進(jìn)行的讀操作,與對(duì)buffer進(jìn)行的寫(xiě)操作是獨(dú)立進(jìn)行的,可以同時(shí)對(duì)buffer進(jìn)行兩種操作,這就有可能會(huì)出現(xiàn)對(duì)buffer的讀操作的速率與對(duì)其進(jìn)行寫(xiě)操作的速率不一致。
一般情況下,一個(gè)buffer的存儲(chǔ)空間大小為一幀數(shù)據(jù)大小,即為移動(dòng)終端顯示屏上顯示一整屏數(shù)據(jù)所占的存儲(chǔ)空間大小。在移動(dòng)終端的應(yīng)用系統(tǒng)部分和驅(qū)動(dòng)部分獨(dú)立地對(duì)buffer進(jìn)行操作時(shí),如果對(duì)buffer進(jìn)行寫(xiě)操作的速率與對(duì)其進(jìn)行讀操作的速率相同,則顯示正常。若移動(dòng)終端的應(yīng)用系統(tǒng)部分向buffer發(fā)送數(shù)據(jù)的速率(即向buffer寫(xiě)入數(shù)據(jù)的速率)大于驅(qū)動(dòng)部分獲取數(shù)據(jù)的速率(即對(duì)buffer進(jìn)行讀操作的速率),這就造成驅(qū)動(dòng)部分還未將當(dāng)前顯示幀的數(shù)據(jù)取完,buffer內(nèi)的數(shù)據(jù)已經(jīng)被應(yīng)用系統(tǒng)部分發(fā)送的新的數(shù)據(jù)覆蓋,從而導(dǎo)致LCD顯示的數(shù)據(jù)中一部分為當(dāng)前顯示幀的數(shù)據(jù),一部分為下一待顯示幀的數(shù)據(jù),即造成顯示屏顯示的不是同一幀數(shù)據(jù),出現(xiàn)撕屏現(xiàn)象;同樣,若移動(dòng)終端的應(yīng)用系統(tǒng)部分向buffer發(fā)送數(shù)據(jù)的速率小于驅(qū)動(dòng)部分獲取數(shù)據(jù)的速率,應(yīng)用系統(tǒng)部分還未將當(dāng)前顯示幀的數(shù)據(jù)發(fā)送完,即還未完全覆蓋前一顯示幀的數(shù)據(jù),驅(qū)動(dòng)部分已經(jīng)將整個(gè)buffer內(nèi)的數(shù)據(jù)讀取完畢,從而導(dǎo)致LCD顯示屏的一部分為當(dāng)前顯示幀的數(shù)據(jù),另一部分為前一顯示幀的數(shù)據(jù),顯示的并非是同一圖片,出現(xiàn)撕屏現(xiàn)象。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種用于移動(dòng)終端顯示的緩存處理方法及裝置,用以避免終端顯示一屏數(shù)據(jù)時(shí)顯示的不是同一幀數(shù)據(jù)的情況出現(xiàn),防止由于一次顯示的不是同一幀數(shù)據(jù)而導(dǎo)致的撕屏現(xiàn)象,提高顯示效果。
本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
一種用于移動(dòng)終端顯示的緩存處理方法,包括:
依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型;
針對(duì)任一緩沖區(qū),當(dāng)確定所述緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定所述緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向所述緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將所述緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作;
當(dāng)確定所述緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定所述緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取所述緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將所述緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作。
一種用于移動(dòng)終端顯示的緩存處理裝置,包括:
第一處理單元,用于依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型;
第二處理單元,用于針對(duì)任一緩沖區(qū),當(dāng)確定所述緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定所述緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向所述緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將所述緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作;
第三處理單元,用于當(dāng)確定所述緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定所述緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取所述緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將所述緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作。
基于上述技術(shù)方案,本發(fā)明實(shí)施例中,在移動(dòng)終端中設(shè)置至少兩個(gè)用于顯示的緩沖區(qū),通過(guò)依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型,并且針對(duì)任一緩沖區(qū),在確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)且確定當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向該緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作,而在確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)且確定當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取該緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作,從而在同一時(shí)間僅能夠?qū)ν痪彌_區(qū)進(jìn)行讀操作或?qū)懖僮?,避免了由于同時(shí)對(duì)同一緩沖區(qū)進(jìn)行讀操作和寫(xiě)操作的速率不一致,而導(dǎo)致顯示的不是同一幀數(shù)據(jù),從而有效防止了由于一次顯示的不是同一幀數(shù)據(jù)導(dǎo)致的撕屏現(xiàn)象,提高了顯示效果。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中用于移動(dòng)終端顯示的緩存處理的方法流程圖;
圖2為本發(fā)明實(shí)施例中用于移動(dòng)終端顯示的緩存處理裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了有效避免終端顯示一屏數(shù)據(jù)時(shí)顯示的不是同一幀數(shù)據(jù)的情況出現(xiàn),防止由于一次顯示的不是同一幀數(shù)據(jù)而導(dǎo)致的撕屏現(xiàn)象,提高顯示效果,本發(fā)明實(shí)施例提供了一種用于移動(dòng)終端顯示的緩存處理方法及裝置。
下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。
以下實(shí)施例中,一個(gè)緩沖區(qū)的存儲(chǔ)空間大小為一幀數(shù)據(jù)大小,即為移動(dòng)終端顯示屏上顯示一整屏數(shù)據(jù)所占的存儲(chǔ)空間大小。
如附圖1所示,本發(fā)明實(shí)施例中,用于移動(dòng)終端顯示的緩存處理的詳細(xì)方法流程如下:
步驟101:依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型。
本發(fā)明實(shí)施例中,移動(dòng)終端中設(shè)置有至少兩個(gè)緩沖區(qū),即移動(dòng)終端中包含兩個(gè)或兩個(gè)以上用于顯示的緩沖區(qū)。
本發(fā)明實(shí)施例中,依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài),在具體實(shí)現(xiàn)時(shí),針對(duì)任一緩沖區(qū),判斷該緩沖區(qū)中預(yù)設(shè)的第一標(biāo)志位是否為預(yù)設(shè)值,若是,則確定該緩沖區(qū)處于可訪(fǎng)問(wèn)狀態(tài),否則,確定該緩沖區(qū)處于禁止訪(fǎng)問(wèn)狀態(tài)。其中,在緩沖區(qū)處于禁止訪(fǎng)問(wèn)狀態(tài)時(shí),無(wú)法對(duì)該緩沖區(qū)進(jìn)行讀操作或?qū)懖僮鳌?/p>
例如,每個(gè)緩沖區(qū)相應(yīng)設(shè)置一個(gè)Lock標(biāo)志位,針對(duì)任一緩沖區(qū),在該緩沖區(qū)的Lock標(biāo)志位值為0時(shí),可確定該緩沖區(qū)處于可訪(fǎng)問(wèn)狀態(tài),而在該緩沖區(qū)的Lock標(biāo)志位為1時(shí),可確定該緩沖區(qū)處于禁止訪(fǎng)問(wèn)狀態(tài)。此處僅為舉例,根據(jù)實(shí)際設(shè)置,也可以設(shè)置為在緩沖區(qū)的Lock標(biāo)志位值為1時(shí),可確定該緩沖區(qū)處于可訪(fǎng)問(wèn)狀態(tài),而在緩沖區(qū)的Lock標(biāo)志位為0時(shí),可確定該緩沖區(qū)處于禁止訪(fǎng)問(wèn)狀態(tài)。
本發(fā)明實(shí)施例中,依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型,具體實(shí)現(xiàn)時(shí),針對(duì)任一緩沖區(qū),可以是判斷該緩沖區(qū)預(yù)設(shè)的第二標(biāo)志位是否為預(yù)設(shè)值,若是,確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作,否則,確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作。
例如,每個(gè)緩沖區(qū)相應(yīng)設(shè)置一個(gè)訪(fǎng)問(wèn)類(lèi)型標(biāo)志位,針對(duì)任一緩沖區(qū),在該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型標(biāo)志位值為0時(shí),可確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作,而在該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型標(biāo)志位為1時(shí),可確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作。此處僅為舉例,根據(jù)實(shí)際設(shè)置,也可以設(shè)置為在緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型標(biāo)志位值為1時(shí),可確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作,而在緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型標(biāo)志位值為0時(shí),可確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作。
步驟102:針對(duì)任一緩沖區(qū),當(dāng)確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定該緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向該緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作。
在一個(gè)較佳的實(shí)現(xiàn)中,向緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù)前,首先將該緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài),再向該緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),并在確定數(shù)據(jù)寫(xiě)操作結(jié)束時(shí),將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作后,將該緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)。
具體地,以移動(dòng)終端包含兩個(gè)緩沖區(qū)為例,在移動(dòng)終端的應(yīng)用系統(tǒng)需要向用于顯示的緩沖區(qū)中寫(xiě)入數(shù)據(jù)時(shí),首先判斷第一緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),在第一緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型是否為寫(xiě)操作,若是,則將第一緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài),再向第一緩沖區(qū)中寫(xiě)入數(shù)據(jù),并在寫(xiě)操作結(jié)束時(shí),將第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作,再將第一緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)后退出第一緩沖區(qū)。
假設(shè)移動(dòng)終端的應(yīng)用系統(tǒng)需要向緩沖區(qū)中寫(xiě)入數(shù)據(jù)時(shí),確定第一緩沖區(qū)為禁止訪(fǎng)問(wèn)狀態(tài),則表明移動(dòng)終端的驅(qū)動(dòng)部分正在讀取第一緩沖區(qū)中的數(shù)據(jù),則直接退出第一緩沖區(qū),繼續(xù)判斷第二緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),并在第二緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第二緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型。
又假設(shè)移動(dòng)終端的應(yīng)用系統(tǒng)需要向緩沖區(qū)中寫(xiě)入數(shù)據(jù)時(shí),在確定第一緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),進(jìn)一步判斷第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型時(shí),確定第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作,則表明第一緩沖區(qū)已經(jīng)寫(xiě)入數(shù)據(jù),且移動(dòng)終端的驅(qū)動(dòng)部分還未讀取第一緩存區(qū)中寫(xiě)入的數(shù)據(jù)進(jìn)行顯示,則不能向第一緩沖區(qū)中寫(xiě)入數(shù)據(jù),直接退出第一緩沖區(qū),繼續(xù)判斷第二緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),并在第二緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第二緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型。
步驟103:針對(duì)任一緩沖區(qū),當(dāng)確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定該緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取該緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作。
在一個(gè)較佳的實(shí)現(xiàn)中,確定緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),在讀取該緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示前,首先將該緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài);并在確定讀操作結(jié)束后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作后,將該緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)。
具體地,以移動(dòng)終端包含兩個(gè)緩沖區(qū)為例,在移動(dòng)終端的驅(qū)動(dòng)部分需要讀取用于顯示的緩沖區(qū)中的數(shù)據(jù)時(shí),首先判斷第一緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),在第一緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型是否為讀操作,若是,則將第一緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài),再讀取第一緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,并在讀操作結(jié)束時(shí),將第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作,以及將第一緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)后退出第一緩沖區(qū)。
假設(shè)移動(dòng)終端的驅(qū)動(dòng)部分需要讀取緩沖區(qū)中的數(shù)據(jù)時(shí),確定第一緩沖區(qū)為禁止訪(fǎng)問(wèn)狀態(tài),則表明移動(dòng)終端的應(yīng)用系統(tǒng)正在向第一緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),則直接退出第一緩沖區(qū),繼續(xù)判斷第二緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),并在第二緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第二緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型。
又假設(shè)移動(dòng)終端的驅(qū)動(dòng)部分需要讀取緩沖區(qū)中的數(shù)據(jù)時(shí),在確定第一緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),進(jìn)一步判斷第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型時(shí),確定第一緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作,則表明驅(qū)動(dòng)部分已經(jīng)讀取第一緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,不能再次讀取第一緩沖區(qū)中的數(shù)據(jù),直接退出第一緩沖區(qū),繼續(xù)判斷第二緩沖區(qū)是否為可訪(fǎng)問(wèn)狀態(tài),并在第二緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)時(shí),進(jìn)一步判斷第二緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型。
與移動(dòng)終端中設(shè)置兩個(gè)緩沖區(qū)的原理相同,對(duì)于移動(dòng)終端中設(shè)置兩個(gè)以上的緩沖區(qū)的情況,只需按照預(yù)設(shè)的順序判斷各個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)和訪(fǎng)問(wèn)類(lèi)型,并根據(jù)確定的訪(fǎng)問(wèn)狀態(tài)和訪(fǎng)問(wèn)類(lèi)型進(jìn)行數(shù)據(jù)的寫(xiě)入和讀取操作即可,其針對(duì)每個(gè)緩沖區(qū)的處理與上述方法相同。
基于上述原理,如附圖2所示,本發(fā)明實(shí)施例中,還提供了一種用于移動(dòng)終端顯示的緩存處理裝置,主要包括以下處理單元:
第一處理單元201:用于依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型;
第二處理單元202:用于針對(duì)任一緩沖區(qū),當(dāng)確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定該緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向該緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作;
第三處理單元203:用于當(dāng)確定緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài),且進(jìn)一步確定該緩沖區(qū)當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取該緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作。
其中,第二處理單元還用于向緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù)前,將該緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài);以及在將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作后,將該緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)。
其中,第三處理單元還用于讀取緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示前,將該緩沖區(qū)設(shè)為禁止訪(fǎng)問(wèn)狀態(tài);以及在將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作,將該緩沖區(qū)設(shè)為可訪(fǎng)問(wèn)狀態(tài)。
其中,第一處理單元具體用于針對(duì)任一緩沖區(qū),判斷該緩沖區(qū)預(yù)設(shè)的第一標(biāo)志位是否為預(yù)設(shè)值,若是,則確定該緩沖區(qū)處于可訪(fǎng)問(wèn)狀態(tài);否則,確定該緩沖區(qū)處于禁止訪(fǎng)問(wèn)狀態(tài)。
其中,第一處理單元具體用于針對(duì)任一緩沖區(qū),判斷該緩沖區(qū)預(yù)設(shè)的第二標(biāo)志位是否為預(yù)設(shè)值,若是,確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作;否則,確定該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型為讀操作。
基于上述技術(shù)方案,本發(fā)明實(shí)施例中,在移動(dòng)終端中設(shè)置至少兩個(gè)用于顯示的緩沖區(qū),通過(guò)依次判斷移動(dòng)終端中設(shè)置的至少兩個(gè)緩沖區(qū)的訪(fǎng)問(wèn)狀態(tài)及訪(fǎng)問(wèn)類(lèi)型,并且針對(duì)任一緩沖區(qū),在確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)且確定當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為寫(xiě)操作時(shí),向該緩沖區(qū)中寫(xiě)入待顯示的數(shù)據(jù),當(dāng)本次寫(xiě)操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為讀操作,而在確定該緩沖區(qū)為可訪(fǎng)問(wèn)狀態(tài)且確定當(dāng)前的訪(fǎng)問(wèn)類(lèi)型為讀操作時(shí),讀取該緩沖區(qū)中的數(shù)據(jù)進(jìn)行顯示,當(dāng)本次讀操作完成后,將該緩沖區(qū)的訪(fǎng)問(wèn)類(lèi)型修改為寫(xiě)操作,從而在同一時(shí)間僅能夠?qū)ν痪彌_區(qū)進(jìn)行讀操作或?qū)懖僮?,避免了由于同時(shí)對(duì)同一緩沖區(qū)進(jìn)行讀操作和寫(xiě)操作的速率不一致,而導(dǎo)致顯示的不是同一幀數(shù)據(jù),從而有效防止了由于一次顯示的不是同一幀數(shù)據(jù)導(dǎo)致的撕屏現(xiàn)象,提高了顯示效果。
本發(fā)明實(shí)施例中,根據(jù)LCD的分辨率確定每個(gè)緩沖區(qū)的大小,固定的緩沖區(qū)大小給空間有限的存儲(chǔ)器提供了最大化的利用。在分配出固定大小的緩沖區(qū)后,存儲(chǔ)器的其余部分可以最大化的分配給其它進(jìn)程使用,并且每個(gè)緩沖區(qū)的大小正好是一幀圖片的大小,所以針對(duì)一個(gè)緩沖區(qū)進(jìn)行讀或?qū)懖僮鲿r(shí),必然是對(duì)緩沖區(qū)進(jìn)行一次性操作。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。