一種嵌入式窗口管理方法及裝置制造方法
【專利摘要】本發(fā)明公開一種嵌入式窗口管理方法及裝置,該嵌入式窗口管理方法包括步驟:將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū)域和剪切區(qū)域,所述窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗口內(nèi)圖片的具體顯示部分;將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口中更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯存。本發(fā)明實現(xiàn)在圖形用戶界面窗口中分屏滾動播放圖片。
【專利說明】-種嵌入式窗口管理方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及界面窗口顯示領(lǐng)域,特別是涉及一種嵌入式窗口管理方法及裝置。
【背景技術(shù)】
[0002] 圖形用戶界面或圖形用戶接口(Graphical User Interface,⑶I)是指采用圖形 方式顯示的計算機操作環(huán)境用戶接口。與早期計算機使用的命令行界面相比,圖形界面對 于用戶來說更為簡便易用。GUI的廣泛應用是當今計算機發(fā)展的重大成就之一,它極大地方 便了非專業(yè)用戶的使用人們從此不再需要死記硬背大量的命令,取而代之的是可用通過窗 口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕 型、占用資源少、高性能、高可靠性、便于移植、可配置等特點。
[0003] 目前,幾乎沒有單獨的面向嵌入式的窗口管理系統(tǒng),嵌入式窗口管理系統(tǒng)一般都 是作為⑶I系統(tǒng)的一個組件一起提供的。這種系統(tǒng)主要用于界面交互場景,因此無法實現(xiàn) 分屏播放多媒體素材,特別是滾動播放。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是:提供一種嵌入式窗口管理方法,該方法能夠?qū)崿F(xiàn) 在圖形用戶界面窗口中分屏滾動播放圖片。
[0005] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0006] 一種嵌入式窗口管理方法,包括步驟:
[0007] 將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū)域和剪切區(qū)域,所述 窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗口內(nèi)圖片的具體顯示 部分;
[0008] 將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口中;
[0009] 更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯存。
[0010] 本發(fā)明的另一技術(shù)方案為,一種嵌入式窗口管理裝置,該裝置包括分屏模塊、加載 豐旲塊和顯旲塊;
[0011] 所述分屏模塊用于將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū) 域和剪切區(qū)域,所述窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗 口內(nèi)圖片的具體顯示部分;
[0012] 所述加載模塊用于將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口 中;
[0013] 顯示模塊用于更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯 存。
[0014] 本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù)中嵌入式圖形用戶界面窗口內(nèi)只用于界 面交互,無法實現(xiàn)分屏滾動播放多媒體素材,本發(fā)明通過引入剪切區(qū)域,通過按一定步長更 新剪切區(qū)域,使剪切區(qū)域指示圖片的不同部分,并將剪切區(qū)域內(nèi)的內(nèi)容加載至顯存中,使窗 口內(nèi)沿不同方向滾動播放圖片,從而實現(xiàn)在圖形用戶界面窗口中滾動播放圖片。
【專利附圖】
【附圖說明】
[0015] 圖1為本發(fā)明一實施方式中嵌入式窗口管理方法的執(zhí)行流程圖;
[0016] 圖2為本發(fā)明一實施方式中嵌入式窗口管理裝置的功能框圖;
[0017] 圖3為本發(fā)明一實施方式中窗口之間以及窗口與子窗口之間的邏輯關(guān)系圖;
[0018] 圖4為本發(fā)明一實施方式中更新屏幕顯示區(qū)域的執(zhí)行流程圖;
[0019] 圖5為本發(fā)明一實施方式中更新屏幕顯示區(qū)域時,計算處于屏幕顯示區(qū)域的窗口 圖片區(qū)域的公式;
[0020] 圖6為本發(fā)明一實施方式中按預設步長修改剪切區(qū)域起始坐標實現(xiàn)滾動效果的 執(zhí)行流程圖;
[0021] 圖7為本發(fā)明一實施方式中米用窗口與子窗口,同時通過修改剪切區(qū)域和窗口區(qū) 域配合實現(xiàn)滾動效果的示例圖;
[0022] 主要標號說明:
[0023] 10-分屏模塊;20-加載模塊;30-顯示模塊。
【具體實施方式】
[0024] 為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式 并配合附圖詳予說明。
[0025] 本發(fā)明最關(guān)鍵的構(gòu)思在于:引入剪切區(qū)域,使剪切區(qū)域指示圖片的具體顯示部分, 通過更新剪切區(qū)域達到窗口內(nèi)滾動播放圖片。
[0026] 請參閱圖1,一種嵌入式窗口管理方法,包括步驟:
[0027] S1、將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū)域和剪切區(qū)域, 所述窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗口內(nèi)圖片的具體 顯示部分;
[0028] S2、將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口中;
[0029] S3、更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯存。
[0030] 從上述描述可知,本發(fā)明的有益效果在于:本發(fā)明通過引入剪切區(qū)域,通過按一定 步長更新剪切區(qū)域,使剪切區(qū)域指示圖片的不同部分,并將剪切區(qū)域內(nèi)的內(nèi)容加載至顯存 中,使窗口內(nèi)沿不同方向滾動播放圖片,從而實現(xiàn)在圖形用戶界面窗口中滾動播放圖片。
[0031] 進一步的,在本實施方式中,所述步驟S3后還包括步驟S4 :更改窗口區(qū)域;通過更 改窗口區(qū)域可以達到修改窗口圖片在屏幕的顯示位置和可視部分。
[0032] 在所述更新屏幕顯示區(qū)域步驟之前還包括以下步驟:更換窗口區(qū)域內(nèi)圖片或按預 設步長更新剪切區(qū)域。
[0033] 進一步的,請參閱圖6,在本實施方式中,所述按預設步長更新剪切區(qū)域的具體步 驟包括:
[0034] 設置所述剪切區(qū)域的位移量為x_scorll_index,其中,x_scorll_index的初值為 〇 ;
[0035] 按預設步長更新所述剪切區(qū)域,計算所述剪切區(qū)域的位移量x_scorll_index ;
[0036] 判斷剪切區(qū)域更新過程中,其剩余寬度是否小于一個預設步長,若是,則播放結(jié) 束,若否,則繼續(xù)按預設步長向剪切方向更新所述剪切區(qū)域。
[0037] 在本實施方式中,設置剪切區(qū)域的起始位置為所述圖片的起始地址,按預設步長 更新剪切區(qū)域,將圖片在新剪切區(qū)域的內(nèi)容更新到顯存中進行播放。所述更新剪切區(qū)域的 方向為剪切區(qū)域從圖片的左側(cè)向圖片的右側(cè)移動,從而實現(xiàn)圖片在窗口中從右向左滾動播 放,在其他實施方式中,所述更新剪切區(qū)域的方向可以是從圖片的右側(cè)向左側(cè)移動、從圖片 的下側(cè)向上側(cè)移動或從圖片的上側(cè)向下側(cè)移動,從而實現(xiàn)窗口內(nèi)沿不同方向滾動播放圖 片。
[0038] 進一步的,所述更改窗口區(qū)域,實現(xiàn)滾動的具體步驟包括:
[0039] 預設窗口的窗口區(qū)域的寬度是主窗口的窗口區(qū)域的寬度的兩倍,窗口的窗口區(qū)域 起始位置與主窗口的窗口區(qū)域起始位置重合;
[0040] 然后按預設步長向左更新窗口的窗口區(qū)域超始位置,窗口的窗口區(qū)域超過主窗口 的窗口區(qū)域無效,從而實現(xiàn)窗口的圖片從右向左滾動。
[0041] 預設子窗口的窗口區(qū)域的寬度是窗口的窗口區(qū)域的寬度的兩倍,子窗口的窗口區(qū) 域起始位置與窗口的窗口區(qū)域起始位置重合;
[0042] 然后按預設步長向左更新子窗口的窗口區(qū)域超始位置,子窗口的窗口區(qū)域超過窗 口的窗口區(qū)域無效,從而實現(xiàn)子窗口的圖片從右向左滾動。
[0043] 在本實施方式中,所述更改窗口區(qū)域的起始坐標為從右側(cè)向左側(cè)移動,從而實現(xiàn) 圖片從右向左滾動播放,在其他實施方式中,所述更改窗口區(qū)域的方向可以是從左側(cè)向右 側(cè)移動、從下側(cè)向上側(cè)移動或從上側(cè)向下側(cè)移動,從而實現(xiàn)沿不同方向滾動播放圖片。
[0044] 進一步的,請參閱圖3在本實施方式中,所述窗口為同一數(shù)組的元素,所述窗口設 置有子窗口,所述每個窗口的子窗口形成一雙向鏈表,所述子窗口包括圖片、所述窗口區(qū)域 和剪切區(qū)域。
[0045] 所述窗口采用數(shù)組管理,一共可激活128個窗口,坐標越大,窗口越上層;子窗口 米用鏈表管理,窗口和他所有的子窗口形成一個雙向鏈表,頭結(jié)點為窗口;離窗口越遠的子 窗口,窗口越上層。所述窗口設有一個特殊元素,用于標識窗口是否激活;子窗口設有兩個 特殊元素用于指示該子窗口的前結(jié)點和后結(jié)點。窗口 0也叫做主窗口,所述主窗口用于在 更新屏幕顯示區(qū)域時,將窗口、以及窗口所包含的子窗口的內(nèi)容更新到主窗口;通過所述主 窗口將窗口、以及窗口所包含的子窗口的內(nèi)容更新到顯存;所述主窗口與顯存的大小可以 不一樣,將數(shù)據(jù)更新到顯存時,將自動縮放。其中,窗口的窗口區(qū)域超過主窗口的窗口區(qū)域 的部分無效,子窗口的窗口區(qū)域超過窗口的窗口區(qū)域的部分無效。
[0046] 在窗口中增設子窗口提高了窗口的顯示能力,采用數(shù)組管理和鏈表管理大大方便 了窗口之間以及窗口與子窗口的操作與管理。
[0047] 本實施方式提供的針對窗口及子窗口的主要接口(API)包括:創(chuàng)建窗口、創(chuàng)建子 窗口、銷毀窗口、銷毀子窗口、加載圖片、取消加載圖片、修改剪切區(qū)域、修改窗口區(qū)域和更 新屏幕顯示區(qū)域。
[0048] 本實施方式提供的主要API包括:創(chuàng)建和銷毀(父/子)窗口,加載圖片,取消加 載圖片,修改圖片剪切區(qū)域,更新屏幕顯示區(qū)域。
[0049] 創(chuàng)建窗口,需要傳入數(shù)組坐標(范圍1?127,窗口 0是主窗口),如果當前窗口未 激活,就激活當前窗口并返回成功;否則返回錯誤;
[0050] 創(chuàng)建子窗口,需要傳入前結(jié)點和后結(jié)點;子窗口需要動態(tài)分配,然后返回動態(tài)分配 的子窗口;
[0051] 加載圖片,將圖片以及圖片的剪切區(qū)域傳遞給指定窗口;
[0052] 修改圖片剪切區(qū)域,如果窗口未加載過圖片,直接返回錯誤;否則將新剪切區(qū)保存 到窗口結(jié)點中,當應用程序更新顯示區(qū)域時,將顯示圖片在新剪切區(qū)部分的內(nèi)容;
[0053] 修改窗口區(qū)域,當應用程序更新顯示區(qū)域時,將取消息圖片在原來窗口區(qū)域的顯 示,同時顯示圖片在新的窗口區(qū)域內(nèi)。
[0054] 進一步的,請參閱圖4、圖5在本實施方式中,更新屏幕顯示區(qū)域的具體步驟包括:
[0055] 遍歷所述窗口以及窗口所包含的子窗口,確定處于激活狀態(tài)的窗口以及所述窗口 所包含的子窗口;
[0056] 計算更新區(qū)域與所述處于激活狀態(tài)的窗口以及所述窗口所包含的子窗口的重疊 部分;
[0057] 通過所述窗口區(qū)域、剪切區(qū)域和所述重疊部分計算出圖片重疊區(qū)域;
[0058] 將所述圖片重疊區(qū)域的圖片更新到主窗口;
[0059] 將主窗口更新區(qū)域的圖片更新到顯存的相應區(qū)域。
[0060] 因應用程序需經(jīng)常對屏幕界面進行更新,本更新屏幕顯示區(qū)域的技術(shù)方案可以在 設有多層窗口子的圖形界面上實現(xiàn)動態(tài)更新顯示區(qū)域的畫面。
[0061] 本發(fā)明提供的另一技術(shù)方案為:
[0062] 請參閱圖2, 一種嵌入式窗口管理裝置,包括分屏模塊10、加載模塊20和顯示模塊 30 ;
[0063] 所述分屏模塊10用于將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口 區(qū)域和剪切區(qū)域,所述窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示 窗口內(nèi)圖片的具體顯示部分;
[0064] 所述加載模塊20用于將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的 窗口中;
[0065] 顯示模塊30用于更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到 顯存;本實施方式通過引入剪切區(qū)域,通過按一定步長更新剪切區(qū)域,使剪切區(qū)域指示圖片 的不同部分,并將剪切區(qū)域內(nèi)的內(nèi)容加載至顯存中,從而實現(xiàn)在窗口內(nèi)沿不同方向滾動播 放圖片的效果。
[0066] 進一步的,在本實施方式中,所述嵌入式窗口管理裝置還包括窗口更改模塊,所述 窗口更改模塊用于更改窗口區(qū)域;通過更改窗口區(qū)域可以達到修改窗口圖片在屏幕的顯示 位置和可視部分。
[0067] 進一步的,所述顯示模塊30按預設步長更新剪切區(qū)域,包括設置單元、更新單元 和判斷單元;
[0068] 所述設置單元用于設置所述剪切區(qū)域的位移量為x_scorll_index,其中,x_ scorll_index 的初值為 0 ;
[0069] 所述更新單元用于按預設步長更新所述剪切區(qū)域,計算所述剪切區(qū)域的位移量1_ scorll-index ;
[0070] 所述判斷單元用于判斷剪切區(qū)域更新過程中,其剩余寬度是否小于一個預設步 長,若是,則播放結(jié)束,若否,則繼續(xù)按預設步長向剪切方向更新所述剪切區(qū)域。
[0071] 進一步的,所述窗口為同一數(shù)組的元素,所述窗口設置有子窗口,所述每個窗口的 子窗口形成一雙向鏈表,所述子窗口包括圖片、所述窗口區(qū)域和剪切區(qū)域。
[0072] 進一步的,還包括更新屏幕顯示區(qū)域模塊,所述更新屏幕顯示區(qū)域模塊包括遍歷 單元、第一計算單元、第二計算單元、縮放單元和顯存更新單元;
[0073] 所述遍歷單元用于遍歷所述窗口以及窗口所包含的子窗口,確定處于激活狀態(tài)的 窗口以及所述窗口所包含的子窗口;
[0074] 所述第一計算單元用于計算更新區(qū)域與所述處于激活狀態(tài)的窗口以及所述窗口 所包含的子窗口的重疊部分;
[0075] 所述第二計算單元用于通過所述窗口區(qū)域、剪切區(qū)域和所述重疊部分計算出圖片 重疊部分(cacl_clip_rect);
[0076] 所述縮放單元用于將所述圖片重疊(Cacl_Clip_reCt)區(qū)域的圖片更新到主窗 Π ;
[0077] 所述顯存更新單元用于將主窗口更新區(qū)域的圖片更新到顯存的相應區(qū)域。
[0078] 下面結(jié)合一些示例來說明本發(fā)明
[0079] 示例1:創(chuàng)建和銷毀窗口
[0080] 創(chuàng)建窗口:主要參數(shù)為數(shù)組坐標和窗口區(qū)域;通過數(shù)組坐標檢查數(shù)組元素是否激 活,如果未激活,就將數(shù)組元素標志改為激活,同時返回成功,否則返回錯誤;
[0081] 當銷毀窗口:主要參數(shù)為數(shù)組坐標;通過數(shù)組坐標檢查數(shù)組元素是否激活,如果 激活,就將數(shù)組元素標志改為未激活,同時返回成功,否則返回錯誤;
[0082] 當創(chuàng)建子窗口:主要參數(shù)為前窗口結(jié)點和窗口區(qū)域;通過動態(tài)申請新窗口結(jié)點, 然后將新窗口結(jié)點加入前窗口結(jié)點后面,構(gòu)成雙向鏈表;
[0083] 當銷毀子窗口 :主要參數(shù)為子窗口結(jié)點;將子窗口結(jié)點從雙向鏈表中移除,然后 釋放子窗口結(jié)點占用的內(nèi)存。
[0084] 示例2 :加載圖片
[0085] 加載圖片所需的參數(shù)包括:窗口、圖片數(shù)據(jù)、剪切區(qū);
[0086] 判斷窗口是否已經(jīng)加載過圖片,若是,則直接返回錯誤,若否,則將圖片數(shù)據(jù)和剪 切區(qū)保存到窗口結(jié)點中。
[0087] 示例3 :修改圖片剪切區(qū)域,實現(xiàn)滾動播放圖片
[0088] 修改圖片剪切區(qū)域所涉及的參數(shù)包括:窗口和剪切區(qū)域;
[0089] 1)判斷窗口是否已加載圖片,若否,則返回錯誤,若是,則將新剪切區(qū)保存到窗口 結(jié)點中,當應用程序更新顯示區(qū)域時,將顯示圖片在新剪切區(qū)部分的內(nèi)容。請參閱圖6,假設 有一個窗口,窗口 區(qū)域為(X,y, width, height),x_scorll_index = 0,每次滾動像素為 mv ;
[0090] 2)加載一張寬為width*3,高為height的圖片給窗口,初始化剪切區(qū)域為 (0, 0, width, height);
[0091] 3)當x_scroll_index>width*2時,跳到4);否貝丨」,更新剪切區(qū)域為(x_scroll_ index, 0, width, height),同時將圖片在新剪切區(qū)域的內(nèi)容更新到顯存,x_scroll_index+ =mv,重復步驟3);
[0092] 4)播放結(jié)束。
[0093] 示例4 :請參閱圖4,更新屏幕顯示區(qū)域
[0094] 更新屏幕顯示區(qū)域所涉及的參數(shù)包括:更新的區(qū)域;
[0095] 1)將主窗口的更新區(qū)域update_rect填充透明色,接著需要從窗口 1開始檢查到 127,將處于激活狀態(tài)且處于更新區(qū)域內(nèi)的窗口和子窗口圖片更新到主窗口;
[0096] 2)當正在檢查的窗口處于未激活狀態(tài),跳到5);否則,如果窗口區(qū)域和更新區(qū)域 沒有重疊部分,跳到5);否則,計算出重疊部分caclrect。然后通過窗口區(qū)域,剪切區(qū)域 和cacl_rect計算出cacl_clip_rect (參考圖5,主要用于計算圖片顯示的部分);最后將 cacl_clip_rect區(qū)域的圖片縮放到主窗口的cacl_rect區(qū)域;
[0097] 3)當正在檢查的窗口有子窗口,如果窗口區(qū)域和窗口區(qū)域以及更新區(qū)域沒有重疊 部分,跳到4);否則,計算出重疊部分caclrect。然后通過窗口區(qū)域,剪切區(qū)域和cacl_ rect計算出cacl_clip_rect(cacl_clip_rect主要用于計算圖片顯示的部分);最后將 cacl_clip_rect區(qū)域的圖片縮放到主窗口的cacl_rect區(qū)域;
[0098] 4)如果窗口還有子窗口,再跳到3);
[0099] 5)判斷是否有下一個窗口,如果有跳到2);
[0100] 6)將主窗口更新區(qū)域的圖片更新到顯存的相應區(qū)域。
[0101] 示例5 :請參閱圖7,采用窗口和子窗口配合,修改剪切區(qū)域和窗口區(qū)域配合,實現(xiàn) 走馬燈效果,可以用于需要播放走馬燈場景。
[0102] 1)預設屏幕顯示區(qū)域為(X,y, w, h),圖片大小為(0, 0, img_w, img_h),圖片寬度 img_w不小于顯示區(qū)域?qū)挾葁,圖片高度img_h等于顯示區(qū)域高度h ;
[0103] 2)第一張圖片和第二張圖片用背景色填充,從第三張圖片開始寫文本;
[0104] 3)創(chuàng)建一個窗口,窗口的窗口區(qū)域為(x,y,w,h),窗口圖片為第一張圖片,剪切區(qū) 域為(0, 0, w, h);
[0105] 4)創(chuàng)建一個子窗口 1,子窗口 1的窗口區(qū)域為(x,y,w,h),窗口圖片為第二張圖片, 剪切區(qū)域為(img_w-w,0,w,h);
[0106] 5)創(chuàng)建一個子窗口 2,子窗口 2的窗口區(qū)域為(x+w,y,w,h),窗口圖片為第三張圖 片,剪切區(qū)域為(〇,〇,w,h);
[0107] 6)假設位移為 scroll_index = 0 ;步長為 scroll_mv ;
[0108] 7)當 scroll_index〈w,修改子窗口 1 的窗口 區(qū)域為(x_scroll_index,y, w, h),子 窗口 2 的窗口區(qū)域為(x+w_scroll_index,y,w,h);當 w〈scroll_index〈img_w,不再改變窗 口區(qū)域,而是修改子窗口 2的剪切區(qū)域為(scroll_index-w,0,w,h);
[0109] 8)當scroll_index>img_w,文本未滾完,置子窗口 1的窗口區(qū)域為(X,y, w, h), 窗口圖片換為子窗口 2的圖片,剪切區(qū)域為(img_w-w,0,w,h),置子窗口 2的窗口區(qū)域為 (x+w,y,w,h),窗口圖片換為新的圖片,剪切區(qū)域為(0,0,w,h),跳到6);如果文本已經(jīng)滾 完,播放結(jié)束。
[0110] 綜上所述,本發(fā)明提供的嵌入式窗口管理方法及裝置能夠?qū)崿F(xiàn)在圖片用戶界面中 分屏滾動播放圖片,所述嵌入式圖片用戶界面中的窗口包括多層子窗口,每個子窗口都可 滾動播放圖片,并且通過主窗口可實現(xiàn)在多層窗口部分或完全重疊時更新屏幕顯示區(qū)域。
[0111] 以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技 術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【權(quán)利要求】
1. 一種嵌入式窗口管理方法,其特征在于,包括步驟: 將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū)域和剪切區(qū)域,所述窗 口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗口內(nèi)圖片的具體顯示部 分; 將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口中; 更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯存。
2. 根據(jù)權(quán)利要求1所述的嵌入式窗口管理方法,其特征在于,在所述更新屏幕顯示區(qū) 域步驟之前還包括以下步驟:更換窗口區(qū)域內(nèi)圖片或按預設步長更新剪切區(qū)域。
3. 根據(jù)權(quán)利要求2所述的嵌入式窗口管理方法,其特征在于,按預設步長更新剪切區(qū) 域的具體步驟包括: 設置所述剪切區(qū)域的位移量,其中,位移量的初值為〇 ; 按預設步長更新所述剪切區(qū)域,計算所述剪切區(qū)域的位移量; 判斷剪切區(qū)域更新過程中,其剩余寬度是否小于一個預設步長,若是,則播放結(jié)束,若 否,則繼續(xù)按預設步長向剪切方向更新所述剪切區(qū)域。
4. 根據(jù)權(quán)利要求1所述的嵌入式窗口管理方法,其特征在于,所述窗口為同一數(shù)組的 元素,所述窗口設置有子窗口,所述每個窗口的子窗口形成一雙向鏈表,所述子窗口包括圖 片、所述窗口區(qū)域和剪切區(qū)域。
5. 根據(jù)權(quán)利要求4所述的嵌入式窗口管理方法,其特征在于,還包括主窗口; 所述主窗口用于在更新屏幕顯示區(qū)域時,將窗口、以及窗口所包含的子窗口的內(nèi)容更 新到主窗口;通過所述主窗口將窗口、以及窗口所包含的子窗口的內(nèi)容更新到顯存。
6. 根據(jù)權(quán)利要求5所述的嵌入式窗口管理方法,其特征在于,更新屏幕顯示區(qū)域的具 體步驟包括: 遍歷所述窗口以及窗口所包含的子窗口,確定處于激活狀態(tài)的窗口以及所述窗口所包 含的子窗口; 計算更新區(qū)域與所述處于激活狀態(tài)的窗口以及所述窗口所包含的子窗口的重疊部 分; 通過所述窗口區(qū)域、剪切區(qū)域和所述重疊部分計算出圖片重疊區(qū)域; 將所述圖片重疊區(qū)域的圖片更新到主窗口; 將主窗口更新區(qū)域的圖片更新到顯存的相應區(qū)域。
7. 根據(jù)權(quán)利要求6所述的嵌入式窗口管理方法,其特征在于,還包括創(chuàng)建窗口、創(chuàng)建 子窗口、銷毀窗口、銷毀子窗口、加載圖片、取消加載圖片、修改剪切區(qū)域和更新屏幕顯示區(qū) 域。
8. 根據(jù)權(quán)利要求一種嵌入式窗口管理裝置,其特征在于,包括分屏模塊、加載模塊和顯 示模塊; 所述分屏模塊用于將屏幕分隔成兩個以上窗口,所述每個窗口包括圖片、窗口區(qū)域和 剪切區(qū)域,所述窗口區(qū)域用于指示窗口在屏幕的顯示位置,所述剪切區(qū)域用于指示窗口內(nèi) 圖片的具體顯示部分; 所述加載模塊用于將預顯示的文件轉(zhuǎn)化成圖片,并將所述圖片加載到對應的窗口中; 所述顯示模塊用于更新屏幕顯示區(qū)域,將與屏幕顯示區(qū)域重疊的窗口圖片更新到顯 存。
9. 根據(jù)權(quán)利要求8所述的嵌入式窗口管理裝置,其特征在于,所述顯示模塊包括設置 單元、更新單元和判斷單元; 所述設置單元用于設置所述剪切區(qū)域的位移量,其中,所述位移量的初值為〇 ; 所述更新單元用于按預設步長更新所述剪切區(qū)域,計算所述剪切區(qū)域的位移量; 所述判斷單元用于判斷剪切區(qū)域更新過程中,其剩余寬度是否小于一個預設步長,若 是,則播放結(jié)束,若否,則繼續(xù)按預設步長向剪切方向更新所述剪切區(qū)域。
10. 根據(jù)權(quán)利要求8所述的嵌入式窗口管理裝置,其特征在于,所述窗口為同一數(shù)組的 元素,所述窗口設置有子窗口,所述每個窗口的子窗口形成一雙向鏈表,所述子窗口包括圖 片、所述窗口區(qū)域和剪切區(qū)域; 還包括主窗口;所述主窗口用于在更新屏幕顯示區(qū)域時,將窗口、以及窗口所包含的子 窗口的內(nèi)容更新到主窗口;通過所述主窗口將窗口、以及窗口所包含的子窗口的內(nèi)容更新 到顯存。
11. 根據(jù)權(quán)利要求10所述的嵌入式窗口管理裝置,其特征在于,還包括更新屏幕顯示 區(qū)域模塊,所述更新屏幕顯示區(qū)域模塊包括遍歷單元、第一計算單元、第二計算單元、縮放 單元和顯存更新單元; 所述遍歷單元用于遍歷所述窗口以及窗口所包含的子窗口,確定處于激活狀態(tài)的窗口 以及所述窗口所包含的子窗口; 所述第一計算單元用于計算更新區(qū)域與所述處于激活狀態(tài)的窗口以及所述窗口所包 含的子窗口的重疊部分; 所述第二計算單元用于通過所述窗口區(qū)域、剪切區(qū)域和所述重疊部分計算出圖片重疊 區(qū)域; 所述縮放單元用于將所述圖片重疊區(qū)域的圖片更新到主窗口; 所述顯存更新單元用于將主窗口更新區(qū)域的圖片更新到顯存的相應區(qū)域。
【文檔編號】G06F3/041GK104142758SQ201410395996
【公開日】2014年11月12日 申請日期:2014年8月13日 優(yōu)先權(quán)日:2014年8月13日
【發(fā)明者】梁文森, 蘇鎮(zhèn)揚 申請人:福建星網(wǎng)視易信息系統(tǒng)有限公司