本發明屬于計算機應用技術領域,尤其涉及一種字庫紋理數據管理方法。
背景技術:
如今嵌入式技術的應用越來越廣泛,作為最基本的字符顯示功能不能缺少。在同一個嵌入式設備上顯示不同字體、不同字號和不同風格的字符需求也越來越高。目前在嵌入式設備上顯示字符的方法多種多樣,可以實現某幾種字符集的全字符顯示。此外還需要多種字體、多種字號、多種顯示風格的字符顯示。目前已公開的資料都針對字符紋理數據的使用,但是未發現紋理數據存儲區管理的資料或者其資料未對外公開。
技術實現要素:
發明目的:
為了解決上述問題,本發明主要提供一種字庫紋理數據管理方法,用來對嵌入式系統中字符的不同字體、不同字號和不同顯示風格的紋理數據進行有效管理,解決了在有限的資源環境下,多樣性字符選擇面小的問題。
技術方案:
一種字庫紋理數據管理方法,包括:
步驟1,用戶向字符紋理數據模塊(1)輸入字符紋理數據和控制信息,其中控制信息包括字符紋理數據的數據格式和存儲字符紋理數據所需的存儲空間大小,將字符紋理數據和控制信息傳遞給字符紋理數據存儲區(2);
步驟2,字符紋理數據存儲區(2)接收字符紋理數據模塊(1)傳遞的字符紋理數據和控制信息,根據紋理數據庫控制信息表(4)中紋理數據庫剩余存儲區容量信息,對接收到的信息進行分析;若當前空間能夠存儲當前字符紋理數據,則將字符紋理數據、控制信息和分配的存儲區傳遞給紋理數據存儲區管理模塊(3),否則將控制信息傳輸給紋理數據存儲區管理模塊(3)、紋理數據庫控制信息表(4)并再一次進行判斷;
步驟3,紋理數據存儲區管理模塊(3)接收字符紋理數據存儲區(2)傳遞的字符紋理數據、控制信息和分配的存儲區,查找紋理數據庫控制信息表(4)中是否有空間存儲紋理數據存儲區管理模塊(3)接收的信息,若有空間存儲,則向紋理數據庫控制信息表(4)增加紋理數據存儲區管理模塊(3)接收的控制信息,同時向紋理數據庫(5)增加紋理數據存儲區管理模塊(3)接收的字符紋理數據;若沒有空間存儲,則首先刪除紋理數據庫控制信息表(4)中調用頻率最低的控制信息和紋理數據庫(5)中與刪除控制信息對應的字符紋理數據,然后向紋理數據庫控制信息表(4)增加紋理數據存儲區管理模塊(3)接收的控制信息,同時向紋理數據庫(5)增加紋理數據存儲區管理模塊(3)接收的字符紋理數據。
有益效果:
本發明提供一種字庫紋理數據管理方法,通過對不同字體、不同字號和不同顯示風格的字符紋理數據進行有效的管理,根據每種不同屬性的字符特點,在有限存儲區中合理安排其存儲位置,增加了存儲的字符紋理數據,提高了存儲區的使用率。
附圖說明
圖1是本發明一種字符紋理數據管理方法示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
下面結合附圖對本發明作進一步說明:
本發明屬于計算機應用領域,尤其涉及一種字庫紋理數據管理方法,如圖1所示,包括:
步驟1,用戶向字符紋理數據模塊(1)輸入字符紋理數據和控制信息,其中控制信息包括字符紋理數據的數據格式和存儲字符紋理數據所需的存儲空間大小,將字符紋理數據和控制信息傳遞給字符紋理數據存儲區(2);
步驟2,字符紋理數據存儲區(2)接收字符紋理數據模塊(1)傳遞的字符紋理數據和控制信息,根據紋理數據庫控制信息表(4)中紋理數據庫剩余存儲區容量信息,對接收到的信息進行分析;若當前空間能夠存儲當前字符紋理數據,則將字符紋理數據、控制信息和分配的存儲區傳遞給紋理數據存儲區管理模塊(3),否則將控制信息傳輸給紋理數據存儲區管理模塊(3)、紋理數據庫控制信息表(4)并再一次進行判斷;
步驟3,紋理數據存儲區管理模塊(3)接收字符紋理數據存儲區(2)傳遞的字符紋理數據、控制信息和分配的存儲區,查找紋理數據庫控制信息表(4)中是否有空間存儲紋理數據存儲區管理模塊(3)接收的信息,若有空間存儲,則向紋理數據庫控制信息表(4)增加紋理數據存儲區管理模塊(3)接收的控制信息,同時向紋理數據庫(5)增加紋理數據存儲區管理模塊(3)接收的字符紋理數據;若沒有空間存儲,則首先刪除紋理數據庫控制信息表(4)中調用頻率最低的控制信息和紋理數據庫(5)中與刪除控制信息對應的字符紋理數據,然后向紋理數據庫控制信息表(4)增加紋理數據存儲區管理模塊(3)接收的控制信息,同時向紋理數據庫(5)增加紋理數據存儲區管理模塊(3)接收的字符紋理數據。
在紋理數據庫中,根據存儲字體的個數,將紋理數據庫劃分為不同大小的一級存儲區,在每個一級存儲區內部,按照不同字號,不同顯示風格對單個存儲區再次進行二級和三級劃分。紋理數據庫存儲區的分配信息保存在紋理數據庫控制信息表中,紋理數據庫存儲區中存儲著具體的字符紋理數據;
在紋理數據庫中查找具體字符紋理數據時,根據該字符的控制信息在紋理數據庫控制信息表中進行查找。首先在一級存儲區中查找該字體,之后在二級存儲區中查找該字號,最后在三級存儲區中查找具體的字符;
如果找到該字符,則根據紋理數據庫控制信息表中的控制信息,定位該字符紋理數據在紋理數據庫存儲區中的具體存放位置,之后進行數據的刪除和修改;
當紋理數據庫控制信息表中沒有記錄某種字體時,根據選擇的分配方式從紋理數據庫存儲區的剩余空間中為當前字體分配一塊一級存儲區,成功分配之后,對一級存儲區進行二級和三級劃分,最后為當前字符紋理數據指定存儲位置,同時更新紋理數據庫控制信息表,記錄當前字符的控制信息;
紋理數據庫控制信息表和紋理數據庫存儲區中的數據同步更新,保證數據的正確性。