GPUImage原始碼解讀 五

2021-08-21 18:16:13 字數 1876 閱讀 4203

/**

從cache中獲取乙個gpuimageframebuffer物件,如果獲取失敗,那麼建立乙個新的gpuimageframebuffer物件。

@param framebuffersize 物件的大小

@param textureoptions 紋理的配置資訊

@param onlytexture 指示是否只為紋理,是否包含framebuffer物件

@return 返回framebuffer

*/- (gpuimageframebuffer *)fetchframebufferforsize:(cgsize)framebuffersize textureoptions:(gputextureoptions)textureoptions onlytexture:(bool)onlytexture;

- (gpuimageframebuffer *)fetchframebufferforsize:(cgsize)framebuffersize onlytexture:(bool)onlytexture;

- (gpuimageframebuffer *)fetchframebufferforsize:(cgsize)framebuffersize textureoptions:(gputextureoptions)textureoptions onlytexture:(bool)onlytexture;

else

currenttextureid--;

}currenttextureid++;

// 更新framebuffertypecounts中相同型別(紋理屬性gputextureoptions)gpuimageframebuffer的數量

[framebuffertypecounts setobject:[nsnumber numberwithinteger:currenttextureid] forkey:lookuphash];

// 還是沒有則建立

if (framebufferfromcache == nil)

}});

// 引用計數加1,返回

[framebufferfromcache lock];

return framebufferfromcache;

}- (gpuimageframebuffer *)fetchframebufferforsize:(cgsize)framebuffersize onlytexture:(bool)onlytexture;

/**

向gpuimageframebuffer快取加新增gpuimageframebuffer物件

@param framebuffer 需要新增的物件

*/- (void)returnframebuffertocache:(gpuimageframebuffer *)framebuffer;

- (void)returnframebuffertocache:(gpuimageframebuffer *)framebuffer;

);}

//收到 memory warning 時觸發釋放記憶體

- (void)purgeallunassignedframebuffers;

);}

- (void)addframebuffertoactiveimagecapturelist:(gpuimageframebuffer *)framebuffer;);}

- (void)removeframebufferfromactiveimagecapturelist:(gpuimageframebuffer *)framebuffer;);}

GPUImage原始碼解讀 十五

gpuimagerawdataoutput gpuimagerawdataoutput實現了gpuimageinput協議,它可以將輸入的幀快取轉換為原始資料。id initwithimagesize cgsize newimagesize resultsinbgraformat bool resu...

GPUImage原始碼解讀 二

這篇文章主要是閱讀gpuimage框架中的 glprogram gpuimagecontext 兩個重要類的原始碼。這兩個類是 gpuimage 框架的基礎,裡面涉及的知識也有 opengl es 基礎 和 多執行緒 基礎。以下是原始碼內容 glprogram 一 glprogram glprogr...

openTLD 原始碼解讀

首先是run tld 在其次就是tldexample 最後到了初始化函式tldinit 第乙個比較關鍵的函式 bb scan 將影象網格化,將首先 scale 1.2.10 10 21 個規格 在每個規格上打網格 這個函式有乙個比較重要的方法 ntuples 就是重複 因為網格上的點很多點有相同的x...