0
如何直接在OpenGL紋理上使用CIFilters?避免VRAM-> RAM-> VRAM(GPU-> CPU-> GPU)操作。我的意思是,以避免這種類型的管道:直接在OpenGL紋理上使用CIFilters
因爲他們是緩慢的。我需要以某種方式在GPU中儘可能地做到這一點。但是如何?
如何直接在OpenGL紋理上使用CIFilters?避免VRAM-> RAM-> VRAM(GPU-> CPU-> GPU)操作。我的意思是,以避免這種類型的管道:直接在OpenGL紋理上使用CIFilters
因爲他們是緩慢的。我需要以某種方式在GPU中儘可能地做到這一點。但是如何?
CGContextRef CGBitmapContextCreate (
void *data,
size_t width,
size_t height,
size_t bitsPerComponent,
size_t bytesPerRow,
CGColorSpaceRef colorspace,
CGBitmapInfo bitmapInfo
);
注意,它需要void *的數據。這可以是您可以直接傳遞給OpenGL的圖像數據。
然後如何將CGContextRef直接送到CIFilter並返回? Maby我應該使用'imageWithTexture:size:flipped:colorSpace:'從紋理獲取CIImage,然後應用CIFilter並以某種方式將其轉換回紋理?但是如何? – hockeyman 2012-08-14 06:18:40
你不必得到CGContextRef,你已經擁有它了。您在CGBitmapContextCreate()中傳遞的void *數據是您的圖像緩衝區。您對該數據所做的任何操作都是間接的圖像。說得通? – MacGeek 2012-08-14 08:20:35