我正在尝试在 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];
}