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 匿名類 如果某個類的例項物件只會使用到一次,可以使...