2012-08-13 1 views
0

OpenGL 텍스처에서 직접 CIFilter를 적용 할 수 있습니까? VRAM-> RAM-> VRAM (GPU-> CPU-> GPU) 작업을 피하려면. 나는 파이프 라인의이 유형을 피하기 위해 의미 : 그들은 느린OpenGL 텍스처에서 직접 CIFilters

enter image description here

때문입니다. 어떻게 든 GPU에서 가능한 한 많이해야합니다. 그러나 어떻게?

답변

0

는 무효 * 데이터 걸리는 CGBitmapContextCreate()

CGContextRef CGBitmapContextCreate (
    void *data, 
    size_t width, 
    size_t height, 
    size_t bitsPerComponent, 
    size_t bytesPerRow, 
    CGColorSpaceRef colorspace, 
    CGBitmapInfo bitmapInfo 
); 

통지를 참조. 이것은 OpenGL에 직접 전달할 수있는 이미지 데이터가 될 수 있습니다.

+0

그런데 CGContextRef를 어떻게 CIFilter에 직접 가져 와서 다시 얻을 수 있습니까? Maby 나는'imageWithTexture : size : flipped : colorSpace :'를 사용하여 텍스처에서 CIImage를 얻은 다음 CIFilter를 적용하고 어떻게 든 텍스처로 다시 변환하겠습니까? 그러나 어떻게? – hockeyman

+0

CGContextRef를 얻지 않아도됩니다. 이미 가지고 있습니다. void * CGBitmapContextCreate()에서 전달한 데이터는 이미지 버퍼입니다. 해당 데이터에서 수행하는 작업은 모두 이미지에 간접적으로 수행됩니다. 말이된다? – MacGeek