/**
從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...