4

我正在尝试在 GLKView 的 drawRect 中使用 CIContext drawImage 绘制静态 CIImage,但是我每秒获得大约 4 帧。改进建议?

// init code
self.backgroundColor = UIColor.black;
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB();
self.ciContext = [CIContext contextWithEAGLContext:self.context options:@{ kCIContextOutputColorSpace: (__bridge id)cs, kCIContextWorkingColorSpace: (__bridge id)cs }];
self.drawableColorFormat = GLKViewDrawableColorFormatRGBA8888;
self.drawableDepthFormat = GLKViewDrawableDepthFormatNone;
self.drawableMultisample = GLKViewDrawableMultisampleNone;
self.drawableStencilFormat = GLKViewDrawableStencilFormatNone;

// draw code    
- (void) drawRect:(CGRect)r
{
    // Clears the screen to a black color
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT);

    glEnable(GL_BLEND);
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

    [self.ciContext drawImage:self.ciImage
                       inRect:self.bounds
                     fromRect:self.bounds];
}
4

0 回答 0