CCTextureCache類原始碼分析 2

2021-07-02 05:24:52 字數 2468 閱讀 2923

cctexturecache類原始碼分析(2):

在cctexturecache類原始碼分析(1)中,我們分析了cctexturecache如何實現

紋理快取的,但是在分析的過程中,我們忽略了很多東西,比如ccimage類

原始碼分析:

1、ccimage繼承自ccobject

2、成員變數,這些變數需要我們通過解析檔案獲得

unsigned char *m_pdata; //資料

cc_synthesize_readonly(unsigned short, m_nwidth, width); //寬高

cc_synthesize_readonly(unsigned short, m_nheight, height);

cc_synthesize_readonly(int, m_nbitspercomponent, bitspercomponent); //每個顏色分量的位數

bool m_bhasalpha; //是否有alpha分量

3、//對於.pvr 和 .pkm 格式檔案需要特殊處理,後面分析

strpath : 檔案路徑

eimgfmt : 格式

總結:ccimage所做的工作就是根據不同的格式呼叫不同的底層庫,

如png,jpg解析庫,通過這些庫對檔案進行分析,

從而得到我們所需要的所有資訊,這裡有個疑惑,就是通過底層庫

解析檔案之後得到的資料到底是什麼格式儲存的?

因為我在cctexturecache類原始碼分析(1) 通過下面這行

// convert "rrrrrrrrrggggggggbbbbbbbbaaaaaaaa" to "rrrrggggbbbbaaaa"  

猜測資料的儲存都是每個顏色分量是8位,但是因為我對png這些的解析不熟悉,

所以在這裡並沒有很好的證據證明上面的猜測,所以把這個疑惑記錄在此。

CCTextureCache類原始碼分析 3

cctexturecache類原始碼分析 3 1 在 1 中有提到過兩種特殊的格式,它們的處理方式和其他 格式的不同,這裡就分析一下這兩種特殊的格式的處理 對於.pvr 和 pkm 格式檔案需要特殊處理 if std string npos lowercase.find pvr else if st...

類值類與類指標類

類值類 行為像值的 class a a const a a ps new string a.ps i a.i 每個類物件有自己的乙份資源拷貝 a operator const a rhs a private string ps int i 一種優化拷貝賦值運算子的方法 copy and swap c...

巢狀類 匿名類 密封類

巢狀類 在c 中可以將乙個類定義在另乙個類的內部,外部的叫外部類,內部的巢狀類 namespace 27 set public void hello 巢狀類 public class web webname,weburl class program 匿名類 如果某個類的例項物件只會使用到一次,可以使...