GLKView 내부에서 CIFilter로 필터링 된 CIImage를 표시 할 때 항상 오류 메시지가 나타납니다. 오류 : "CoreImage : EAGLContext framebuffer 또는 renderbuffer가 잘못 구성되었습니다! 잘못된 쉐이더 프로그램, 아마도 하드웨어 리소스를 초과했기 때문에 커널을로드 할 수 없습니다!"GLKView에서 CIFilter를 사용한 후의 CIImage 표시
나는 이미지를 표시하는 데 사용할 다음 코드 :
- (void)viewDidLoad
{
[super viewDidLoad];
EAcontext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!EAcontext) {
NSLog(@"Failed to create ES context");
}
GLKView *view = (GLKView *)self.view;
view.context = self.EAcontext;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
glGenRenderbuffers(1, &_renderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _renderBuffer);
glGenRenderbuffers(1, &_colorBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _colorBuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGB8_OES, 768, 1024);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _colorBuffer);
coreImageContext = [CIContext contextWithEAGLContext:self.EAcontext];
[self updateView];
}
- (void)updateView
{
UIImage *myimage = [UIImage imageNamed:@"Moskau1.jpg"];
CIImage *outputImage = [[CIImage alloc] initWithImage:myimage];
[coreImageContext drawImage:outputImage inRect:self.view.bounds fromRect:[outputImage extent]];
[EAcontext presentRenderbuffer:GL_RENDERBUFFER_OES];
}
의 ViewController는 GLKViewcontroller
이다. EAContext는 CIContext 유형입니다.
이 문제의 원인은 무엇일까요?