nuclear@0: #import "viewctl.h" nuclear@0: #import nuclear@0: nuclear@0: @interface ViewController () { nuclear@0: EAGLContext *ctx; nuclear@0: } nuclear@0: nuclear@0: - (void)initgl; nuclear@0: - (void)destroygl; nuclear@0: @end nuclear@0: nuclear@0: @implementation ViewController nuclear@0: nuclear@0: - (void)viewDidLoad nuclear@0: { nuclear@0: [super viewDidLoad]; nuclear@0: nuclear@0: self->ctx = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2]; nuclear@0: if(!self->ctx) { nuclear@0: NSLog(@"Failed to create OpenGL ES 2.0 context"); nuclear@0: } nuclear@0: nuclear@0: GLKView *view = (GLKView*)self.view; nuclear@0: view.context = self->ctx; nuclear@0: view.drawableDepthFormat = GLKViewDrawableDepthFormat24; nuclear@0: nuclear@0: [self initgl]; nuclear@0: } nuclear@0: nuclear@0: - (void)dealloc nuclear@0: { nuclear@0: [self destroygl]; nuclear@0: nuclear@0: if([EAGLContext currentContext] == self->ctx) { nuclear@0: [EAGLContext setCurrentContext: nil]; nuclear@0: } nuclear@0: } nuclear@0: nuclear@0: - (void)didReceiveMemoryWarning nuclear@0: { nuclear@0: [super didReceiveMemoryWarning]; nuclear@0: nuclear@0: if([self isViewLoaded] && ([[self view] window] == nil)) { nuclear@0: self.view = nil; nuclear@0: nuclear@0: [self destroygl]; nuclear@0: nuclear@0: if([EAGLContext currentContext] == self->ctx) { nuclear@0: [EAGLContext setCurrentContext: nil]; nuclear@0: } nuclear@0: self->ctx = nil; nuclear@0: } nuclear@0: nuclear@0: // Dispose of any resources that can be recreated. nuclear@0: } nuclear@0: nuclear@0: - (BOOL)prefersStatusBarHidden nuclear@0: { nuclear@0: return YES; nuclear@0: } nuclear@0: nuclear@0: - (void)initgl nuclear@0: { nuclear@0: [EAGLContext setCurrentContext: self->ctx]; nuclear@0: nuclear@0: glClearColor(1.0, 0.0, 0.0, 1.0); nuclear@0: } nuclear@0: nuclear@0: - (void)destroygl nuclear@0: { nuclear@0: [EAGLContext setCurrentContext: self->ctx]; nuclear@0: } nuclear@0: nuclear@0: - (void)update nuclear@0: { nuclear@0: } nuclear@0: nuclear@0: - (void)glkView: (GLKView*)view drawInRect: (CGRect)rect nuclear@0: { nuclear@0: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); nuclear@0: } nuclear@0: nuclear@0: @end /* implementation ViewController */