显然喽:
glRenderbufferStorage是开辟一块显存(是内存还是显存?这个还没搞清望解答)作为当前RenderBuffer的存储区,但这个仅仅是在显存里,并没跟实际显示在屏幕上的有关联;
而下一句,fromDrawable:_eaglLayer这就是说用这个_eaglLayer作为RenderBuffer的存储区,那么RenderBuffer上绘制出的东西当然就显示在这个_eaglLayer里了,这个layer是最终能显示在屏幕上的。
glRenderbufferStorage是开辟一块显存(是内存还是显存?这个还没搞清望解答)作为当前RenderBuffer的存储区,但这个仅仅是在显存里,并没跟实际显示在屏幕上的有关联;
而下一句,fromDrawable:_eaglLayer这就是说用这个_eaglLayer作为RenderBuffer的存储区,那么RenderBuffer上绘制出的东西当然就显示在这个_eaglLayer里了,这个layer是最终能显示在屏幕上的。
我现在就是想作离屏渲染,然后把离屏渲染的结果显示到屏幕上,不知道该怎样做?
- (void)setupMemRenderBuffer {
glGenRenderbuffers(1, &_memRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _memRenderBuffer);
GLint iWidth = 0;
GLint iHeight = 0;
iWidth = self.frame.size.width;
iHeight = self.frame.size.height;
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8_OES, iWidth, iHeight);
// [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:_eaglLayer];
}