Graphics Reference
In-Depth Information
@end
@implementation
ViewController
- (
void
)setUpBuffers
{
//set up frame buffer
glGenFramebuffers
(
1
, &
_framebuffer
);
glBindFramebuffer
(
GL_FRAMEBUFFER
,
_framebuffer
);
//set up color render buffer
glGenRenderbuffers
(
1
, &
_colorRenderbuffer
);
glBindRenderbuffer
(
GL_RENDERBUFFER
,
_colorRenderbuffer
);
glFramebufferRenderbuffer
(
GL_FRAMEBUFFER
,
GL_COLOR_ATTACHMENT0
,
GL_RENDERBUFFER
,
_colorRenderbuffer
);
[
self
.
glContext
renderbufferStorage
:
GL_RENDERBUFFER
fromDrawable
:
self
.
glLayer
];
glGetRenderbufferParameteriv
(
GL_RENDERBUFFER
,
GL_RENDERBUFFER_WIDTH
,
&
_framebufferWidth
);
glGetRenderbufferParameteriv
(
GL_RENDERBUFFER
,
GL_RENDERBUFFER_HEIGHT
,
&
_framebufferHeight
);
//check success
if
(
glCheckFramebufferStatus
(
GL_FRAMEBUFFER
) !=
GL_FRAMEBUFFER_COMPLETE
)
{
NSLog
(
@"Failed to make complete framebuffer object: %i"
,
glCheckFramebufferStatus
(
GL_FRAMEBUFFER
));
}
}
- (
void
)tearDownBuffers
{
if
(
_framebuffer
)
{
//delete framebuffer
glDeleteFramebuffers
(
1
, &
_framebuffer
);
_framebuffer
=
0
;
}
if
(
_colorRenderbuffer
)
{
//delete color render buffer
glDeleteRenderbuffers
(
1
, &
_colorRenderbuffer
);
_colorRenderbuffer
=
0
;
}