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